Skip to content

feat(journey): CLI + TUI learning timeline (/journey) - #55555

Merged
OutThisLife merged 6 commits into
mainfrom
bb/memory-graph-cli-tui
Jun 30, 2026
Merged

feat(journey): CLI + TUI learning timeline (/journey)#55555
OutThisLife merged 6 commits into
mainfrom
bb/memory-graph-cli-tui

Conversation

@OutThisLife

@OutThisLife OutThisLife commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator
image

Summary

Brings the merged desktop Memory Graph / Star Map (#55226) to the terminal as /journey — learned skills + memories on a timeline — for both the CLI and the TUI. Both surfaces share one size-aware Python renderer (agent/learning_graph_render.py) over the existing agent/learning_graph API. CLI/TUI only — no desktop changes. (main only has the desktop panel + a dashboard REST endpoint; there was no terminal surface for this.)

TUI /journey overlay

  • Chronological tree. Each timeline slice is a parent header with its skills + memories nested under ├─/└─ branch chars, oldest → newest. One cursor walks the whole tree.
  • Drill into detail that exists. Memories carry body text → Enter/→ opens a ScrollBox page; skills are dead-ends and aren't openable (marked, and the hint adapts). No more "nothing to see here" pages.
  • Group spacing. A blank, non-selectable gap row separates slices (cursor skips it).
  • /agents parity. Static chart overview on top; full-row inverse selection; footer pinned to the bottom via the same flex shell.

CLI

  • hermes journey (aliases learning, memory-graph) — static timeline plus --play / --reveal scrubber and --json. Also available as /journey inside the interactive CLI.

Colors / DRY

  • Memories (drillable) wear the primary "clickable" ink; skills (dead-ends) the muted complement — flipped in both TUI + CLI palettes for parity.
  • Extracted OverlayScrollbar into its own module, now shared with agentsOverlay; both lists run through one table-driven ListRow.
  • Removed ~190 lines of dead braille/orbital render code (and seed/links params) left from earlier visual iterations.

Test plan

  • scripts/run_tests.sh tests/agent/test_learning_graph_render.py (16 passed) — renderer behavior contracts.
  • ui-tui npm run typecheck + npm run lint clean (pre-existing useSessionLifecycle warnings only).
  • npx vitest run src/__tests__/journeyCommand.test.ts (3 passed) — /journey resolves by name + aliases, opens overlay, survives soft reset.
  • ruff check . clean (the prior CI fail was a uv tool install timeout, not a violation).
  • Manual: hermes journey / --play, and /journey in the TUI (tree nav, drill memory, gap spacing).

Terminal rendition of the desktop Star Map / Memory Graph: learned skills
and memories on a timeline, shared by `hermes journey` and the TUI
`/journey` overlay via one size-aware Python renderer
(agent/learning_graph_render.py).

- TUI overlay mirrors /agents: static chart overview + selectable slice
  list → slice detail → single skill/memory body, with the shared
  inverse-row selection treatment and a pinned footer.
- Reuse primitives: extract OverlayScrollbar into its own module (now
  shared with agentsOverlay), scroll the item body via ScrollBox, and
  unify both lists through one table-driven ListRow.
- No animation/playback in the TUI — pure data; the renderer's reveal
  scrubber stays available in the CLI (`--play`, `--reveal`).
@alt-glitch alt-glitch added type/feature New feature or request P3 Low — cosmetic, nice to have comp/agent Core agent runtime: loop, agent_init, prompt builder, context-compression, responses endpoint comp/cli CLI entry point, hermes_cli/, setup wizard comp/tui Terminal UI (ui-tui/ + tui_gateway/) tool/memory Memory tool and memory providers tool/skills Skills system (list, view, manage) labels Jun 30, 2026

@tonydwb tonydwb left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Summary

Verdict: Comment — High surface area (17 files, +2192 additions)

This PR adds a new /journey CLI + TUI learning timeline feature with a terminal star-map renderer (881 lines). The implementation is well-documented and the renderer design is thoughtful (braille subpixel rendering, orbital chart layout, magnitude gradients).

However, at 17 files and 2192 additions this is a significant new feature that would benefit from a more focused review. The renderer alone is a substantial piece of code with complex geometry and color math.

Observations

  • The star-map renderer (learning_graph_render.py) is 881 lines of pure stdlib-only code — impressive self-contained implementation
  • Color math (HSL/RGB conversions, age gradients) is correctly ported from the desktop geometry.ts/color.ts
  • The braille subpixel rendering approach is creative and well-suited for terminal output
  • TUI integration looks clean with proper async rendering

Suggestion

  • Consider whether the renderer should live in a separate module/package given its size and independence from the core agent

Reviewed by Hermes Agent

@tonydwb tonydwb left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Summary

Verdict: Comment — high surface area (2192 additions, 17 files), needs human review.

This PR adds a CLI + TUI learning timeline feature (/journey) with a terminal star map renderer. The new module learning_graph_render.py (881 lines) ports the desktop app's GPU radial constellation design to a terminal rendition using Braille subpixel rendering.

Observations

  • The star map renderer is substantial (881 lines) and implements complex terminal graphics
  • Multiple new modules and integration points across the codebase
  • The Braille subpixel rendering approach is interesting but needs human review for edge cases
  • Feature appears well-designed with proper separation of concerns

Reviewed by Hermes Agent

Skill nodes carry no body in the learning_graph payload, so opening one
dead-ended on "No additional detail recorded yet." Gate Enter/→ to nodes
with body (memories), mark those rows with a › affordance, and only show
the "open" hint when the selected row is drillable.
Collapse the two-step slice list → detail page into one scrollable tree:
each timeline slice is a parent header with its skills + memories nested
under ├─/└─ branch chars, ordered oldest → newest (children now sorted
chronologically in the renderer). One cursor walks the whole tree; Enter
still opens a memory's body. Drops the separate detail mode.
Add a non-selectable spacer row before each slice (except the first) so
groups breathe — the CSS `group + group { margin-top }` equivalent. The
gap counts toward the scroll window but cursor navigation skips it.
The renderer kept a braille canvas, char-field scene, star-glyph/orbital
helpers, and seed/links params from earlier visual iterations that the
final timeline bar chart never uses. Remove them (~190 lines), simplify
the empty-state placeholder, and refresh the module + RPC docstrings to
describe what actually ships.
Memories are the only drillable rows, so give them the primary "clickable"
ink and demote skills (dead-ends) to the muted complement — previously the
non-openable skills wore the link-looking primary color. Flipped in both
the TUI and CLI palettes for parity.
@OutThisLife
OutThisLife merged commit 9f8de4d into main Jun 30, 2026
36 checks passed
@OutThisLife
OutThisLife deleted the bb/memory-graph-cli-tui branch June 30, 2026 19:43
waefrebeorn pushed a commit to waefrebeorn/slermes that referenced this pull request Jul 2, 2026
…ph-cli-tui

feat(journey): CLI + TUI learning timeline (/journey)
habarmc1223-sudo pushed a commit to habarmc1223-sudo/hermes-agent-fluxmem that referenced this pull request Jul 8, 2026
…ph-cli-tui

feat(journey): CLI + TUI learning timeline (/journey)
santhreal pushed a commit to santhreal/hermes-agent that referenced this pull request Jul 13, 2026
…ph-cli-tui

feat(journey): CLI + TUI learning timeline (/journey)
Gravezzz pushed a commit to Gravezzz/hermes-agent that referenced this pull request Jul 21, 2026
…ph-cli-tui

feat(journey): CLI + TUI learning timeline (/journey)
leewenjie pushed a commit to leewenjie/hermes-agent that referenced this pull request Aug 7, 2026
…ph-cli-tui

feat(journey): CLI + TUI learning timeline (/journey)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/agent Core agent runtime: loop, agent_init, prompt builder, context-compression, responses endpoint comp/cli CLI entry point, hermes_cli/, setup wizard comp/tui Terminal UI (ui-tui/ + tui_gateway/) P3 Low — cosmetic, nice to have tool/memory Memory tool and memory providers tool/skills Skills system (list, view, manage) type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants