Repository navigation
Description
Summary
The T3 Code right diff panel does not preserve its manually closed state when navigating between sessions.
Steps to reproduce
- Open the
Thread Asession in T3 Code (Nightly) with a diff visible. - Click the
Toggle right panelcontrol to close the panel; the control reportsValue: 0and the main conversation expands across the window. - Switch to the
Thread Bsession; its right panel remains closed and the control reportsValue: 0. - Switch back to
Thread A. - Observe that the right diff panel is open again and the
Toggle right panelcontrol reportsValue: 1.
Expected behavior
Closing the right panel should persist for the current window or session according to the product's panel-state contract, so switching to another session and returning should keep the panel closed until the user opens it.
Actual behavior
Returning to Thread A automatically reopens the right diff panel after it was explicitly closed.
Affected area
T3 Code session navigation and the Toggle right panel diff-panel visibility state.
Runtime or environment
T3 Code desktop (Nightly), version 0.0.41-nightly.20260913.1658, on macOS 26.6.2. The version was read directly from the installed app bundle. The reproduction uses two threads, referred to generically as Thread A and Thread B.
Evidence
The accessibility state showed Toggle right panel, Value: 0 immediately after closing the panel and while Thread B was selected, then Toggle right panel, Value: 1 after returning to Thread A.
Impact
Users who close the diff panel to focus on a conversation lose that layout choice whenever they revisit a session, causing unexpected UI changes and repeated manual toggling.
Additional context
The issue reproduces without changing repository content or diff settings; it is limited to restoring the panel visibility state during session switches.
Activity
juliusmarminge commentedon Sep 13, 2026
Triage
This looks like a real web/desktop layout bug. Closing the right panel already writes per-thread
isOpen: falseinrightPanelStore(persisted, surfaces kept). Switching away and back should snap to that stored state (docs/user/appearance.md). Something is opening the panel again on re-entry.Likely cause
First-entry proactive panels, not a failed persist of the toggle.
Toggle right panelisPanelLayoutControls(pressed→ a11y Value0/1) and callsclose()/toggleVisibility()inChatView.previousRunningTurnId === undefined).userActionRevisionmoved after the observation snapshot. Thread switch recaptures the revision after the close, soopenProactivetreats it as allowed and setsisOpen: trueagain.That matches: thread B stays closed; the thread that already had a visible diff reopens on return. PR #9276 originally kept historical panels closed on thread switches; #10610 changed that.
This path is gated by Settings → General → Proactive panels (default off). If that toggle is on, this report is explained. If it is off and it still reproduces with no turn completing in the background, say so — we would look for a second opener.
Related but not the same: #5548 / PR #11310 (per-thread width), PR #3083 (hide keeps the diff surface).
Suggested fix
Do not treat a user-hidden panel as first-entry fodder. Skip proactive open when the thread already has
isOpen: falseand adiff(or PR) surface, and/or persistuserActionRevisionso a close survives thread switches. Cover it with: close on A → switch to B → return to A → panel stays closed.Web and desktop share this
ChatViewpath. Mobile is a separate surface.coygeek commentedon Sep 13, 2026
Follow-up
Confirmed: with Settings → General → Proactive panels enabled, closing the right panel and switching away and back causes the panel to reopen.
After disabling Proactive panels, the same close → switch sessions → return sequence keeps the right panel closed.
This confirms the behavior is tied to proactive panel opening on thread re-entry. The panel state behaves as expected when proactive panels are disabled.
fix(web): keep a closed right panel closed across thread switches