Skip to content

feat(tui): pin, quick-switch, and cycle recent sessions#26858

Merged
nexxeln merged 3 commits into
devfrom
nxl/tui-session-switching
May 11, 2026
Merged

feat(tui): pin, quick-switch, and cycle recent sessions#26858
nexxeln merged 3 commits into
devfrom
nxl/tui-session-switching

Conversation

@nexxeln
Copy link
Copy Markdown
Member

@nexxeln nexxeln commented May 11, 2026

summary

  • adds a Pinned section and a Recent section (top 5) to the session list (ctrl+x l), in front of the existing date groups
  • new keybinds inside the picker: ctrl+f to pin/unpin, ctrl+h to toggle a session in/out of Recent
  • new global keybinds: <leader>1..9 jump to the first 9 sessions in the picker (pins first, then most-recent fall-through), with slot numbers shown in the picker gutter
  • new global keybinds: <leader>] / <leader>[ cycle through recently visited sessions (like alt+tab between sessions)
  • state is persisted to ~/.local/share/opencode/session.json, per-instance, mirroring the existing model favorites pattern
  • pinned/dismissed/recent-order are auto-pruned on session.deleted
  • 4 new home-screen tips covering the feature so it's actually discoverable

testing

  • bun typecheck clean
  • manual smoke test plan in the PR thread; main flows: pin a session, watch it move to Pinned + get a slot number; press <leader>1 and confirm navigation; press ctrl+h on a Recent row and watch it drop into the date group; press it again and watch it come back to Recent; switch between 3 sessions and use <leader>] / <leader>[ to walk the history

nexxeln added 3 commits May 11, 2026 16:30
adds pinned and recent sections to the session picker, ctrl+f to pin/unpin, ctrl+h to toggle a session in/out of recent, <leader>1-9 to jump to numbered slots (pins + recent fall-through), and <leader>] / <leader>[ to cycle through visited sessions. state is persisted per-instance and auto-prunes on session delete.
…N_SWITCHING

the new pinned/recent picker layout, quick-switch hotkeys, cycle-recent hotkeys, in-picker pin/toggle-recent actions, route MRU tracking, and discoverability tips are all gated on Flag.OPENCODE_EXPERIMENTAL_SESSION_SWITCHING. defaults off; opt in with OPENCODE_EXPERIMENTAL_SESSION_SWITCHING=true or the global OPENCODE_EXPERIMENTAL=true. pinned state is still loaded from session.json so toggling the flag is non-destructive.
@nexxeln nexxeln merged commit 12583b1 into dev May 11, 2026
10 checks passed
@nexxeln nexxeln deleted the nxl/tui-session-switching branch May 11, 2026 17:16
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.

1 participant