Repository navigation
feat(channels): move diagnostics into Channel Settings - #163
Merged
Merged
Conversation
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
added 4 commits
September 23, 2026 09:11
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
zrmarley
added a commit
that referenced
this pull request
Sep 23, 2026
…search-send * origin/main: Connect attachments to existing message delivery (#176) perf: preserve unchanged thread row identities (#171) perf: cache markdown preparation by content (#172) Add safe attachment upload groundwork (#150) feat: add sampling profiler launch modes (#148) feat(channels): remove DMs from the sidebar (#157) Distinguish namesake agents and selected recipients (#142) feat(channels): move diagnostics into Channel Settings (#163) Replace warning banners with shared Base UI toasts (#164) feat(shortcuts): add keyboard shortcut settings (#155) fix(channels): give floating unread cue an opaque panel surface (#153) feat(communities): add BUZZ_DEV_OPEN_RELAY to open the default relay on fresh dev ports (#151) Restore recipient avatars beside the composer mention tool (#162) Fix startup inventory duplication and late panel scroll shifts (#160) feat(channels): add channel creation (#138) Standardize Button and IconButton with Buzz design tokens (#145) Signed-off-by: Zach Marley <[email protected]>
matt2e
added a commit
that referenced
this pull request
Nov 9, 2026
## Why Clicking an image in a channel timeline cleared Channel settings and unmounted the whole side pane for the length of the review. When the viewer closed, Channel settings was gone with no announcement, and any side panel that clears state on unmount had lost it: the native Huddle chat panel releases files you had attached but not sent. The side thread only survived because its text draft is saved per keystroke. The `setSettings(undefined)` in `openMediaReview` dates from #163, when settings was a transient panel auto-closed by any other opening. #413 made it a retained tab and added the dock guards but left that clear behind. ## What - `openMediaReview` no longer clears Channel settings. - The side pane stays mounted under the viewer. `PanelDock` already renders a closed dock as `hidden`, `inert` and `aria-hidden` when `keepMounted` holds, so `keepMounted` now also holds during a review (only when there is a panel to keep) and the pane's child guard no longer unmounts on it. Settings, side plugin panels (Huddle) and the Solo companion keep their state. - Side thread tabs still leave during a review, via a new `hostPanes` option on `useConversationTabs`. This is load-bearing, not a leftover: the viewer's comment composer reads the thread draft when it mounts and the thread composer reads the viewer's edits back when it remounts, so keeping the side thread mounted would hand back a stale draft. Threads moved to the main pane keep rendering through a review, as they did before. ## Before / after Left: `main` (3a1eb56). Right: this branch. Same steps: open ⋯ Channel actions → View channel details, click the image, press Escape. https://github.com/user-attachments/assets/564548a1-7479-4855-9eb4-4090bfa1a844  ## Tests - New browser journey in `tests/browser/channel-settings.spec.mjs`: Channel settings stays open with its tab selected and focus returns to the tile after Escape; the dock is `hidden` and `inert` under the modal; a side-thread draft reaches the viewer's comment composer and comes back edited; a thread moved to the main pane keeps the same composer element connected through the review. Fails on `main` at the first pane assertion. - New `useConversationTabs` case: `hostPanes: ["main"]` withholds only the side host and re-hosts it afterwards, including a tab the visit showed but no longer selects. - `channel-settings.spec.mjs` and the existing "media review hands off the thread draft" journey pass in Chromium and WebKit; `tsc --noEmit`, Biome and Vitest for `src/bundled/channels` and `src/features/panels` are clean. Not verified here: the native-only Huddle case (attached-but-unsent files surviving a review) needs a manual check in the native app. ## Notes - Merges with #2942 as a one-line, same-meaning conflict: that PR writes `open={docked}`; keep that plus this branch's `keepMounted`. - The other three `setSettings(undefined)` sites (Reply/open thread, opening a link into a side panel, opening a bottom drawer) are unchanged and belong in a follow-up once Channel settings is treated as a fully retained tab. - A main-pane thread on the same root as the reviewed image still keeps its pre-viewer draft, as on `main`; the composer's conflict banner surfaces it on the next keystroke. Unmounting only the reviewed root's thread is a possible follow-up. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Signed-off-by: mtoohey <[email protected]> Co-authored-by: Claude Fable 5.1 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Screenshot
Approved during the manual feedback round; cropped to the Settings panel to omit surrounding chat/sidebar content.
Notification-test synchronization follow-up
c135ee86122c9f82cbbdc9a4c951e0ec686bcc35adds the test-only correction for the sole remaining failure in run 35881351396: notification click navigation could still beopeningafter Appearance rendered. The test now polls for completion, as the neighboring notification journey already does, preserving both visible-heading andopenedassertions. No production code, sleeps, retries or timeout changes.notifications.spec.mjspassed 14/14 across Chromium and WebKit on this clean commit; required commit/push hooks passed. Earlier channel/measurement repair checks passed hosted CI at6e8ea383. The new head remains subject to hosted CI; no claim that one local pass eliminates every possible flake.56778764and is included. This fix ships with this PR, not a prerequisite PR.CI repair and main integration
6e8ea383e027f9d2d01c55ddef067f18194cebbd, includes main56778764(fetched again before push). Clean merges; no rewritten commits.channel-opening,scroll) and 58 functional checks (design-system,layout,channel-settings,sidebar-unread,message-navigation). Both stream measurement exports and all ten sidebar exports are valid JSON; no caught evidence errors in the functional report.Original validation (before main integration)
2fb0ddc: formatting/lint, TypeScript, related Vitest (29 tests), design types and guards. Independent lifecycle review passed.Originating Buzz channel:
ffce3697-facf-4e35-a191-54b0b5ff903abuzz://message?channel=ffce3697-facf-4e35-a191-54b0b5ff903a&id=81db8cc57e3db46b58b51e5593dc37ae12fe8998b56d817b01187a136eef59e8