Skip to content

feat(tui): add TUI session orchestrator (salvage #27642)#32980

Merged
teknium1 merged 2 commits into
mainfrom
hermes/hermes-c56cff45
May 27, 2026
Merged

feat(tui): add TUI session orchestrator (salvage #27642)#32980
teknium1 merged 2 commits into
mainfrom
hermes/hermes-c56cff45

Conversation

@teknium1

@teknium1 teknium1 commented May 27, 2026

Copy link
Copy Markdown
Contributor

Salvages #27642 by @ticketclosed-wontfix onto current main.

Summary

Adds an Ink TUI session orchestrator overlay so one Hermes TUI can list, switch between, refresh, and close multiple live process-local sessions, plus dispatch a new session with a session-scoped model pick.

Changes

  • tui_gateway/server.py: new RPCs session.active_list, session.activate, session.close over the in-process session table.
  • ui-tui/src/components/activeSessionSwitcher.tsx: overlay component (windowed list, status glyphs, +new row with nested model picker).
  • ui-tui/src/app/*: wires /sessions, /switch, and Ctrl+X to open the orchestrator; status chrome gains a clickable live-session count.
  • Backend + frontend regression coverage.
  • Docs page + screenshot/mp4 under website/docs/user-guide/tui.md.

Validation

  • scripts/run_tests.sh tests/test_tui_gateway_server.py — 186 passed.
  • py_compile tui_gateway/server.py — clean.

Closes #25134.

Infographic

tui-session-orchestrator

@github-actions

github-actions Bot commented May 27, 2026

Copy link
Copy Markdown
Contributor

🔎 Lint report: hermes/hermes-c56cff45 vs origin/main

ruff

Total: 0 on HEAD, 0 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 9400 on HEAD, 9384 on base (🆕 +16)

🆕 New issues (1):

Rule Count
invalid-assignment 1
First entries
tui_gateway/server.py:2267: [invalid-assignment] invalid-assignment: Invalid subscript assignment with key of type `Literal["updated_at"]` and value of type `int | float` on object of type `dict[str, str | bool]`

✅ Fixed issues: none

Unchanged: 4972 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

@alt-glitch alt-glitch added type/feature New feature or request P2 Medium — degraded but workaround exists comp/tui Terminal UI (ui-tui/ + tui_gateway/) comp/gateway Gateway runner, session dispatch, delivery labels May 27, 2026
ticketclosed-wontfix and others added 2 commits May 26, 2026 20:44
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 teknium1 force-pushed the hermes/hermes-c56cff45 branch from 5c12730 to 5857c01 Compare May 27, 2026 03:44
@teknium1 teknium1 merged commit 9feadc2 into main May 27, 2026
27 checks passed
@teknium1 teknium1 deleted the hermes/hermes-c56cff45 branch May 27, 2026 03:52
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/) P2 Medium — degraded but workaround exists 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

3 participants