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
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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
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
Dependencies
Depends on control plane and observability. Feature-specific panels consume their stable APIs; the TUI must not import private runtime state.
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.