Skip to content

Opening a notification from the bell list marks it read but doesn't switch to the tab that raised it #607

Closed

Description

@joelmoss

🤖 Filed by Claude Code at the owner's request.

What happens

  1. In a workroom, Terminal 1 runs sleep 3; printf '\e]9;qa-osc9-notify\a'.
  2. Press ⌘T straight away, so Terminal 3 is the visible tab when the notification arrives.
  3. The notification arrives as expected: a toast, then a row in the bell's list, and the unread count goes up.
  4. Open the bell (activity bar) and click the row "qa-osc9-notify, UITestProject / uitest-room".

Expected: the window switches to Terminal 1, the tab that raised it. The toast's own help text says "Opens the terminal this notification came from".

Actual: the row is marked read and leaves the list, but Terminal 3 stays selected.

Seen

2026-11-08, in the UI-test fixture (-WorkroomUITestFixture 1), on the vt-1.0.0 branch (#597), driven with real clicks during its engine-bump check.

Not yet checked:

  • whether it happens on master, or outside fixture mode;
  • whether clicking the toast itself behaves the same (the toast had timed out by then).

The routing is app code the Ghostty bump doesn't touch, so it's probably independent of #597.

Where to look

How a notification's tap opens its source, through WindowRegistry.open's notification path, from the bell's NotificationsList row. Check that the record keeps its tab id for an OSC 9 notification raised by a tab in the same workroom as the one now in front. NotificationRoutingTests and ActivityBarUITests cover parts of this; see whether either asserts the tab switch.

Done when

Clicking a notification in the bell's list, or on its toast, selects the tab that raised it. A test pins it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions