Skip to content

Fix the mute icon flashing when selecting a channel - #2287

Merged
johnmatthewtennant merged 2 commits into
mainfrom
jtennant/oliver/mute-icon-flash
Nov 4, 2026
Merged

johnmatthewtennant merged 2 commits into
mainfrom
jtennant/oliver/mute-icon-flash

Conversation

@johnmatthewtennant

@johnmatthewtennant johnmatthewtennant commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Why

Pressing an unselected muted channel changed the mute icon to the selected text color before the selected background appeared. In dark mode the icon became black against the dark sidebar until mouse release.

What

Keep the shared SidebarNavigation metadata and secondary text in the hover color while pressing an unselected row. Selected and disabled rows retain their existing treatment.

Fixes AIDA-2429.

Reviewer-reproducible examples

  1. Mute a channel from its context menu, then select another channel.
  2. Press and hold the muted channel. Its mute icon should stay visible throughout the press.
  3. Release. The channel should become selected and the icon should remain visible.

The browser regression holds real pointer-down separately from pointer-up and checks the icon's rendered color in light and dark modes. This requires a rendering engine because DOM click() and jsdom do not exercise CSS :active. It fails on the previous PR head in Chromium and WebKit, where dark-mode ink changes from rgb(237, 247, 210) to black, and passes with this fix. One browser case replaces the earlier color-animation case.

bin/pnpm exec playwright test --config tests/browser/playwright.config.mjs navigation-mute-read.spec.mjs --project chromium --project webkit --no-deps --workers=1

Screenshots

Real app sidebar with disposable fixture data, captured while the mouse is held down.

Before, dark After, dark After, light
Mute icon becomes black during press Mute icon remains visible during press Mute icon during press in light mode

Co-authored-by: Oliver <e78152627ea32fbacb070e5047afcfb8e409fa3343d9e618227baacca5b5e607@buzz.block.builderlab.xyz>
Signed-off-by: John Tennant <[email protected]>
@johnmatthewtennant
johnmatthewtennant marked this pull request as ready for review November 3, 2026 18:24
@johnmatthewtennant
johnmatthewtennant requested a review from a team as a code owner November 3, 2026 18:24
@johnmatthewtennant johnmatthewtennant changed the title fix(channels): ease muted bell color on selection Fix the mute icon flashing when selecting a channel Nov 3, 2026

@kalvinnchau kalvinnchau left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Approved. The muted bell now uses the same color transition as the navigation item label, and reduced motion keeps both immediate. Verified: the muted bell browser regression passes on chromium and webkit, and fails on chromium with the CSS reverted.

@johnmatthewtennant
johnmatthewtennant marked this pull request as draft November 3, 2026 18:55
Co-authored-by: Oliver <e78152627ea32fbacb070e5047afcfb8e409fa3343d9e618227baacca5b5e607@buzz.block.builderlab.xyz>
Signed-off-by: John Tennant <[email protected]>
@johnmatthewtennant
johnmatthewtennant marked this pull request as ready for review November 3, 2026 19:04

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Star Lord’s automated source review via Wes’s account, integrating independent Rocket, Mantis and Groot reviews.

No actionable findings at head aaeb8facc1cbf1326d9f5d5637c8fb81cf72968a, base 134248ba7b82f4b4797e2397aa1ede1d812a4032 (merge-base f33d469dc9dc1eb62406b7b0bc59f70c49d109c7). The shared sidebar override keeps supporting text and metadata on the hover ink during an unselected press, while preserving selected/disabled treatment and existing focus behavior. The browser regression exercises real pointer-down separately from release in both themes; a rendering engine is appropriate for this CSS state. The net feature diff is two files.

Reviewed source, callers, shared design rules, PR description, commit messages and all three attached fixture screenshots. Source-only: no tests, builds, app launches, timing measurements or independent fail/pass reproduction. One hosted-check snapshot showed 39 successful checks and two skipped (Windows native validation and Vitest flake check). Native/touch/keyboard behavior and human acceptance remain unverified by this review. The linked Linear issue was inaccessible (403). This COMMENT is not approval or merge authorization.

@johnmatthewtennant
johnmatthewtennant merged commit 156ee85 into main Nov 4, 2026
77 of 79 checks passed
@johnmatthewtennant
johnmatthewtennant deleted the jtennant/oliver/mute-icon-flash branch November 4, 2026 18:53
johnmatthewtennant added a commit that referenced this pull request Nov 4, 2026
Signed-off-by: John Tennant <[email protected]>
Co-authored-by: Damon <8a08290d889f1c68921542bfe9631d4cd671be9bea5f1114951f386819e4c10a@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <[email protected]>

