ResearchShared TUI Extraction

01 - Tailrocks Consumers

01 - Tailrocks Consumers

Shared terminal components are useful only if product ownership stays explicit. This chapter records the reuse rationale and future boundaries; it does not add another product to the extraction program.

Product map

ProductOwnsShared TUI need
jackin❯AI-agent isolation, runtime selection, launch, orchestration, session control, and agent visibilityconsole/Capsule tabs, panels, trees, dialogs, status, input, terminal lifecycle, render conformance
Holladetecting host/project context and presenting relevant commands/tasksmenu/list navigation, tabs, task states, bounded live output, hints, terminal restoration
VelnorGitHub Actions-compatible self-hosted runner execution today; broader workflow engine only if future scope approves itrunner health, queued/running/completed jobs, step progress, bounded logs, errors
ParallaxOpenTelemetry ingest, debugging evidence, issues, traces, logs, metrics, and bounded contextoptional interactive CLI navigation; its primary web UI remains separate
Future Tailrocks toolstheir own domain state and commandsconsistent components without importing another product

Parallax describes CLI, API, and web clients over one canonical service in its research map. Velnor defines current and future ownership in its mission and vision. Holla's README defines an adaptive local command surface.

Current evidence

Holla currently uses Ratatui 0.30 and Crossterm 0.29 and directly implements alternate-screen/raw-mode lifecycle, tabs, key navigation, scrolling, status glyphs, and output panes. That overlap makes Holla a plausible future adopter, but this roadmap neither validates nor changes it.

Velnor has no Ratatui dependency today. Its current GitHub runner uses GitHub as the scheduling/operator UI, so shared-TUI work must wait for a concrete local runner-console workflow rather than prebuilding Velnor components.

Parallax references terminal applications as telemetry sources and remains web-first. It should adopt shared components only for a real interactive CLI. Do not reinterpret shared TUI as a reason to replace or wrap its web interface.

Integration boundary

The library is a normal Rust dependency:

consumer Model/Message/Effect
           |
           v
termrock state + render contracts
           |
           v
Ratatui / Crossterm

It is not:

  • a shared daemon or IPC channel;
  • a command registry for all Tailrocks products;
  • a common config/persistence format;
  • a secret resolver;
  • a telemetry SDK;
  • a cross-product domain model.

Products integrate with one another through commands, stable APIs, and OpenTelemetry when needed. Sharing UI mechanics does not create runtime dependencies among them.

Adoption boundary

  1. jackin❯ is the donor, compatibility oracle, and only consumer migrated by this roadmap.
  2. Holla, Velnor, Parallax, TableRock, and later products adopt only through separately scoped work when they have a concrete interactive workflow.
  3. No checkout, patch, build, smoke test, compatibility claim, or acceptance gate in another product repository is required to complete this roadmap.

The public API remains neutral through product-free types, generic stories, compile-checked architecture examples, and jackin❯ parity. It does not prebuild a database grid, CI job tree, trace browser, or command menu for hypothetical consumers.

Missing widgets are accepted at adoption time: the extraction ships only the existing donor set, and consumer needs beyond it — trees, progress indicators, data tables, command palettes, multi-line editors — are deliberate post-extraction roadmap work under the two-consumer rule, never extraction blockers.

On this page