Skip to content

feat: add TUI session orchestrator#27642

Closed
ticketclosed-wontfix wants to merge 1 commit into
NousResearch:mainfrom
ticketclosed-wontfix:feat/tui-active-session-switcher-clean
Closed

feat: add TUI session orchestrator#27642
ticketclosed-wontfix wants to merge 1 commit into
NousResearch:mainfrom
ticketclosed-wontfix:feat/tui-active-session-switcher-clean

Conversation

@ticketclosed-wontfix

@ticketclosed-wontfix ticketclosed-wontfix commented May 17, 2026

Copy link
Copy Markdown
Contributor

What changed and why

  • Adds a TUI live session switcher so one Hermes TUI can dispatch, switch between, refresh, and close multiple live sessions.
  • Adds TUI gateway RPCs for process-local active-session listing, activation, and closing.
  • Wires the switcher into /sessions, /switch, Ctrl+X, and the status-line live session count.
  • Adds docs for the live session switcher, including screenshot/video assets and slash-command reference updates.

Screenshot / video

Hermes TUI Session Orchestrator

How to test

Automated:

  • scripts/run_tests.sh tests/test_tui_gateway_server.py -- -q — 186 passed.
  • cd ui-tui && npm run build --prefix packages/hermes-ink — passed.
  • cd ui-tui && npm test -- activeSessionSwitcher appChromeStatusRule orchestratorPromptSession useSessionLifecycle createSlashHandler hit-test --run — 74 passed.
  • cd ui-tui && npm run build — passed.
  • cd website && npm run build — passed.
  • $HOME/.hermes/hermes-agent/venv/bin/python scripts/check-windows-footguns.py --diff origin/main — passed.

Baseline note:

  • cd ui-tui && npm run type-check currently fails on clean origin/main too, in packages/hermes-ink/src/utils/execFileNoThrow.ts TypeScript overload errors. This branch fixes the rebase-introduced setVoiceTts context error, but the remaining type-check failure is not isolated to this PR.

Manual smoke:

  • Opened the TUI Session Orchestrator and verified the current session row, +new row, footer hotkeys, and visual layout shown above.

Platforms tested

  • Fedora Linux 44 scratch clone on Hermes VM.
  • Python 3.11.15.
  • Node.js v22.22.2 / npm 10.9.7.

Related issues

Security notes

  • No auth, token, permission, or network exposure changes.

@alt-glitch alt-glitch added type/feature New feature or request comp/tui Terminal UI (ui-tui/ + tui_gateway/) comp/gateway Gateway runner, session dispatch, delivery P3 Low — cosmetic, nice to have labels May 17, 2026
@efim23

efim23 commented May 26, 2026

Copy link
Copy Markdown

Any updates here? That would be an awesome feature!

Add a first-class active-session orchestrator for the Ink TUI:

- list, activate, close, and launch live process-local TUI sessions
- hydrate committed and in-flight output when switching sessions
- dispatch a new prompt session from the +new row with session-scoped model picks
- expose a clickable live-session count in the status chrome
- preserve stable row order while initially focusing the current session
- support mouse hit-testing for floating orchestrator overlays
- add backend and frontend regression coverage for the lifecycle and UI helpers
@teknium1

Copy link
Copy Markdown
Contributor

Merged via PR #32980 → commit 0a83247 on main. Your commit was cherry-picked with authorship preserved (git log shows you as the author). Thanks for the orchestrator overlay — clean diff, all-green CI, 186 tui_gateway_server tests pass. Closes #25134.

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

Labels

comp/gateway Gateway runner, session dispatch, delivery comp/tui Terminal UI (ui-tui/ + tui_gateway/) P3 Low — cosmetic, nice to have type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Concurrent session switcher — live in-terminal panel to switch between active sessions

4 participants