[Grid agent] Build the cross-platform operator TUI #128

Closed
opened 2026-08-17 19:31:36 +00:00 by hugo · 1 comment
Owner

Objective

Build a responsive terminal operator interface in pure Rust that works both embedded in the agent process and as a separate client of the portable control plane.

Required interface

  • Use one UI state model and control client for both modes; integrated mode must not bypass authentication/policy semantics for mutating commands.
  • Provide views for connection/readiness, current region and pose, behavior mode, active sessions (metadata first), inference/tool queues, budgets/rate limits, scheduled roaming, pending approvals, structured activity/audit timeline, health/metrics, and recent errors.
  • Provide searchable/filterable events by severity, component, avatar/session/action correlation, and time; show dropped-event/gap indicators. Allow opt-in viewing of redacted diagnostic prompt envelopes only when capture was explicitly enabled.
  • Support pause/resume, cancel action, approve/deny, reconnect, expire session, toggle an existing schedule, and graceful shutdown with confirmations appropriate to risk.
  • Remain usable on small terminals, handle resize, Unicode width, color-disabled terminals, keyboard-only navigation, reconnect to a restarted service, and clean terminal restoration after panic/error/Ctrl-C.
  • Never display or copy API keys, grid passwords, operator tokens, capability URLs, or hidden chain-of-thought.

Responsiveness and portability

Rendering must be event-driven with bounded refresh/event queues; high-rate logs are sampled/coalesced without losing error counts. No Unix-only terminal/IPC assumptions. The service remains independent when the TUI exits or crashes.

Acceptance criteria

  • Reducer/snapshot tests cover every screen and command without requiring a real terminal.
  • Pseudo-terminal or equivalent tests cover resize, key navigation, reconnect, slow event streams, Unicode, monochrome mode, and terminal restoration on Linux; portable code paths are compile-checked for Windows.
  • Integrated and split-mode conformance tests produce the same displayed state and management outcomes.
  • Under the milestone load scenario, input and status updates remain visibly responsive while inference and grid reconnects are in progress.

Dependencies

Depends on control plane and observability. Feature-specific panels consume their stable APIs; the TUI must not import private runtime state.

## Objective Build a responsive terminal operator interface in pure Rust that works both embedded in the agent process and as a separate client of the portable control plane. ## Required interface - Use one UI state model and control client for both modes; integrated mode must not bypass authentication/policy semantics for mutating commands. - Provide views for connection/readiness, current region and pose, behavior mode, active sessions (metadata first), inference/tool queues, budgets/rate limits, scheduled roaming, pending approvals, structured activity/audit timeline, health/metrics, and recent errors. - Provide searchable/filterable events by severity, component, avatar/session/action correlation, and time; show dropped-event/gap indicators. Allow opt-in viewing of redacted diagnostic prompt envelopes only when capture was explicitly enabled. - Support pause/resume, cancel action, approve/deny, reconnect, expire session, toggle an existing schedule, and graceful shutdown with confirmations appropriate to risk. - Remain usable on small terminals, handle resize, Unicode width, color-disabled terminals, keyboard-only navigation, reconnect to a restarted service, and clean terminal restoration after panic/error/Ctrl-C. - Never display or copy API keys, grid passwords, operator tokens, capability URLs, or hidden chain-of-thought. ## Responsiveness and portability Rendering must be event-driven with bounded refresh/event queues; high-rate logs are sampled/coalesced without losing error counts. No Unix-only terminal/IPC assumptions. The service remains independent when the TUI exits or crashes. ## Acceptance criteria - [ ] Reducer/snapshot tests cover every screen and command without requiring a real terminal. - [ ] Pseudo-terminal or equivalent tests cover resize, key navigation, reconnect, slow event streams, Unicode, monochrome mode, and terminal restoration on Linux; portable code paths are compile-checked for Windows. - [ ] Integrated and split-mode conformance tests produce the same displayed state and management outcomes. - [ ] Under the milestone load scenario, input and status updates remain visibly responsive while inference and grid reconnects are in progress. ## Dependencies Depends on control plane and observability. Feature-specific panels consume their stable APIs; the TUI must not import private runtime state.
hugo added this to the 14 - metacrate grid agent milestone 2026-08-17 19:31:36 +00:00
hugo added the enhancement label 2026-08-17 19:31:36 +00:00
Author
Owner

Implemented in commit 6370b3e. Added a pure-Rust cross-platform operator TUI with one reducer/snapshot model for authenticated in-process and TCP clients; overview, session, queue/budget, roaming, approval, filtered timeline, health/metrics, error, and redacted-diagnostic views; bounded/coalesced refresh and input handling; Unicode/small-terminal/NO_COLOR rendering; risk confirmations and all requested management commands; terminal restoration guards; and reconnecting split transport for restarted services. Added embedded --tui and separate --tui-client launch modes, operator documentation, reviewed crossterm/unicode-width dependencies, and the grid-agent to the existing ubuntu-latest Windows GNU cross-check.

Verified: cargo test --locked -p metacrate-grid-agent (106 unit + integration/doc tests); focused tui_tests; dependency_policy; integrated/TCP control-plane conformance; observability bounds/gaps; live-grid all-target clippy with -D warnings; rustdoc with -D warnings; CLI help smoke; and metacrate-ci-matrix ci-audit. The direct local Windows cross-check was also attempted and reached aws-lc-sys, where this workstation lacks x86_64-w64-mingw32-gcc; the committed ubuntu-latest release gate installs mingw-w64 and now owns that compile check.

Implemented in commit 6370b3e. Added a pure-Rust cross-platform operator TUI with one reducer/snapshot model for authenticated in-process and TCP clients; overview, session, queue/budget, roaming, approval, filtered timeline, health/metrics, error, and redacted-diagnostic views; bounded/coalesced refresh and input handling; Unicode/small-terminal/NO_COLOR rendering; risk confirmations and all requested management commands; terminal restoration guards; and reconnecting split transport for restarted services. Added embedded --tui and separate --tui-client launch modes, operator documentation, reviewed crossterm/unicode-width dependencies, and the grid-agent to the existing ubuntu-latest Windows GNU cross-check. Verified: cargo test --locked -p metacrate-grid-agent (106 unit + integration/doc tests); focused tui_tests; dependency_policy; integrated/TCP control-plane conformance; observability bounds/gaps; live-grid all-target clippy with -D warnings; rustdoc with -D warnings; CLI help smoke; and metacrate-ci-matrix ci-audit. The direct local Windows cross-check was also attempted and reached aws-lc-sys, where this workstation lacks x86_64-w64-mingw32-gcc; the committed ubuntu-latest release gate installs mingw-w64 and now owns that compile check.
hugo closed this issue 2026-08-18 08:16:20 +00:00
Sign in to join this conversation.