[Bug]: Cmd+[ / Cmd+] back/forward stops on the Settings page instead of skipping to threads#16542

openedOct 6, 2026byWWarutC

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/web (navigation)

Steps to reproduce

  1. Open thread A, then open thread B.
  2. Open Settings, then close it so you are back on thread B.
  3. Press Cmd+[ (navigation.back).

Expected behavior

Back moves to thread A. The Settings page should not be a stop in thread back/forward navigation, since the user already closed it.

Actual behavior

The view switches to the Settings page. One more Cmd+[ is needed to reach thread A. This happens with the sidebar scope set to "All projects" and with a single-project scope, so it is unrelated to the scope filter.

navigation.back / navigation.forward call window.history.back() / window.history.forward(), so every route in the history stack counts as a stop, including Settings. Related: #10388 (Escape not returning to the previous thread from Pull Requests / Usage, closed).

Impact

Minor bug or occasional failure. Back/forward is unreliable for hopping between threads once Settings has been opened.

Version or commit

T3 Code (Alpha) 0.0.45, macOS

Suggested direction

Skip non-thread routes (Settings, Usage, Pull Requests) when navigating back/forward, or make closing Settings replace its history entry instead of leaving it on the stack.

Workarounds

Cmd+Shift+[ / Cmd+Shift+] (thread.previous / thread.next) do not stop on Settings, at least with "All projects" selected. They follow the sidebar order, not visit order, so they are not a full substitute for back/forward.

Reproduced on main a12d6ed942 in the Linux web dev app with two stopped threads: A → B → Settings → Back → Ctrl+[ returned to Settings. Closing with Escape had the same result. Ctrl+[ is the Linux equivalent of the reported Cmd+[ binding; native macOS/Electron was not checked.

Reproduction transcript.

Fix preserved in draft #23222 at 5f983b4e2c. Two focused browser regressions pass; a real Chromium/Linux run returns B after closing Settings, then Ctrl+[ reaches A and Ctrl+] returns B. Native macOS/Electron remains unverified. The evidence audit is insufficient because capture geometry, clock, and matrix variants remain incomplete; the PR stays draft for maintainer verification.