* origin/main:
  feat(agents): identify plugins in native hook output (#2299)
  [4/5] Add protection to the Codex harness plugin (#1879)
  feat(search): show member counts on channel results (#2333)
  Fix the mute icon flashing when selecting a channel (#2287)
  feat(agents): open a working agent's transcript from its activity (#2276)
  test(agents): refuse a real relay workflow mention in the harness kit (#2444)
  fix(agents): catch up every event watch on the kinds it watches (#1852)
  Keep local artifact collections current (#1507)
  feat(members): add several people to a chat in one write (#2010)
bradseiler added a commit that referenced this pull request Nov 4, 2026
Co-authored-by: Honor <e0bf479eeebe47dde1e35705212a4df70616a7bc834d907ddfb18cf0405f8b1b@seiler-test.communities.public.builderlabstaging.xyz>

* origin/main:
  feat(agents): identify plugins in native hook output (#2299)
  [4/5] Add protection to the Codex harness plugin (#1879)
  feat(search): show member counts on channel results (#2333)
  Fix the mute icon flashing when selecting a channel (#2287)
  feat(agents): open a working agent's transcript from its activity (#2276)
  test(agents): refuse a real relay workflow mention in the harness kit (#2444)
  fix(agents): catch up every event watch on the kinds it watches (#1852)
  Keep local artifact collections current (#1507)
  feat(members): add several people to a chat in one write (#2010)

Signed-off-by: Brad Seiler <[email protected]>
michaelneale added a commit that referenced this pull request Nov 4, 2026
* origin/main:
  Open any Inbox filter view by route (#2394)
  fix(bestie): deleting an agent saves no Bestie record where there was none (#2420)
  fix(unread): never treat agents-audience messages as unread (#1552)
  feat(focus): add an optional Focus plugin that quiets everything except Solo chats (#2277)
  [5/5] Add protection to the Goose harness plugin (#839)
  feat(agents): identify plugins in native hook output (#2299)
  [4/5] Add protection to the Codex harness plugin (#1879)
  feat(search): show member counts on channel results (#2333)
  Fix the mute icon flashing when selecting a channel (#2287)
  feat(agents): open a working agent's transcript from its activity (#2276)

Signed-off-by: Michael Neale <[email protected]>

# Conflicts:
#	crates/plugin-manager/tests/management.rs
#	src/app/pages.integration.test.mjs
#	src/features/agent-harness/acp/process.ts
wpfleger96 added a commit that referenced this pull request Nov 4, 2026
…-service

* origin/main: (73 commits)
  fix(bestie): deleting an agent saves no Bestie record where there was none (#2420)
  fix(unread): never treat agents-audience messages as unread (#1552)
  feat(focus): add an optional Focus plugin that quiets everything except Solo chats (#2277)
  [5/5] Add protection to the Goose harness plugin (#839)
  feat(agents): identify plugins in native hook output (#2299)
  [4/5] Add protection to the Codex harness plugin (#1879)
  feat(search): show member counts on channel results (#2333)
  Fix the mute icon flashing when selecting a channel (#2287)
  feat(agents): open a working agent's transcript from its activity (#2276)
  test(agents): refuse a real relay workflow mention in the harness kit (#2444)
  fix(agents): catch up every event watch on the kinds it watches (#1852)
  Keep local artifact collections current (#1507)
  feat(members): add several people to a chat in one write (#2010)
  feat(solo): let viewers join read-only spaces (#2301)
  [3/5] Add protection to the Claude harness plugin (#1878)
  fix(settings): keep the bottom padding on long sections (#2361)
  fix(mermaid): cap diagram output size (#2231)
  feat(agents): give plugin agent types the Buzz side of a turn (#2364)
  feat(plugins): pin buzz://plugin-install links to a path and commit (#2315)
  feat(plugins): tint currentColor SVG page icons like host icons (#2314)
  ...

# Conflicts:
#	src-tauri/src/host_process.rs
#	src-tauri/src/lib.rs
#	src/bundled/claude-code/claude.ts
#	src/bundled/codex/rpc.ts
#	src/bundled/goose/goose.ts
#	src/bundled/goose/runtime.ts
#	src/bundled/goose/sessions.test.ts
#	src/bundled/goose/sessions.ts
#	src/features/agent-harness/acp/process.ts
gilgtm added a commit that referenced this pull request Nov 4, 2026
* origin/main: (22 commits)
  feat(mentions): quieter mention menu that marks agents and their owners (#2328)
  feat: add a Canvas View tab, History diffs and a 256 KiB limit (#2318)
  feat(plugins): let local agents write and reload plugins (#2435)
  feat(onboarding): offer Create a community after public Builderlab sign-in (#2397)
  Open any Inbox filter view by route (#2394)
  fix(bestie): deleting an agent saves no Bestie record where there was none (#2420)
  fix(unread): never treat agents-audience messages as unread (#1552)
  feat(focus): add an optional Focus plugin that quiets everything except Solo chats (#2277)
  [5/5] Add protection to the Goose harness plugin (#839)
  feat(agents): identify plugins in native hook output (#2299)
  [4/5] Add protection to the Codex harness plugin (#1879)
  feat(search): show member counts on channel results (#2333)
  Fix the mute icon flashing when selecting a channel (#2287)
  feat(agents): open a working agent's transcript from its activity (#2276)
  test(agents): refuse a real relay workflow mention in the harness kit (#2444)
  fix(agents): catch up every event watch on the kinds it watches (#1852)
  Keep local artifact collections current (#1507)
  feat(members): add several people to a chat in one write (#2010)
  feat(solo): let viewers join read-only spaces (#2301)
  [3/5] Add protection to the Claude harness plugin (#1878)
  ...

Signed-off-by: Gil Birman <[email protected]>
Co-authored-by: Claude <[email protected]>
wpfleger96 added a commit that referenced this pull request Nov 4, 2026
…r-load-perf

* origin/main:
  Open any Inbox filter view by route (#2394)
  fix(bestie): deleting an agent saves no Bestie record where there was none (#2420)
  fix(unread): never treat agents-audience messages as unread (#1552)
  feat(focus): add an optional Focus plugin that quiets everything except Solo chats (#2277)
  [5/5] Add protection to the Goose harness plugin (#839)
  feat(agents): identify plugins in native hook output (#2299)
  [4/5] Add protection to the Codex harness plugin (#1879)
  feat(search): show member counts on channel results (#2333)
  Fix the mute icon flashing when selecting a channel (#2287)
  feat(agents): open a working agent's transcript from its activity (#2276)

Signed-off-by: Will Pfleger <[email protected]>

# Conflicts:
#	src/features/agent-harness/acp/agent-sessions.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants