- TUI-RUNTIME228
- Requirementsall slices in all specs228
- Requirements not donenot VERIFIED178
- Specs not donewhole specs only1
Each spec shows its requirement count. Panel J lists every record.
Requirements (228)
Specs (1)
Each bar shows one state against all records of the same kind.
Percentages count current rows. Done means VERIFIED.
| State | Definition |
|---|---|
| SPECIFIED | The requirement is written. No code for it is on the default branch. |
| LANDED | A commit that carries its ID in a Spec trailer is on the default branch. |
| VERIFIED | It is LANDED and a test bound to its ID exists. |
A spec state is the lowest state of its rows. Done means VERIFIED.
Invalid state: 0
| Spec / title | Req. | Landed | Done | Spec state | Code references |
|---|---|---|---|---|---|
| TUI-RUNTIMETUI-RUNTIME — Terminal Arbora operation client | 228 | 107/228 | 50 | SPECIFIED | shared spec standard documentation: external declaration; not verified .config/repo-layout.toml implementation: file exists; coverage not verified .specify/memory/constitution.md documentation: file exists; coverage not verified docs/development.md documentation: file exists; coverage not verified native/agent-terminal-ui/src/coding_approval.rs implementation: file exists; coverage not verified native/agent-terminal-ui/src/main.rs:459 implementation: file exists; coverage not verified native/agent-terminal-ui/src/presentation.rs implementation: file exists; coverage not verified native/agent-terminal-ui/src/run_inspector.rs implementation: file exists; coverage not verified native/agent-terminal-ui/tests/coding_approval.rs test: file exists; coverage not verified native/agent-terminal-ui/tests/run_inspector.rs test: file exists; coverage not verified ../../agent_terminal_ui/client.py:520 implementation: missing source ../../agent_terminal_ui/client.py:587 implementation: missing source ../../agent_terminal_ui/client.py:597 implementation: missing source ../../agent_terminal_ui/headless.py:163 implementation: missing source ../../agent_terminal_ui/terminal_ui.py:10 implementation: missing source `requirements.md` documentation: file exists; coverage not verified `status.json` implementation: file exists; coverage not verified |
Landed counts LANDED and VERIFIED requirements. Done counts VERIFIED requirements only.
The spec state comes from the spec status file only.
Packages group specs by repository and declared component. Unassigned means no component was declared. Code links do not prove coverage. Mermaid source.
Knuckles-Team/tuig / Terminal task view (1)
TUI-RUNTIME: source plan diagrams (Mermaid)
sequenceDiagram
participant C as Terminal CLI
participant T as Existing AgentClient
participant G as Arbora A2A authority
participant B as Governed tool backend
C->>T: Validated one-shot request
T->>G: message/send with fixed idempotency key
G->>G: Bind task and validate authority
G->>B: Admitted tool effect
G-->>T: Task identity and ordered events
T-->>C: Lifecycle, output and termination
C->>T: Cancel selected task
T->>G: tasks/cancel
G-->>C: Cancellation acknowledgement through client
Depends on means a declared prerequisite. Extends and references do not imply prerequisite order. Shared code never creates dependencies. External targets are source declarations, not verified delivery.
Knuckles-Team/tuig / Terminal task view
| Spec | Relationship | Target | Evidence |
|---|---|---|---|
| TUI-RUNTIME Unparsed reference declaration: <https://agentclientprotocol.com/protocol/v1/initialization>,; source: specs/terminal-runtime/plan.md Unparsed reference declaration: none; no paper is cited.; source: specs/terminal-runtime/plan.md | depends on | Arbora A2A | Knuckles-Team/arbora: external declaration; not verified; source: specs/terminal-runtime/plan.md |
| TUI-RUNTIME Unparsed reference declaration: <https://agentclientprotocol.com/protocol/v1/initialization>,; source: specs/terminal-runtime/plan.md Unparsed reference declaration: none; no paper is cited.; source: specs/terminal-runtime/plan.md | depends on | Execution projections | Knuckles-Team/arbora: external declaration; not verified; source: specs/terminal-runtime/plan.md |
| TUI-RUNTIME Unparsed reference declaration: <https://agentclientprotocol.com/protocol/v1/initialization>,; source: specs/terminal-runtime/plan.md Unparsed reference declaration: none; no paper is cited.; source: specs/terminal-runtime/plan.md | depends on | Served child controls | Knuckles-Team/arbora: external declaration; not verified; source: specs/terminal-runtime/plan.md |
| TUI-RUNTIME Unparsed reference declaration: <https://agentclientprotocol.com/protocol/v1/initialization>,; source: specs/terminal-runtime/plan.md Unparsed reference declaration: none; no paper is cited.; source: specs/terminal-runtime/plan.md | depends on | TUI-RUNTIME-R001.2 | Knuckles-Team/tuig: local spec declaration; source: specs/terminal-runtime/plan.md |
| TUI-RUNTIME Unparsed reference declaration: <https://agentclientprotocol.com/protocol/v1/initialization>,; source: specs/terminal-runtime/plan.md Unparsed reference declaration: none; no paper is cited.; source: specs/terminal-runtime/plan.md | depends on | TUI-RUNTIME-R001.3 | Knuckles-Team/tuig: local spec declaration; source: specs/terminal-runtime/plan.md |
| TUI-RUNTIME Unparsed reference declaration: <https://agentclientprotocol.com/protocol/v1/initialization>,; source: specs/terminal-runtime/plan.md Unparsed reference declaration: none; no paper is cited.; source: specs/terminal-runtime/plan.md | depends on | TUI-RUNTIME-R001.5 | Knuckles-Team/tuig: local spec declaration; source: specs/terminal-runtime/plan.md |
Issues
0 open at capture.
Pull Requests
1 open at capture.
- #162 docs: preserve incomplete terminal edit-and-fork specifications updated 2026-10-25T06:18:16Z
The build reads GitHub one time. This page makes no live API requests.
Each status file gives one spec row. Each requirement gives one more row. A record without a valid state shows INVALID. Expand a Definition to read the canonical requirement and verification text.
All documented records (229 rows)
| ID / source | Kind | Parent | State | Commit / test evidence |
|---|---|---|---|---|
| TUI-RUNTIME TUI-RUNTIME — Terminal Arbora operation client | spec | None | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R001 Terminal operation client issues typed commands with pending approvals Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Terminal operation client issues typed commands with pending approvals.** Tuig's client and commands modules validate an operation ID and JSON input against the installed generated Arbora registry before invoking it, and surface an A2A approval exchange as pending rather than granting it locally; approval actions stay unavailable until the corresponding Arbora contract is proven end to end. | Command and client tests confirm invalid operations are rejected. Negative approval tests confirm pending approvals are never silently granted. | requirement | TUI-RUNTIME | SPECIFIED | d2b5cea055c8 |
| TUI-RUNTIME-R001.1 Known op and object params produce one versioned request with correct envelope Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Known op and object params produce one versioned request with correct envelope.** Child slice of `TUI-RUNTIME-R001` (see tasks.md). | Unit command parser plus httpx.MockTransport. Installed generated registry artifact. Known op and object params produce one versioned request with correct envelope. Empty IDs, malformed JSON, arrays, unknown operations, absent registry files and digest mismatches make zero effect requests. Malformed JSON includes nested NaN and Infinity constants. Command whitespace separates the operation ID from the unchanged JSON payload | requirement | TUI-RUNTIME | LANDED | 1ccb208dd9d9 d309979d133f |
| TUI-RUNTIME-R001.2 Verified caller header reaches remote Arbora only over TLS Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Verified caller header reaches remote Arbora only over TLS.** Child slice of `TUI-RUNTIME-R001` (see tasks.md). | Client transport with loopback and remote URLs, fake bearer. Verified caller header reaches remote Arbora only over TLS. Remote HTTP, absent/invalid bearer, credential in exception/log/snapshot all fail | requirement | TUI-RUNTIME | LANDED | d309979d133f e90084eba29c |
| TUI-RUNTIME-R001.3 One /confirm resumes exactly the issued plan Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**One /confirm resumes exactly the issued plan.** Child slice of `TUI-RUNTIME-R001` (see tasks.md). | A2A fake server that issues a PLAN with binding and expiry. One /confirm resumes exactly the issued plan. Tampered op/input/digest/subject, expired plan and replay are rejected before any effect. Server also rejects stale lease | requirement | TUI-RUNTIME | LANDED | d309979d133f |
| TUI-RUNTIME-R001.4 Typed success renders and chat remains functional Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Typed success renders and chat remains functional.** Child slice of `TUI-RUNTIME-R001` (see tasks.md). | Mock error envelope, timeout, disconnect and malformed JSON. Typed success renders and chat remains functional. Every failure renders an error, leaves session usable and never reports success | requirement | TUI-RUNTIME | LANDED | 00fa879f55f8 d309979d133f |
| TUI-RUNTIME-R001.5 Pending request is displayed. No effect is asserted Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Pending request is displayed. No effect is asserted.** Child slice of `TUI-RUNTIME-R001` (see tasks.md). | Pending A2A task with input-required and approval metadata. Pending request is displayed. No effect is asserted. Approvals., fleet grant, missing signed exchange and wrong pending-call binding are refused. Enabling approval requires separate served receipt | requirement | TUI-RUNTIME | LANDED | d309979d133f |
| TUI-RUNTIME-R001.6 Base chat works. Compatible optional install enables /op Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Base chat works. Compatible optional install enables /op.** Child slice of `TUI-RUNTIME-R001` (see tasks.md). | Clean Python 3.12 base environment and supported optional-client environment. Base chat works. Compatible optional install enables /op. No compatible client yields clear CLIENT_UNAVAILABLE and no untyped fallback | requirement | TUI-RUNTIME | LANDED | 28c8ecf1657c d309979d133f |
| TUI-RUNTIME-R001.7 Legacy screens still render or use served replacement Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Legacy screens still render or use served replacement.** Child slice of `TUI-RUNTIME-R001` (see tasks.md). | Route/import inventory plus Textual pilot tests. Legacy screens still render or use served replacement. No agent_utilities.knowledge_graph import, duplicate transport or invisible command fallback | requirement | TUI-RUNTIME | LANDED | 34233964fc2f d309979d133f |
| TUI-RUNTIME-R001.8 One-shot background tool-task command extends command/client contract with Arbora preapproval binding Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**One-shot background tool-task command extends command/client contract with Arbora preapproval binding.** Model: Preapproval_ref binds task operation, parameters and expiry. Behavior: Accept --one-shot flag; display queued, running, completed states from server; require preapproval to suppress prompt. Wiring: Extend agent_terminal_ui/client.py and CLI entry; use existing message/send and tasks/{get,cancel} operations. Refusal: Missing, expired, revoked or mismatched preapproval must not bypass permission prompt. Hot-path proof: Serve one-shot task with preapproved scope through production CLI entry point and Arbora. | Test planned `tests/test_one_shot_task_contract.py::test_served_one_shot_scope_and_lifecycle`. Preapproval binding gates permission suppression in production terminal. R002.8 defines complete one-shot specification. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002 Terminal chat transport is reconciled with the current Arbora boundary Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Terminal chat transport is reconciled with the current Arbora boundary.** Tuig uses one canonical transport for its primary Arbora conversation. This replaces the expected unmounted streaming and remote-procedure routes. Change the client atomically. Remove the superseded code path only after integration acceptance. | Integration tests prove session, authentication, streaming and cancellation through the chosen transport. Keep the superseded path until they pass. | requirement | TUI-RUNTIME | SPECIFIED | 2385409cff2d d2b5cea055c8 d309979d133f |
| TUI-RUNTIME-R003 Packaged development skill carries the rapid-delivery contract Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Packaged development skill carries the rapid-delivery contract.** Add `agent_terminal_ui/skills/agent-terminal-ui-development/SKILL.md`, shaped like Overstory's skill, with the five-minute lane rules. | `tests/test_skill_package.py::test_development_skill_packaged` asserts the file ships in the wheel and names the lane rules. | requirement | TUI-RUNTIME | LANDED | 1f9a26a46229 |
| TUI-RUNTIME-R004 Shared spec and repository checks Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Shared spec and repository checks.** The local config and PR CI must enforce the shared spec group. Weekly advisory must report public-surface, root-hygiene and gitignore-convergence under current shared policy. Existing blocking checks must remain intact. | R004.1 proves local stages and trailer fallback. R004.2 proves weekly coverage and blocking docs/spec-only CI. | requirement | TUI-RUNTIME | VERIFIED | 184c528c68ca 417e3a75f217 856f118d3c67 b90eb520052a tests/test_precommit_hooks.py:120 tests/test_precommit_hooks.py:19 tests/test_precommit_hooks.py:43 tests/test_precommit_hooks.py:63 tests/test_precommit_hooks.py:89 |
| TUI-RUNTIME-R004.1 Consolidate equivalent spec checks without losing stages Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Consolidate equivalent spec checks without losing stages.** Use the shared `spec` group at pre-commit, pre-push and manual stages. Retain the explicit trailer hook and its origin/main fallback for invocations without range metadata. Keep all other blocking hooks. This child does not close the remaining R004 parity requirements. | Configuration regressions check stages, the explicit trailer fallback and retained acceptance boundaries. | requirement | TUI-RUNTIME | VERIFIED | 184c528c68ca 856f118d3c67 b90eb520052a tests/test_precommit_hooks.py:120 tests/test_precommit_hooks.py:19 tests/test_precommit_hooks.py:89 |
| TUI-RUNTIME-R005 Docs layout matches Overstory Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Docs layout matches Overstory.** Add `docs/start.md`, `docs/status.md`, `docs/deployment.md` and `docs/design-system.md`, and list them in `mkdocs.yml`. | `tests/test_docs_layout.py::test_docs_pages_in_nav` asserts each file exists and appears in the nav. | requirement | TUI-RUNTIME | VERIFIED | 1f9a26a46229 tests/test_docs_layout.py:10 |
| TUI-RUNTIME-R006 Pyproject configures the pipelines hook sections Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Pyproject configures the pipelines hook sections.** Add `[tool.pipelines_hooks.public_surface]` and `[tool.pipelines_hooks.ste]` with `specs` in `paths` to `pyproject.toml`. | `tests/test_precommit_hooks.py::test_pipelines_hook_sections` parses `pyproject.toml` and asserts both sections. | requirement | TUI-RUNTIME | VERIFIED | 1f9a26a46229 tests/test_precommit_hooks.py:11 |
| TUI-RUNTIME-R007 Release workflow caller matches Overstory Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Release workflow caller matches Overstory.** Add `.github/workflows/release.yml` calling the shared pipelines release workflow at `main`. | `tests/test_docs_layout.py::test_release_workflow_calls_pipelines` asserts the `uses:` line. | requirement | TUI-RUNTIME | VERIFIED | 48e36e1fb4c1 4ba2da4eafce 4d11e1e96290 ab946be70cba tests/test_docs_layout.py:30 |
| TUI-RUNTIME-R008 Terminal theme tokens and accessibility are a stated contract Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Terminal theme tokens and accessibility are a stated contract.** The production Rust/Ratatui presentation selects a native theme by name. State the token set, contrast floor and a no-colour fallback, as the design-system area in Overstory does. | Native presentation and renderer tests check the default theme, no-color fallback and bounded resize behavior. Full presentation acceptance remains open. | requirement | TUI-RUNTIME | SPECIFIED | 070e15682e71 19a5072aed8e 597a48b97843 877a834e65e3 d9be071196d3 |
| TUI-RUNTIME-R008.1 Native discovery presentation remains readable after resize Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native discovery presentation remains readable after resize.** The production Ratatui renderer wraps status and help at a 40-column viewport. Its startup palette defaults to Tokyo Night; unsupported AGENT_THEME values fall back to that palette. A nonempty NO_COLOR selects terminal foreground and background. Resize redraws preserve status and keyboard help. | Native buffer tests resize the same terminal and verify complete status and available keys. They check NO_COLOR and unknown-theme fallback. This child does not close full keyboard, theme or performance parity. | requirement | TUI-RUNTIME | VERIFIED | 99b67585d433 native/agent-terminal-ui/src/main.rs:1219 native/agent-terminal-ui/src/main.rs:1256 |
| TUI-RUNTIME-R008.2 Complete native presentation parity Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Complete native presentation parity.** Preserve the full token set, contrast floor, keyboard navigation, no-color and reduced-motion behavior. Preserve selection and scroll position. Keep R008 pending until that parity is proven. R008.1 covers only the discovery view. | Execute production native terminal journeys against the declared presentation fixtures. Check all supported themes, keyboard actions, selection, scrolling and reduced motion. Measure responsive rendering with the R002 performance procedure. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R009 AGENTS.md sections match Overstory Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**AGENTS.md sections match Overstory.** Add `Commands`, `Quality gates`, `Branching & isolation` and `Documentation` headings to `AGENTS.md`. | `tests/test_docs_layout.py::test_agents_md_headings` asserts the headings. | requirement | TUI-RUNTIME | VERIFIED | 1f9a26a46229 tests/test_docs_layout.py:18 |
| TUI-RUNTIME-R010 Run harness surface is read-only and honest Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Run harness surface is read-only and honest.** The Tuig client must display a run's current plan, context use against budget, applied harness configuration, cost and termination reason. The client reads only arbora operations. | Children TUI-RUNTIME-R010.1 through TUI-RUNTIME-R010.14. Existing run fields and served proof remain required. | requirement | TUI-RUNTIME | SPECIFIED | 2fc78b464855 342fe3295687 769033f0eac3 c35cb5a545cf tests/test_native_execution_graph_contract.py:33 |
| TUI-RUNTIME-R010.1 Run operation wiring Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Run operation wiring.** Model: `ARBORA-OPS-R021.4.5` serves the summary; `.4` serves separately labelled aggregates; `.6` supplies registration. Behavior: The view must select one `run_id` through the existing client transport. Wiring: the production path in plan.md must reach this field. Refusal: Absent registration, timeout or denial must display unavailable without direct engine calls. | Evidence: planned `tests/test_run_inspector_contract.py::test_run_read_uses_arbora_operations`. A selected run must render through the served operation and existing client. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R010.2 Applied configuration Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Applied configuration.** Model: `ARBORA-OPS-R021.4.5` projects the decision edge owned by `EG-ORCH-VOCAB-R009.9`. Behavior: The view must display the recorded configuration reference and available `context_policy`, `plan_scaffold` and `action_space`. Wiring: the production path in plan.md must reach this field. Refusal: Missing or inaccessible configuration must not use defaults or the latest configuration. | Evidence: planned `tests/test_run_inspector_contract.py::test_harness_config_shown`. A committed configuration must retain its reference and values through the client. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R010.3 Context and cost Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Context and cost.** Model: `ARBORA-OPS-R021.4.5` maps `.2`, `.3` and `.8` of `EG-ORCH-VOCAB-R009`. Behavior: The view must label peak tokens, budget tokens and per-run USD cost separately. Wiring: the production path in plan.md must reach this field. Refusal: Null values must display unavailable; zero-solved abstention must not render zero cost. | Evidence: planned `tests/test_run_inspector_contract.py::test_context_and_cost_shown`. Measured zero must render as zero; aggregate cost must retain its solved-task label. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R010.4 Read-only current plan Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Read-only current plan.** Model: `ARBORA-OPS-R021.4.5` defines the snapshot boundary; `AU-HARNESS-R014` still lacks the required public export. Behavior: The view must display only an available authorized snapshot from `runs.get.current_plan`. Wiring: the production path in plan.md must reach this field. Refusal: Expired, wrong-run, regressing or unavailable snapshots must reveal no items or edit controls. | Evidence: planned `tests/test_run_inspector_contract.py::test_plan_read_only`. A fresh matching snapshot must preserve item order, revision and AU statuses. | requirement | TUI-RUNTIME | SPECIFIED | native/agent-terminal-ui/src/run_inspector_client.rs:445 native/agent-terminal-ui/src/run_inspector_client.rs:609 |
| TUI-RUNTIME-R010.5 Distinct terminal reasons Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Distinct terminal reasons.** Model: `ARBORA-OPS-R021.4.5` maps `EG-ORCH-VOCAB-R009.1`. Behavior: The view must map each recorded terminal reason to a distinct label. Wiring: the production path in plan.md must reach this field. Refusal: Unknown or missing reasons must display unavailable; overflow and stuck must not collapse to generic failure. | Evidence: planned `tests/test_run_inspector_contract.py::test_termination_reasons_distinct`. Each of final_answer, context_overflow, stuck, step_budget and error must have its own label. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R010.6 Served surface proof Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Served surface proof.** Model: `ARBORA-OPS-R021.4.6` supplies registration and generated-client parity. Behavior: The test must enter the production UI and observe all fields through the real client and served operation. Wiring: the production path in plan.md must reach this field. Refusal: Denied reads after success must clear prior protected values; the UI must stay responsive without fabricated data. | Evidence: planned `tests/test_run_inspector_contract.py::test_run_surface_end_to_end`. A served fixture must render summary, configuration, context, cost and an available plan. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.1 Preserve original chat transport acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Preserve original chat transport acceptance.** Model: The terminal uses one canonical transport for its primary Arbora conversation. This replaces its expected unmounted streaming and remote-procedure routes. Behavior: The client changes atomically to the chosen transport. The operator-directed hard cut removes the Python runtime while retaining all original native integration acceptance. Wiring: Extend the existing client and session entry. Refusal: Missing native capability fails closed; do not restore a Python fallback. Evidence: Serve session, authentication, streaming and cancellation cases. | Integration tests cover session, authentication, streaming and cancellation against the chosen transport. Native cutover does not establish those tests have passed. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.2 Validate the host receipt and scope Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Validate the host receipt and scope.** Model: The v1 HostLaunchReceipt binds host, mode, endpoint, session, workspace, readiness and opaque log reference. The server binds reads to tenant, principal, host, workspace, generation and expiry. R010.7 defines HostLaunchRequest.web_logs, but the current receipt contract omits it. Behavior: Arbora must bind the effective boolean into an authenticated receipt or handoff. Bind it to host, workspace, tenant and principal. The TUI validates every binding before a read. Wiring: Use Arbora contracts ARBORA-HOST-R009.2 through R009.6 and R010.7. Refusal: Missing readiness, preference or scope, an unknown version, expiry or changed binding yields zero reads. Receipt data alone grants no authority. Evidence: A matching served receipt and preference succeeds. Alter each binding independently for negative cases. | A bound preference and matching receipt permit reads. Missing or changed fields yield zero reads. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.3 Define the terminal consumer adapter Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Define the terminal consumer adapter.** Model: The TUI defines one public adapter named agent_terminal_ui.app.run_host_terminal. It takes HostLaunchReceipt, AgentClient and an optional HostLogReader. Plan.md gives the exact type signature. Behavior: Borrow the injected client and reader. Read only the receipt's opaque authorized reference. Wiring: Reuse the application, client and MainScreen path. Refusal: Missing reader, reference or producer returns unavailable and makes zero reads. Do not add a route, router, gateway or filesystem reader. Evidence: Enter through the public adapter on the served terminal path. | A valid reference reaches the reader. A missing capability makes zero reads and reads no file path. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.4 Honor producer-selected modes and unify the log view Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Honor producer-selected modes and unify the log view.** Model: Arbora selects terminal, web or both under R010.7. Child .2 defines the producer handoff prerequisite for web_logs. The TUI accepts only that bound preference. Behavior: Subscribe only in terminal or both mode when web_logs is true. A false or missing preference yields zero TUI reads while chat continues. Web mode always makes zero TUI reads. The required host redacted sink stays enabled. The /logs command and Ctrl+V use the same view. Wiring: Reuse CommandProcessor.cmd_logs, MainScreen.action_toggle_logs and RichLog. Refusal: Local input cannot override mode or preference. Unknown or unbound values return unavailable with zero reads. The TUI cannot disable the host sink. Render text literally and strip terminal controls. Evidence: Exercise all modes with enabled, disabled and absent preferences through the real selector and UI. | Terminal/both with enabled preference render one correlated record through /logs and Ctrl+V. Disabled, absent and web-mode cases make zero TUI reads. Chat continues and the host sink remains enabled. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.5 Enforce tenant scope and bound log lifecycle Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Enforce tenant scope and bound log lifecycle.** Model: HostLogBatch binds schema, scope, host, generation, tenant-local records, cursor and optional gap. Each record carries request correlation, sequence, timestamp, severity and redacted message. Behavior: Reauthorize every read and reconnect. Preserve order and report rotation gaps. Clear records and cursors after denial. Cancel the owned reader when the view closes. Wiring: Use one worker on the existing screen path. The adapter owns only subscription and view state. Refusal: Reject foreign, expired, revoked or regressing scopes and cursors. Never open a shared file, close a borrowed client or stop the host. Evidence: Observe per-tenant sequences, queue bounds, gaps, denial clearing and cancellation. Allow one read in flight and 128 records per batch. Limit each record to 16 KiB. Limit pending data to 128 records or 2 MiB. Keep 1000 rendered lines. Set one-second read and five-second cancellation timeouts. | Two tenants sharing one workspace receive only their own records and offsets. Rotation yields a gap. Denial clears state. Unmount cancels within five seconds. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.6 Prove the served consumer journey Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Prove the served consumer journey.** Model: Evidence names producer and consumer revisions, receipt version, bound web_logs preference, tenant scope and fixture seed. Behavior: Exercise terminal, web and both modes with the preference enabled and disabled on the actual Arbora host and production TUI. Keep agent interaction available. Wiring: Use the normal request path, not an isolated helper. Refusal: Mocks do not prove served behavior. Missing preference or denied workspace scope yields zero unauthorized TUI reads. Slow rendering cannot block host HTTP. Evidence: Track request IDs, sequences, gaps, read counts, render time, HTTP response and revisions. Disabled preference cannot stop the required host sink. Save no credentials or raw sensitive logs. | Seed 116117 creates two tenants with separate principals in one workspace. Each emits 128 unique request IDs. Repeat the fixture twice. Normalize timestamps. Compare per-tenant ordered IDs, sequences and gaps. Cover every mode with preference on/off, rotation, reconnect, revocation and denial. Disabled cases make zero TUI reads while chat and the host sink continue. Keep request-to-render time below two seconds. Include a live HTTP response during slow rendering. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.7 Native configured discovery Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native configured discovery.** Model: Rust reads AGENT_URL and AGENT_BEARER_TOKEN. Behavior: Fetch the Arbora Agent Card and render its name or a redacted error. Wiring: Use one authenticated HTTP client, Tokio and Ratatui. Refusal: Require TLS and credentials remotely; reject redirects, invalid cards and responses over 1 MiB. Local cancellation stops discovery only. No task submission, approval or remote cancellation is enabled. | Native HTTP fixture tests verify the request, credential transport, error refusal and cancellation. A terminal buffer test verifies the unavailable task actions. A served Arbora receipt remains separate evidence. | requirement | TUI-RUNTIME | VERIFIED | e8711e7f49bf native/agent-terminal-ui/src/main.rs:1195 native/agent-terminal-ui/tests/discovery.rs:110 native/agent-terminal-ui/tests/discovery.rs:29 native/agent-terminal-ui/tests/discovery.rs:50 native/agent-terminal-ui/tests/discovery.rs:73 |
| TUI-RUNTIME-R002.1.1 Validate native task correlation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Validate native task correlation.** Model: Keep separate server task, context and run IDs from existing A2A wire shapes. Behavior: Bind task and context from an initial task; keep its run ID explicitly optional. Validate later task, status and text artifact events against that binding. An omitted later run ID preserves the established value. A newly supplied run requires a matching initial binding. Wiring: Export a native model for the future transport consumer; do not enable submission or streaming without producer proof. Refusal: Reject missing task/context IDs, malformed present run IDs, mismatched IDs, malformed data and unsupported event kinds. Keep the binding unchanged. Never infer a run ID from the task ID. | Native bound tests cover valid events and each refusal. Python and Rust consume the same public wire fixture. Served streaming acceptance remains under R002.1. | requirement | TUI-RUNTIME | VERIFIED | 3c592ffc6075 native/agent-terminal-ui/tests/correlation.rs:11 native/agent-terminal-ui/tests/correlation.rs:41 native/agent-terminal-ui/tests/correlation.rs:53 native/agent-terminal-ui/tests/correlation.rs:87 |
| TUI-RUNTIME-R002.1.2 Read a native task snapshot Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Read a native task snapshot.** Model: Reuse the task correlation model and authenticated Arbora client. Behavior: Issue one read-only JSON-RPC tasks/get request to /a2a for a supplied task ID. Return validated correlation and state. Wiring: Expose ArboraClient.get_task for the native UI. Refusal: Reject invalid IDs, HTTP errors, redirects, JSON-RPC errors, mismatched envelope or task IDs and malformed tasks. Reject responses over 1 MiB. Redact errors. Preserve an absent run ID. Do not retry or enable effects, streaming or cancellation. | Native HTTP regression tests verify the exact request and credential, valid snapshots, optional run IDs and each refusal. | requirement | TUI-RUNTIME | VERIFIED | 3c592ffc6075 native/agent-terminal-ui/tests/task_snapshot.rs:118 native/agent-terminal-ui/tests/task_snapshot.rs:155 native/agent-terminal-ui/tests/task_snapshot.rs:180 native/agent-terminal-ui/tests/task_snapshot.rs:58 native/agent-terminal-ui/tests/task_snapshot.rs:99 |
| TUI-RUNTIME-R002.1.3 Complete served native chat transport Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Complete served native chat transport.** Preserve the full R002.1 acceptance after the model and read-only snapshot slices. Wire submission, session authentication, streaming, cancellation acknowledgement and reconnect recovery through production Arbora and the native UI. Keep the superseded transport and the incumbent coding terminal until served parity and cutover acceptance pass. | Served integration receipts exercise session, authentication, streaming, cancellation, replay and resnapshot behavior. Model and snapshot tests alone cannot close this row. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.1.3.1 Submit one native text task Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Submit one native text task.** Model: One --prompt value creates one fixed random message and idempotency identity. Behavior: Send one authenticated message/send request. Validate the server task/context/run binding. Reuse the existing snapshot and cancellation view. Wiring: Extend ArboraClient and the native entry point. Refusal: Reject invalid arguments and missing credentials before sending. Reject a prompt combined with AGENT_TASK_ID. Interrupted or malformed acknowledgement remains an unknown outcome; refresh never resubmits. Evidence: Exercise the native executable through Arbora request authentication, WorkItem admission and AU enqueue. Control final storage and queue boundaries. | Native HTTP and terminal tests prove one send, exact request fields and bound acknowledgement. Verify denied zero-admission cases and no retry after lost acknowledgement. This qualifies submission only, not durable engine or worker completion. | requirement | TUI-RUNTIME | VERIFIED | 9b0dcc67e610 native/agent-terminal-ui/src/main.rs:906 native/agent-terminal-ui/src/main.rs:931 native/agent-terminal-ui/src/main.rs:950 native/agent-terminal-ui/src/main.rs:977 native/agent-terminal-ui/tests/submission.rs:140 |
| TUI-RUNTIME-R002.1.3.2 Complete original served chat and recovery acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Complete original served chat and recovery acceptance.** Preserve every R002.1.3 criterion after the unary submission increment. Prove production session authentication and continuity, streaming, cancellation acknowledgement, replay, resnapshot and reconnect recovery through Arbora and the native UI. Keep the incumbent coding terminal and prior transports until served parity and accepted cutover. | Full served integration receipts prove every original R002.1 case and recovery behavior. A controlled submission fixture cannot close this row. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.1.4 Read an existing task in the native terminal Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Read an existing task in the native terminal.** Model: AGENT_TASK_ID selects one existing task through the authenticated unary Arbora client. Behavior: Display task, context and optional run IDs separately with the acknowledged state. Refresh the same task on r with the initial context and run binding. Keep a known run ID if a later snapshot omits it. Refuse changed bindings. Local cancellation stops only the read. Wiring: The existing Tokio and Ratatui loop calls get_task. Refusal: Empty selection makes zero reads. A failed or denied refresh replaces all prior protected values. No submission, remote cancellation or approval is enabled. | Native rendering tests cover distinct IDs and unavailable run identity. A pseudo-terminal test executes task reads through the production Arbora HTTP handlers with their upstream test authority. Production identity and tenant qualification remain separate. | requirement | TUI-RUNTIME | VERIFIED | 3c592ffc6075 native/agent-terminal-ui/src/main.rs:1116 native/agent-terminal-ui/src/main.rs:1142 native/agent-terminal-ui/src/main.rs:1158 native/agent-terminal-ui/src/main.rs:1294 native/agent-terminal-ui/src/main.rs:1348 |
| TUI-RUNTIME-R002.1.5 Acknowledge native remote cancellation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Acknowledge native remote cancellation.** Model: Bind cancellation to the accepted task, context and optional run identity. Behavior: Require explicit keyboard confirmation and issue one tasks/cancel request. Render cancellation only after a matching server response reports canceled. Wiring: Reuse the existing Arbora client and native task view. Refusal: Denial, timeout, disconnect, malformed response or changed binding cannot report cancellation. Local interruption leaves the remote outcome unknown. Refresh only reads the task to reconcile. No automatic effect retry occurs. | Native HTTP and UI tests prove confirmation, exact binding, one request and server acknowledgement. A terminal fixture enters the real Arbora HTTP handlers and production cancellation authority with a scripted work port. It tests denied and interrupted outcomes. R002.1 remains pending for full session, streaming and recovery acceptance. | requirement | TUI-RUNTIME | VERIFIED | b05266d66c30 native/agent-terminal-ui/src/main.rs:1361 native/agent-terminal-ui/src/main.rs:1378 native/agent-terminal-ui/src/main.rs:1417 native/agent-terminal-ui/src/main.rs:1477 native/agent-terminal-ui/tests/cancellation.rs:119 |
| TUI-RUNTIME-R002.8 One-shot background task visibility Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**One-shot background task visibility.** The terminal must submit one governed tool task and display its lifecycle, output and termination. Only a matching Arbora preapproval may suppress its permission prompt. | All six children and the served CLI acceptance must pass. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.8.1 Model Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Model.** The terminal must accept one typed tool-task request through --one-shot with one UTF-8 JSON object read from standard input. The request must identify the registered operation, object parameters and a client-generated idempotency key. An optional preapproval_ref must reference an Arbora-issued scope receipt before task admission. Arbora must later attest its binding to the admitted task and exact pending call. The server owns task_id, context_id, run_id and admitted scope. The terminal must keep those identifiers separate. It must not derive authority from a local flag or a previous successful call. | Planned `tests/test_one_shot_task_contract.py::test_one_shot_request_and_scope_model`. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.8.2 Behavior Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Behavior.** The terminal must submit one connector operation once and observe its remote task until a terminal result or explicit detach. Read-only --observe-task TASK_ID must reattach without submission or approval. Each observation must authenticate the caller again. Display queued, running, input-required, completed, failed and cancelled states only from server evidence. Display ordered output, sequence gaps, terminal reason and task/context/run identifiers. A cancellation request stays pending until server acknowledgement. Reconnect must observe the original task without submitting another effect. Missing output must display unavailable, never an empty successful result. | Planned `tests/test_one_shot_task_contract.py::test_one_shot_lifecycle_and_output`. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.8.3 Wiring Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Wiring.** Extend the CLI entry point at `agent_terminal_ui/terminal_ui.py:10`. Add typed message/send support to the existing AgentClient transport beside `agent_terminal_ui/client.py:520`. Its current stream method accepts text only. Reuse get_task at client.py:597, cancel_task at client.py:587 and the existing resubscribe path. Submit through Arbora message/send; observe through tasks/get and tasks/resubscribe; cancel through tasks/cancel. Use the existing headless renderer or terminal view, with the same normalized task events. The Arbora typed tool-task payload and preapproval projection are producer prerequisites in plan.md. No local tool executor or second transport may replace them. | Planned `tests/test_one_shot_task_contract.py::test_one_shot_uses_existing_task_transport`. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.8.4 Refusal Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Refusal.** The terminal must skip a permission prompt only after Arbora attests a matching, current preapproval for the exact pending effect. The initial scope receipt binds caller, tenant, workspace, operation, parameter digest, policy revision, registry digest and expiry. Arbora must bind that receipt to the admitted task and pending call before attesting prompt suppression. Missing, expired, revoked, foreign or changed bindings must never bypass approval. Display input-required without granting it locally. Console-only actions retain their required step-up. Unsupported producer contracts must refuse before submission. An uncertain launch must remain indeterminate and must not retry an effect automatically. The --override flag must not grant this mode authority. | Planned `tests/test_one_shot_task_contract.py::test_one_shot_preapproval_refusal`. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.8.5 Evidence Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Evidence.** Record client/server revisions, schema version, idempotency key, opaque task/context/run IDs, event resume position and terminal outcome. Include request count, backend effect count and the server admission receipt reference. Record missing or regressing fields as unavailable. Exclude credentials, receipt secrets and raw sensitive parameters. A reconnect must preserve identifiers and display an explicit output gap when replay is unavailable. | Planned `tests/test_one_shot_task_contract.py::test_one_shot_evidence_and_reconnect`. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.8.6 Hot-path proof Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Hot-path proof.** Planned `tests/test_one_shot_task_contract.py::test_served_one_shot_scope_and_lifecycle` must enter the production CLI entry point. Use a running Arbora server and controlled connector backend with the existing task transport and renderer. A matching admitted scope must launch one task, expose ordered output and display its terminal reason. Missing, expired, revoked and mismatched preapproval must cause zero unapproved backend effects. Verify visible pending approval, cancellation acknowledgement, disconnect, duplicate events, resume-position expiry and uncertain launch. Client mocks and isolated rendering tests cannot satisfy this proof. | Planned `tests/test_one_shot_task_contract.py::test_served_one_shot_scope_and_lifecycle`. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R011.14 Explicit local ACP text transport Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Explicit local ACP text transport.** Keep central Arbora A2A and HTTP as default. The sole `tuig` executable may spawn the internal `arbora-acp` backend through `--local-runtime --local-model PROVIDER:MODEL`, with optional `--prompt TEXT`; `--headless --prompt TEXT` retains one-shot execution. Interactive sessions permit bounded sequential text turns only after acknowledged completion or cancellation. Use stable ACP v1 initialization, empty client capabilities, a new session at the canonical current directory, text prompt updates and cancellation. The backend owns models, authority and history. No frontend agent loop, shell expansion, automatic fallback, tool grants or durable resume. Bound frames, request time and cancellation cleanup; reject foreign session updates and response IDs. Close or kill and reap the owned child on every outcome. | Native scripted transport tests and CLI refusal tests. Actual terminal and installed-candidate tests must prove sequential history, cancellation exclusion, backpressure and cleanup. Released Arbora/AU pairing, host capabilities and durable history remain separate and are not satisfied by fixtures. | requirement | TUI-RUNTIME | VERIFIED | 2a40ec05a7f1 57e292b1ab66 d0eaeb9b1e86 d612c5f8703d native/agent-terminal-ui/src/composer.rs:118 native/agent-terminal-ui/src/local_runtime.rs:251 native/agent-terminal-ui/src/local_runtime.rs:270 native/agent-terminal-ui/src/local_session.rs:404 native/agent-terminal-ui/src/local_session.rs:421 |
| TUI-RUNTIME-R011 Coding session in the local workspace Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Coding session in the local workspace.** When run in a directory, the terminal client must open a coding session rooted there. It must serve the agent's file and terminal requests as client capabilities. Each write displays a diff first. Each run displays its command first. Containment, approval, streamed output and resume apply. It replaces `opencode.json` as the local entry point. | Children `TUI-RUNTIME-R011.1` to `TUI-RUNTIME-R011.14`. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R011.1 Model Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Model.** Define `CodingSessionView` beside `CodingApprovalState` in `native/agent-terminal-ui/src/coding_approval.rs`. It holds workspace root, granted client capabilities, pending request and session ID. Capabilities form a closed set: `fs/read_text_file`, `fs/write_text_file`, `terminal/create`, `terminal/output`, `terminal/wait_for_exit`, `terminal/kill`. The view receives admission and permission decisions from `ARBORA-ACP`; it holds no policy of its own. | Planned `native/agent-terminal-ui/tests/coding_session.rs::test_session_model_closed_capability_set`. Unknown methods must map to a typed refusal. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R011.2 Behavior Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Behavior.** The terminal must serve each client-capability request on the person's host. It must answer `fs/read_text_file` without a prompt inside the root. Add named Rust capability handlers beside the existing native ACP transport. Bind each handler to producer-granted scope; no local policy bypass may grant authority. | Planned `native/agent-terminal-ui/tests/coding_session.rs::test_capability_handlers_serve_local_host`. A read inside the root must return file text and prompt zero times. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R011.3 Behavior Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Behavior.** Path containment: the terminal must resolve every path with symlinks and refuse any path outside the workspace root. Add a Rust containment check before any host capability effect. No trust-mode bypass may skip that check. | Planned `native/agent-terminal-ui/tests/coding_session.rs::test_path_containment_refuses_escape`. Parent segments, absolute paths and symlinks leaving the root must be refused with zero bytes read or written. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R011.4 Behavior Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Behavior.** The terminal must show a unified diff before sending each `fs/write_text_file` result. The diff compares old and new text. It must write only after approval. Reuse `ApprovalPreview` in `native/agent-terminal-ui/src/coding_approval.rs`. Production view attachment and effects remain planned. | Planned `native/agent-terminal-ui/tests/coding_session.rs::test_write_shows_diff_then_applies_on_approval`. A denied write must leave the file bytes unchanged. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R011.5 Behavior Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Behavior.** Command before run: the terminal must display the full command line, working directory and danger level before each `terminal/create`. It must run the command only after approval. Reuse the native `ApprovalPreview` command presentation. Arbora supplies the admission and danger context; the view must not invent authority. | Planned `native/agent-terminal-ui/tests/coding_session.rs::test_command_displayed_before_run`. A denied command must spawn zero processes. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R011.6 Behavior Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Behavior.** Streamed output: the terminal must stream process output through `terminal/output` in order. Each request has a byte limit and a typed truncation marker. It must support `terminal/wait_for_exit` and `terminal/kill`. Output must render during the run. | Planned `native/agent-terminal-ui/tests/coding_session.rs::test_terminal_output_streams_in_order`. Output above the limit must carry the truncation marker and kill must end the process. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R011.7 Behavior Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Behavior.** Resume: the terminal must persist the session ID, workspace root and pending request. A restarted client must reattach to the same session. Add native resume state only after the producer exposes durable session support. Pending approvals must reappear unanswered. Resume must grant none. Offer rollback only through a producer-authorized workspace operation. | Planned `native/agent-terminal-ui/tests/coding_session.rs::test_resume_reattaches_without_granting`. A resumed session must display the same pending write and apply no change before approval. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R011.8 Wiring Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Wiring.** Attach the capability handlers where the client receives requests the agent sends. Extend `native/agent-terminal-ui/src/acp.rs` and attach `CodingApprovalState` to the Ratatui view in `src/main.rs`. R011.14 deliberately refuses host requests; it does not fulfill this attachment. | Planned `native/agent-terminal-ui/tests/coding_session.rs::test_requests_reach_view_from_client_stream`. A request in the stream must reach `CodingSessionView` once. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R011.9 Wiring Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Wiring.** Replace `opencode.json` as the local entry point. Add a workspace-root argument to the sole `tuig` executable in `native/agent-terminal-ui/src/main.rs`, defaulting to the current directory. The command opens the session with that root. The model is reached only through the harness and Arbora. Remove `opencode.json` once the proof passes. | Planned `native/agent-terminal-ui/tests/coding_session.rs::test_entry_point_opens_session_at_cwd`. Running in a temporary directory must send that root at `session/new`. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R011.10 Refusal Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Refusal.** The terminal must refuse with a typed reason: `PATH_OUTSIDE_ROOT`, `CAPABILITY_NOT_GRANTED`, `APPROVAL_DENIED`, `ROOT_NOT_TRUSTED`, `GATEWAY_UNAVAILABLE`. An untrusted root must open no session and answer no request. Each refusal must reach the gateway as a JSON-RPC error and never as success. | Planned `native/agent-terminal-ui/tests/coding_session.rs::test_typed_refusals_reach_gateway`. Each reason must produce one error response and zero host effects. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R011.11 Evidence Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Evidence.** The terminal must record, per request, the session ID, method, resolved path or command digest, decision and who decided. It must display the same record on screen. It must not log file bodies, environment values or credentials. Reuse native `DecisionRecord` metadata; any snapshot reference must come from the admitted host operation. | Planned `native/agent-terminal-ui/tests/coding_session.rs::test_evidence_record_has_no_secrets`. The record must carry the decision and omit file content. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R011.12 Hot-path proof Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Hot-path proof.** Entry point: the compiled `tuig` binary, run through a PTY in a temporary directory against a controlled gateway. The fake sends a write request. The view displays the diff and the test approves. The file changes only inside the root. A path outside the root must be refused. | Planned `native/agent-terminal-ui/tests/coding_session.rs::test_headless_coding_session_write_and_containment`. The test must observe the diff, the approved write and the refusal. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R010.7 Native inspector state boundary Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native inspector state boundary.** Export the normalized read-only view from the Rust library. Distinguish zero from unavailable and preserve recorded configuration. Label terminal reasons separately. Clear protected values after failed reads or run changes. Admit plan items only through an injected producer validator; reject foreign, expired or invalid plans. Preserve item order and AU statuses. This child excludes transport, production view attachment and served acceptance in R010.1 through R010.6. | Public-library tests render Ratatui buffers and exercise refusal, expiry and missing-validator cases. No backend calls or plan edits occur. | requirement | TUI-RUNTIME | VERIFIED | a1266fbea3b7 native/agent-terminal-ui/tests/run_inspector.rs:101 native/agent-terminal-ui/tests/run_inspector.rs:114 native/agent-terminal-ui/tests/run_inspector.rs:134 native/agent-terminal-ui/tests/run_inspector.rs:160 native/agent-terminal-ui/tests/run_inspector.rs:178 |
| TUI-RUNTIME-R011.13 Native approval state boundary Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native approval state boundary.** Export the Rust state model with a closed capability set. Preview the full diff or command, directory and danger level. Bind explicit choices to exact request content and scope. Reject changed previews and completed request IDs. Retain unanswered requests during disconnect and reattachment. Produce only metadata records; neither choice performs a host effect. This child excludes admission, containment, durable resume, transport and production view attachment required by R011.1 through R011.12. | Public-library tests render the diff and verify exact request binding, metadata records and unanswered reconnect state. No file or process effects occur. | requirement | TUI-RUNTIME | VERIFIED | 2888e02e301b e369a91d7d94 native/agent-terminal-ui/tests/coding_approval.rs:127 native/agent-terminal-ui/tests/coding_approval.rs:151 native/agent-terminal-ui/tests/coding_approval.rs:187 native/agent-terminal-ui/tests/coding_approval.rs:208 native/agent-terminal-ui/tests/coding_approval.rs:256 |
| TUI-RUNTIME-R008.2.1 Native baseline palettes Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native baseline palettes.** Support Tokyo Night, Nord, Gruvbox and Textual Light base colors. Require 4.5:1 text contrast. Nonempty NO_COLOR resets both colors. Keep rendering static. | Native buffer tests check palette tokens, contrast, reset colors and stable frames. | requirement | TUI-RUNTIME | VERIFIED | 608e9e9d122b native/agent-terminal-ui/src/presentation.rs:166 |
| TUI-RUNTIME-R008.2.2 Native viewport navigation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native viewport navigation.** Use PageUp, PageDown, Home and End to navigate wrapped content. Preserve the requested row through refresh and resize. Clamp the displayed row to available content. | Native buffer tests check paging, resize, Unicode, short results and small viewports. | requirement | TUI-RUNTIME | VERIFIED | 4214ab26f7e8 608e9e9d122b native/agent-terminal-ui/src/main.rs:1677 native/agent-terminal-ui/src/presentation.rs:432 native/agent-terminal-ui/src/presentation.rs:483 native/agent-terminal-ui/src/presentation.rs:509 |
| TUI-RUNTIME-R008.2.3 Remaining full presentation acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Remaining full presentation acceptance.** Preserve every R008.2 acceptance criterion after the base palette and viewport slices. Prove all theme tokens, runtime switching, selection and full keyboard parity through the Python and native journeys. | Served parity and performance receipts remain required. Buffer tests alone cannot close this row. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R008.2.3.1 Python selection during startup Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Python selection during startup.** Selection clearing before the first active screen must be a no-op. Once mounted, clear the active screen selection. Do not suppress errors from that screen. Preserve the Python baseline for presentation comparison. | A regression clears selection before mount, then selects and clears actual text in the mounted app. A terminal fixture checks startup, a completed reply and clean exit. | requirement | TUI-RUNTIME | LANDED | 7d244200bb23 |
| TUI-RUNTIME-R008.2.3.2 Remaining full presentation acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Remaining full presentation acceptance.** Preserve every original R008.2 and R008.2.3 criterion after the startup repair. Retain all theme tokens, runtime switching, selection, full keyboard parity, no-color, reduced motion and scroll retention. Compare Python and native journeys through served fixtures and the R002 performance procedure. | Full served parity and release performance receipts remain required. The startup regression does not satisfy these criteria. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R008.2.3.2.1 Native runtime baseline palette switching Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native runtime baseline palette switching.** Unmodified F6 press cycles the four baseline palettes in task, inspector, log and cancellation views. Preserve scroll, pending requests and task state. Keep nonempty NO_COLOR effective. Ignore repeat, release and modified F6 events. | Production palette-handler and renderer tests prove palette order, wraparound, fallback, unchanged scroll and monochrome colors. This child excludes full served parity. | requirement | TUI-RUNTIME | VERIFIED | bd2d1aa85173 native/agent-terminal-ui/src/presentation.rs:547 native/agent-terminal-ui/src/presentation.rs:619 native/agent-terminal-ui/src/presentation.rs:668 |
| TUI-RUNTIME-R008.2.3.2.2 Remaining full presentation qualification Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Remaining full presentation qualification.** Preserve every R008.2.3.2 criterion beyond baseline palette switching: all tokens, selection, full keyboard parity, no-color, reduced motion and scroll retention. Compare Python and native served journeys and run the R002 release performance procedure. | Full served parity and release performance receipts remain required. Local palette tests cannot satisfy this child. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.1.3.2.1 Bounded native read recovery Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Bounded native read recovery.** Retry only eligible task reads with bounded delays. Preserve task, context and run bindings. Never retry effects. Stop on refusal, invalid data or cancellation. | Native recovery tests check retry limits, binding, refusal and zero effect replay. | requirement | TUI-RUNTIME | VERIFIED | 0015be4d2c8d bcf0af1e64f3 native/agent-terminal-ui/src/recovery_view_tests.rs:8 native/agent-terminal-ui/tests/recovery.rs:111 native/agent-terminal-ui/tests/recovery.rs:136 native/agent-terminal-ui/tests/recovery.rs:154 native/agent-terminal-ui/tests/recovery.rs:178 |
| TUI-RUNTIME-R002.1.3.2.2 Remaining served chat and recovery acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Remaining served chat and recovery acceptance.** Preserve every R002.1.3.2 criterion after bounded task read recovery. Prove production session continuity, streaming, replay, resnapshot and reconnect through Arbora and the native UI. Keep prior transports until cutover acceptance. | Children `TUI-RUNTIME-R002.1.3.2.2.1` through `TUI-RUNTIME-R002.1.3.2.2.3`. Full served receipts remain required. Local fixtures cannot close this row. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.1.3.2.2.1 Bounded local task stream decoder Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Bounded local task stream decoder.** Decode fragmented SSE with line and event limits. Validate JSON-RPC identity and existing task correlation before emitting data or acknowledging opaque cursors. Invalid data stops that decoder. This child excludes HTTP and production view wiring. | Native decoder tests cover line endings, UTF-8, multiline data, cursor inheritance, refusal, limits and correlation mismatch. | requirement | TUI-RUNTIME | VERIFIED | 7a284332950d native/agent-terminal-ui/tests/task_stream.rs:112 native/agent-terminal-ui/tests/task_stream.rs:136 native/agent-terminal-ui/tests/task_stream.rs:160 native/agent-terminal-ui/tests/task_stream.rs:25 native/agent-terminal-ui/tests/task_stream.rs:52 |
| TUI-RUNTIME-R002.1.3.2.2.2 Remaining served stream recovery acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Remaining served stream recovery acceptance.** Preserve all R002.1.3.2.2 criteria beyond the local decoder. Prove production session continuity, streaming, replay, resnapshot and reconnect through Arbora and the native UI. Keep prior transports until cutover acceptance. | Full served receipts remain required. Local decoder tests cannot close this row. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R010.8 Native inspector transport boundary Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native inspector transport boundary.** Read the advertised `runs.get` operation with caller credentials and a matching registry digest. Validate run identity, numeric fields and AU snapshot revision and UTC expiry. Clear invalid or expired plan content. Preserve zero and available empty plans. Production loop attachment and served acceptance remain R010.6. | Scoped native transport and decoder tests exercise registry refusal, mismatched digests, malformed snapshots and expiry. | requirement | TUI-RUNTIME | VERIFIED | 14a4f6e68157 c2e571cd0f64 native/agent-terminal-ui/src/run_inspector_client.rs:355 native/agent-terminal-ui/src/run_inspector_client.rs:393 native/agent-terminal-ui/src/run_inspector_client.rs:426 native/agent-terminal-ui/src/run_inspector_client.rs:546 native/agent-terminal-ui/src/run_inspector_client.rs:610 |
| TUI-RUNTIME-R010.9 Bounded native inspector loop attachment Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Bounded native inspector loop attachment.** Open and refresh a read-only inspector from the validated task run binding. Keep input responsive with one asynchronous read. Clear protected values on task failure, denial and run changes. Abort reads on local cancel, close and quit. Redraw expired plans while idle. This row does not establish full served acceptance under R010.6. | Native view tests cover selection, refusal, local cancellation, close, expiry and bounded request ownership. | requirement | TUI-RUNTIME | VERIFIED | 9c80ba88dbb9 native/agent-terminal-ui/src/inspector_view.rs:767 native/agent-terminal-ui/src/inspector_view.rs:804 native/agent-terminal-ui/src/inspector_view.rs:822 native/agent-terminal-ui/src/inspector_view.rs:866 native/agent-terminal-ui/src/inspector_view.rs:880 |
| TUI-RUNTIME-R002.9 Refuse unbound filesystem logs Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Refuse unbound filesystem logs.** The main screen never opens AGENT_LOG_FILE. Both /logs and Ctrl+V use one action. It clears old content and displays that an authenticated host reader is required. Keep chat input available and render the panel literally. This row covers refusal only; R002.2 through R002.6 retain every original served criterion. | Mounted tests observe zero pathname opens and no new client calls. Both controls display the same refusal while input remains available. | requirement | TUI-RUNTIME | LANDED | be5559a633f6 |
| TUI-RUNTIME-R002.10 Authenticated host log subscription Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Authenticated host log subscription.** Bind an injected HTTP reader to the exact receipt obtained from authenticated Arbora. Use the existing app and log panel with bounded literal rendering, cursor continuity, cancellation and clearing after denial. Preserve borrowed resources and agent input. | Mounted tests prove display, refusal, clearing and lifecycle. Producer-backed fixtures prove the HTTP adapter and real sink together. Full deployed authority, launch lifecycle and native parity remain pending. | requirement | TUI-RUNTIME | LANDED | fdee44da708a |
| TUI-RUNTIME-R002.11 Native authenticated host logs Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native authenticated host logs.** Attach a read-only bounded log view to the native event loop. Obtain opaque binding only from authenticated Arbora. Enforce server preference and expiry. Clear on denial and abort on hide and quit. Preserve task and inspector controls outside the view. | Local HTTP and terminal-view tests prove bounds, expiry, denial clearing and cancellation; deployed authority remains separate. | requirement | TUI-RUNTIME | VERIFIED | 6ad28a56b1c5 8d06ef716fc4 a96dc581da0f native/agent-terminal-ui/src/host_log_view.rs:162 native/agent-terminal-ui/src/host_log_view.rs:186 native/agent-terminal-ui/src/host_log_view.rs:210 native/agent-terminal-ui/tests/host_logs.rs:115 native/agent-terminal-ui/tests/host_logs.rs:133 |
| TUI-RUNTIME-R002.1.3.2.2.3 Bounded committed terminal point-read Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Bounded committed terminal point-read.** Request the optional committed event through tasks/get. Validate its closed shape, size, run binding and commit identity before display. Missing or unavailable data stays unavailable. Clear displayed data on failed reads. Do not infer run IDs, resume cursors or streaming support. | Native decoder, HTTP and renderer tests cover identity, refusal, legacy omission and retained bindings. Full served recovery remains R002.1.3.2.2.2. | requirement | TUI-RUNTIME | VERIFIED | faeede3c59e8 native/agent-terminal-ui/src/main.rs:1742 native/agent-terminal-ui/tests/task_snapshot.rs:195 native/agent-terminal-ui/tests/task_snapshot.rs:234 native/agent-terminal-ui/tests/task_snapshot.rs:267 native/agent-terminal-ui/tests/terminal_event.rs:110 |
| TUI-RUNTIME-R012 Daily coding-agent parity over Arbora Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Daily coding-agent parity over Arbora.** The terminal must cover daily coding-agent workflows through Arbora alone. These include live turns, model choice, conversation list and resume, served commands, attachments and usage. Coding-session file and shell effects stay under `TUI-RUNTIME-R011`. | Children `TUI-RUNTIME-R012.1` through `TUI-RUNTIME-R012.9`. Existing daily workflows remain required. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.1 Live turn rendering Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Live turn rendering.** Today the client sends a unary turn and polls `tasks/get`, because Arbora's served agent refuses streaming. It renders only the final answer, and it shows no tool call. When `ARBORA-A2A-R001.4` serves turn events, the conversation must render text deltas as they arrive. It must show each tool call with its name and arguments, then its result, in the existing tool block. Cancel must stop the turn through `tasks/cancel`. | A served streaming fixture must observe deltas, a tool block with its result and a cancelled turn in the mounted app. The unary path must remain for a card that refuses streaming. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.2 Model choice Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Model choice.** Today `/model` reads a `/models` route that Arbora does not serve, so it lists nothing and sends nothing. The model picker and `/model` must list the profiles from the `models.list` operation of `ARBORA-A2A-R016.6`. The terminal must send the chosen profile as the `arboraModelProfile` preference and display the profile the task metadata names. The terminal must not choose a model itself. | A served fixture must list profiles, send the preference, and display a profile that differs from the preference when Arbora does not honour it. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.2.1 Legacy model-read boundary regression coverage Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Legacy model-read boundary regression coverage.** Test the current AgentClient.list_configured_models path without importing the retired kernel registry. Preserve returned registry metadata without local tier routing. Missing or denied routes, malformed responses and timeouts remain unavailable after success. They differ from an empty registry and produce no stale data or alternate requests. This child qualifies legacy client behavior only, not served profile discovery or model admission. | HTTP transport fixtures enter the real client and verify metadata, authenticated GET /models and each failure after success. No kernel registry is imported. | requirement | TUI-RUNTIME | LANDED | 0025336ad1ca 1be704079a25 3ea65009beab |
| TUI-RUNTIME-R012.2.2 Preserve governed model-choice acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Preserve governed model-choice acceptance.** Retain the full R012.2 requirement: the model picker and /model list profiles through models.list from ARBORA-A2A-R016.6, send the chosen profile as arboraModelProfile, and display the profile from task metadata rather than selecting a model locally. | A served fixture lists profiles, sends the preference, and displays a different selected profile when Arbora does not honour it. Legacy HTTP fixtures and selection refusal do not satisfy this acceptance. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.3 Conversation list and resume Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Conversation list and resume.** Read-only task replies do not establish complete conversation history or model-aware continuation. `/history` and a `--continue` flag must read the caller's contexts from `tasks/list` of `ARBORA-A2A-R001.3`. They must render the selected context's history from `tasks/get` and continue it. The terminal must store no conversation of its own. | A served fixture must list two contexts and resume the older one after an application restart. Prior turns must remain visible during continuation. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.4 Commands reach only served operations Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Commands reach only served operations.** Today `/tools`, `/mcp`, `/usage`, `/skills`, `/prompts`, `/kb`, `/cron` and `/pipeline` read REST routes that Arbora does not serve, and they show HTTP 404 notices. Each command must call a served Arbora operation through the generated client. Otherwise, display one unavailable notice naming the missing operation. The connector tools listing must use `fleet.status` and the catalog the gateway serves. | The command matrix must cover every registered command with a served-operation fixture or an unavailable notice. No unserved route receives requests. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.4.1 Unavailable management commands make no requests Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Unavailable management commands make no requests.** The registered `/skills`, `/prompts`, `/kb`, `/cron` and `/pipeline` commands display one notice naming the unavailable Arbora operation family. Listing and mutation subcommands must not reach their retired REST routes. This child does not close served fleet listings, usage or the full command matrix. | Drive every subcommand through the production dispatcher with a real HTTP client. Assert one named notice and zero transport requests. Legacy config, resources and maintenance paths also refuse without an admitted adapter. | requirement | TUI-RUNTIME | LANDED | 1be704079a25 b0cc25d210bc |
| TUI-RUNTIME-R012.5 Image and file attachments Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Image and file attachments.** Complete truthful unsupported-input refusal and served bounded file-part admission in both child requirements. | Both R012.5.1 and R012.5.2 meet their acceptance criteria. Refusal alone is not image support. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.5.1 Unsupported image input refusal Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Unsupported image input refusal.** Until file-part admission is available, `/image` must state that images are unsupported. It must not read paths, change pending parts or show attachment success. The text transport must reject non-text and malformed parts instead of dropping their payload. | Command-to-submission tests prove refusal without file reads or transport, preserve existing text parts, and prove ordinary text submission still works. Legacy untyped image payloads and malformed parts make zero requests. | requirement | TUI-RUNTIME | LANDED | 4a0636949d36 |
| TUI-RUNTIME-R012.5.2 Served image and file admission Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Served image and file admission.** When `ARBORA-A2A-R001.5` accepts file parts, `/image` and pasted images must send a bounded A2A `file` part with its media type. An oversized file must be refused before any request. | A served fixture receives one PNG part. An oversized file makes zero requests. Unsupported-input refusal does not close this child. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.6 Token and cost display Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Token and cost display.** Today the status line and `/usage` read `/api/observability` routes that Arbora does not serve, so they show no tokens or cost. They must read the caller's usage through the served `usage.read` operation and label tokens and cost per turn and per session. A missing value must display unavailable, not zero. | A served fixture must render per-turn and session totals, and it must render unavailable when the operation refuses. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R010.4.1 Python current-plan view uses the served read Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Python current-plan view uses the served read.** `/run plan <run_id>` calls runs.current_plan through the generated client. Display only a matching, current UTC snapshot with a nonnegative integer revision and valid ordered items. Retain the highest accepted revision and refuse regression. Clear on refresh, refusal, invalid data and expiry; cancellation must not restore stale content. This child is consumer wiring, not live producer or native inspector acceptance. | Generated-client and mounted-screen tests cover valid/empty plans, malformed/refused/wrong-run/expired reads and expiry clearing. | requirement | TUI-RUNTIME | LANDED | 4554c7538da9 |
| TUI-RUNTIME-R012.4.2 Read fleet and usage through served operations Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Read fleet and usage through served operations.** MCP status and `/fleet [status]` use fleet.status; tool listings use fleet.catalog.list with bounded opaque pagination. Failures remain unavailable, not empty success. Tool toggling and MCP reload refuse before transport. Usage reads usage.read and labels tenant totals without inventing session or turn totals. One Escape returns from usage to the composer, including after refused reads. R012.6 remains open. | Generated-client transport and mounted usage tests cover success, refusal, malformed data and pagination. Superseded usage reads must not overwrite newer refusal or totals, even if cancellation is suppressed. | requirement | TUI-RUNTIME | LANDED | 26659005d190 6fb4244aa144 c90dc111c171 d1af8f3a226c e953bdfc7768 |
| TUI-RUNTIME-R004.2 Remaining hook parity Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Remaining hook parity.** `.github/workflows/advisory.yml` must report public-surface, root-hygiene and gitignore-convergence weekly. `.github/workflows/ci-skip.yml` must run the blocking spec group with full history and the PR base range. Existing blocking hooks must remain unchanged. | `tests/test_precommit_hooks.py::test_layout_and_surface_checks_follow_shared_advisory_policy` and `test_docs_ci_enforces_spec_checks_with_full_history_and_range` prove coverage. Shared gates must reject malformed source fixtures. | requirement | TUI-RUNTIME | VERIFIED | 417e3a75f217 tests/test_precommit_hooks.py:43 tests/test_precommit_hooks.py:63 |
| TUI-RUNTIME-R012.4.3 Complete served command matrix Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Complete served command matrix.** Qualify the full registered command matrix, including the usage command entry point, against served fixtures or explicit unavailable notices. The narrow refusal and client wiring children do not establish this complete served acceptance. | Planned full command-matrix served fixture must cover every command family and make zero unserved-route requests. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.4.3.1 Dispatcher signatures and mounted usage aliases Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Dispatcher signatures and mounted usage aliases.** Every registered handler accepts the dispatcher argument. /settings opens the existing local settings editor; changes persist and Escape restores the composer. /focus routes through the real mounted app to its screen action. It toggles the sidebar without an error or a new model turn and keeps keyboard focus in the composer. Enter submits exact registered commands without substituting longer names. Tab preserves exact names and adds argument space. Completion matches dispatcher casing and counts aliases as one canonical command. Only one matching partial command may autocomplete. Mounted /usage, /stats, /cost and /context reach only usage.read and display one unavailable notice on refusal. | Signature binding, focus dispatch and mounted HTTP transport fixtures cover success and refusal. This child does not qualify other command families or live producers. | requirement | TUI-RUNTIME | LANDED | 1be704079a25 33e68ece1844 6743e92fa6dd c5e545f7cea6 e3680d6a8cad |
| TUI-RUNTIME-R012.4.3.2 Retain complete served command acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Retain complete served command acceptance.** Preserve the full R012.4.3 requirement across every registered command family, including legacy graph, memory, history, model, fleet and management paths. | A full command-matrix served fixture must give every command a served operation or explicit unavailable notice and make zero unserved-route requests. Partial dispatcher and usage fixtures do not satisfy this acceptance. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R010.4.2 Live current-plan acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Live current-plan acceptance.** Qualify the current-plan view against a composed live harness producer with caller isolation, revision changes and expiry. Consumer fixtures alone do not complete R010.4. | Planned served fixture must render the actual current scaffold and refuse missing, stale or other-caller state without reconstruction. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.1.6 Discover unary Agent Cards Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Discover unary Agent Cards.** Python metadata and transport selection use the standard root card path. Fall back to the scoped A2A card only after HTTP 404 or 405. Preserve authentication and existing transport behavior when no card is available. | Root unary cards select message/send and render history replies. Scoped cards remain supported. Denials and malformed responses do not trigger another discovery path. | requirement | TUI-RUNTIME | LANDED | 13b66721ab49 |
| TUI-RUNTIME-R002.1.7 Refuse replay after stream acknowledgment Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Refuse replay after stream acknowledgment.** For a known unsupported-stream error, Python may use unary submission only before receiving any raw result. An empty or non-renderable result still blocks fallback. Preserve message identity and idempotency key across the permitted fallback. Authentication or permission denial never permits fallback. | Tests cover all supported refusal codes, empty acknowledgments, visible events, HTTP and RPC denial, and combined root discovery. | requirement | TUI-RUNTIME | LANDED | 3af008493f62 |
| TUI-RUNTIME-R015 The client must satisfy each source-quality child obligation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe client must satisfy each source-quality child obligation. | Every child requires its own measured acceptance evidence. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.1 Terminal functions must meet the shared function-size checks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal functions must meet the shared function-size checks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_1` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.2 The command processor must meet shared complexity and responsibility checks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe command processor must meet shared complexity and responsibility checks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_2` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.3 The client must meet shared complexity and responsibility checks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe client must meet shared complexity and responsibility checks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_3` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.4 The application event handlers must meet shared complexity checks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe application event handlers must meet shared complexity checks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_4` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.5 The skill integration tests must meet shared complexity checks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe skill integration tests must meet shared complexity checks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_5` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.6 The input widget must meet shared complexity checks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe input widget must meet shared complexity checks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_6` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.7 Terminal functions must meet the shared nesting-depth checks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal functions must meet the shared nesting-depth checks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_7` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.8 The dependency and source security scans must report no medium-severity findings. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe dependency and source security scans must report no medium-severity findings. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_8` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.9 Each terminal test must assert its observable result. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceEach terminal test must assert its observable result. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_9` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.10 Documentation examples must match the tested terminal behavior. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceDocumentation examples must match the tested terminal behavior. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_10` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.11 The README must explain the terminal purpose and installation. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe README must explain the terminal purpose and installation. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_operator_documentation.py::test_operator_installation_documentation` and counterexamples; executed locked installation receipt in test-spec.md. | requirement | TUI-RUNTIME | LANDED | 8d67aee7ffd9 |
| TUI-RUNTIME-R015.12 The README must cover each supported operator entry point. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe README must cover each supported operator entry point. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_operator_documentation.py::test_readme_operator_entry_points` and negative cases; see operator package qualification receipt. | requirement | TUI-RUNTIME | LANDED | 2f8561f36c43 89cf41d65f78 |
| TUI-RUNTIME-R015.13 The README must supply navigation for its documented sections. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe README must supply navigation for its documented sections. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_readme_navigation.py::test_readme_navigation_reaches_each_top_level_section` and counterexamples; see README navigation and architecture receipt. | requirement | TUI-RUNTIME | LANDED | 1b2bed32b207 |
| TUI-RUNTIME-R015.14 The README must supply reproducible installation instructions. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe README must supply reproducible installation instructions. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_operator_documentation.py::test_locked_install_refuses_a_checkout_without_its_lockfile` and counterexamples; executed locked installation receipt in test-spec.md. | requirement | TUI-RUNTIME | LANDED | 8d67aee7ffd9 |
| TUI-RUNTIME-R015.15 The README must explain the terminal architecture. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe README must explain the terminal architecture. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_readme_navigation.py::test_readme_explains_frontend_entry_paths_and_served_boundary` and counterexamples; see README navigation and architecture receipt. | requirement | TUI-RUNTIME | LANDED | 1b2bed32b207 |
| TUI-RUNTIME-R015.16 The README must link its detailed documentation. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe README must link its detailed documentation. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_operator_documentation.py::test_readme_links_existing_detailed_documentation` and negative cases; see operator package qualification receipt. | requirement | TUI-RUNTIME | LANDED | 2f8561f36c43 |
| TUI-RUNTIME-R015.17 The contributor guide must describe tools, commands and source structure. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe contributor guide must describe tools, commands and source structure. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_operator_documentation.py::test_contributor_guide_tools_commands_and_source_map` and counterexamples; executed locked installation receipt in test-spec.md. | requirement | TUI-RUNTIME | LANDED | 8d67aee7ffd9 |
| TUI-RUNTIME-R015.18 The repository must declare its license in a tracked license file. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe repository must declare its license in a tracked license file. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_package_metadata.py::test_declared_mit_license_is_tracked_and_linked` and negative cases; see operator package qualification receipt. | requirement | TUI-RUNTIME | LANDED | 2f8561f36c43 |
| TUI-RUNTIME-R015.19 Terminal modules must meet the shared module-size checks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal modules must meet the shared module-size checks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_19` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.20 Terminal classes must meet the shared method-count checks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal classes must meet the shared method-count checks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_20` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.21 The terminal must separate presentation from its served client adapter. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe terminal must separate presentation from its served client adapter. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_21` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.22 Terminal collaborators must use explicit dependency injection at test seams. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal collaborators must use explicit dependency injection at test seams. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_22` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.23 The terminal package must organize its public modules by responsibility. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe terminal package must organize its public modules by responsibility. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_23` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.24 The terminal must trace each declared concept to its owning implementation. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe terminal must trace each declared concept to its owning implementation. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_24` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.25 The terminal must resolve each orphaned concept reference. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe terminal must resolve each orphaned concept reference. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_25` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.26 Terminal tests must bind their owning contract identifiers. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal tests must bind their owning contract identifiers. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_26` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.27 Significant terminal functions must identify their owning contracts. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceSignificant terminal functions must identify their owning contracts. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_27` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.28 The terminal source must pass the configured lint checks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe terminal source must pass the configured lint checks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_28` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.29 The repository must validate its pinned formatter and dependency hook versions. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe repository must validate its pinned formatter and dependency hook versions. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_29` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.29.1 The two shared development guards must use their canonical pinned owners and preserve commit and push invocation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe two shared development guards must use their canonical pinned owners and preserve commit and push invocation. | `tests/test_shared_hook_consumers.py` checks exact pins and invocation flags; real hook runs must accept clean linked worktrees and refuse invalid source or lane state. | requirement | TUI-RUNTIME | VERIFIED | 0057d3c6b734 184c528c68ca c8ffb758deb2 tests/test_shared_hook_consumers.py:9 |
| TUI-RUNTIME-R015.29.2 The repository must validate all remaining pinned formatter and dependency hook versions Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe repository must validate all remaining pinned formatter and dependency hook versions. | Each remaining hook requires install and execution evidence. Shared guard consumer coverage alone cannot satisfy this obligation. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.30 The terminal CLI must supply help text for its supported arguments. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe terminal CLI must supply help text for its supported arguments. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_30` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | LANDED | 2f6d1188fb53 69072e496e9b 907f3ce97f91 e79cd23f71cc |
| TUI-RUNTIME-R015.30.1 Python CLI help and operator examples describe the current arguments without promising model selection or prior-turn loading Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourcePython CLI help and operator examples describe the current arguments without promising model selection or prior-turn loading. | Real parser help and dispatch tests cover supported flags and reject invalid observer combinations. | requirement | TUI-RUNTIME | LANDED | 2f6d1188fb53 |
| TUI-RUNTIME-R015.30.2 Native CLI -h and --help describe supported arguments and environment settings without connecting or opening a terminal. Help works even when runtime configuration is invalid. Argument values that equal --help remain values; mixed help and operation flags remain invalid. Future argument changes must update this help contract Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceNative CLI -h and --help describe supported arguments and environment settings without connecting or opening a terminal. Help works even when runtime configuration is invalid. Argument values that equal --help remain values; mixed help and operation flags remain invalid. Future argument changes must update this help contract. | Execute the native binary for both help aliases, invalid configuration, mixed flags and a prompt whose value is --help. | requirement | TUI-RUNTIME | VERIFIED | 69072e496e9b 907f3ce97f91 e79cd23f71cc native/agent-terminal-ui/tests/cli_help.rs:16 native/agent-terminal-ui/tests/cli_help.rs:51 |
| TUI-RUNTIME-R015.31 The version configuration must cover every authoritative version mirror. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe version configuration must cover every authoritative version mirror. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Partial Python bump and native consistency checks in `tests/test_package_metadata.py`; native version-configuration coverage remains open. | requirement | TUI-RUNTIME | VERIFIED | ab946be70cba tests/test_native_packaging.py:22 |
| TUI-RUNTIME-R015.32 The preserved JSON analysis must remain historical evidence, separate from authoritative version mirrors. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe preserved JSON analysis must remain historical evidence, separate from authoritative version mirrors. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_historical_analysis.py` verifies the original JSON report bytes in immutable Git history and refuses changed bytes or release-mirror registration. Full Git history is required for preservation acceptance. | requirement | TUI-RUNTIME | VERIFIED | e3eca3dd39dc tests/test_historical_analysis.py:17 tests/test_historical_analysis.py:91 tests/test_historical_analysis.py:97 |
| TUI-RUNTIME-R015.33 The preserved Markdown analysis must remain historical evidence, separate from authoritative version mirrors. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe preserved Markdown analysis must remain historical evidence, separate from authoritative version mirrors. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_historical_analysis.py` verifies the original Markdown report bytes in immutable Git history and refuses changed bytes or release-mirror registration. Full Git history is required for preservation acceptance. | requirement | TUI-RUNTIME | VERIFIED | e3eca3dd39dc tests/test_historical_analysis.py:22 tests/test_historical_analysis.py:91 tests/test_historical_analysis.py:97 |
| TUI-RUNTIME-R015.34 Terminal test modules must meet the shared file-size checks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal test modules must meet the shared file-size checks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_34` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.35 Terminal test modules must meet the shared test-count checks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal test modules must meet the shared test-count checks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_35` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.36 Terminal tests must organize unit, integration and served acceptance coverage. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal tests must organize unit, integration and served acceptance coverage. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_36` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.37 Terminal tests must supply a shared fixture entry point. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal tests must supply a shared fixture entry point. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_fixture_isolation.py` runs the production shared fixture in a child pytest process; developer sentinels stay unchanged and test state resets. | requirement | TUI-RUNTIME | LANDED | 94bb245591ea |
| TUI-RUNTIME-R015.38 Terminal tests must reuse shared fixtures for common setup. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal tests must reuse shared fixtures for common setup. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_38` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.39 Each terminal test must assert its observable result. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceEach terminal test must assert its observable result. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_39` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.40 Terminal tests must reject incorrect values through behavior-specific assertions. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal tests must reject incorrect values through behavior-specific assertions. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_40` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.41 The documentation must cover every supported terminal environment variable. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe documentation must cover every supported terminal environment variable. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_41` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | LANDED | 2f6d1188fb53 d2e3a7e63965 |
| TUI-RUNTIME-R015.41.1 Document the Python configuration and data directory overrides, including their fallback order Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceDocument the Python configuration and data directory overrides, including their fallback order. | Directory resolution tests prove explicit data precedence and the configuration-relative fallback. | requirement | TUI-RUNTIME | LANDED | 2f6d1188fb53 |
| TUI-RUNTIME-R015.41.2 Retain a complete inventory of other terminal environment inputs and dynamic setting overrides Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceRetain a complete inventory of other terminal environment inputs and dynamic setting overrides. | `tests/test_environment_inventory.py` audits Python and native source reads, rejects missing documentation and exercises every dynamic schema alias. | requirement | TUI-RUNTIME | LANDED | d2e3a7e63965 |
| TUI-RUNTIME-R015.42 The documentation must define AGENT_LOG_FILE and AGENT_THEME behavior. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe documentation must define AGENT_LOG_FILE and AGENT_THEME behavior. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_42` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | LANDED | 2f6d1188fb53 71e9ba4185f9 |
| TUI-RUNTIME-R015.42.1 Operator documentation explains startup theme fallback and refusal of unbound AGENT_LOG_FILE paths Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceOperator documentation explains startup theme fallback and refusal of unbound AGENT_LOG_FILE paths. | Documentation assertions accompany existing theme fallback and mounted log refusal tests. | requirement | TUI-RUNTIME | LANDED | 2f6d1188fb53 |
| TUI-RUNTIME-R015.42.2 Retain theme and log documentation acceptance for native and installed entry points Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceRetain theme and log documentation acceptance for native and installed entry points. | `tests/test_entry_environment_pty.py` runs both real entry points with startup themes, unknown-name fallback, no-color values and an unbound log path. An actual-open probe rejects local file access. Documentation tests reject incorrect entry-point claims. Optional artifacts must be supplied for acceptance. | requirement | TUI-RUNTIME | LANDED | 71e9ba4185f9 |
| TUI-RUNTIME-R015.43 The repository must supply a credential-free environment configuration example. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe repository must supply a credential-free environment configuration example. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Planned `tests/test_source_quality.py::test_source_quality_43` must prove the criterion and reject a counterexample. | requirement | TUI-RUNTIME | LANDED | e82e2fe60e0e |
| TUI-RUNTIME-R015.44 The client must obtain MCP configuration through the currently authorized served contract. Touches `agent_terminal_ui/client.py` Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe client must obtain MCP configuration through the currently authorized served contract. Touches `agent_terminal_ui/client.py`. | `tests/test_client_read_contracts.py` verifies get_mcp_config through authenticated fleet.status, including empty children, malformed values and refusal. Fleet status is the authorized replacement, not raw MCP configuration. | requirement | TUI-RUNTIME | LANDED | 20e00677ac4c |
| TUI-RUNTIME-R015.45 The client must list MCP tools through the currently authorized served contract. Touches `agent_terminal_ui/client.py` Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe client must list MCP tools through the currently authorized served contract. Touches `agent_terminal_ui/client.py`. | `tests/test_client_read_contracts.py` verifies list_mcp_tools through authenticated fleet.catalog.list, bounded opaque pagination and no partial success after errors. | requirement | TUI-RUNTIME | LANDED | 20e00677ac4c |
| TUI-RUNTIME-R015.46 The client must list conversation identifiers through the currently authorized served contract. Touches `agent_terminal_ui/client.py` Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe client must list conversation identifiers through the currently authorized served contract. Touches `agent_terminal_ui/client.py`. | `tests/test_client_read_contracts.py` verifies list_history_tasks returns caller contextId values through bounded tasks/list pages. This qualifies identifiers exposed by the current contract, not complete conversation enumeration, grouping, prior turns or resume. | requirement | TUI-RUNTIME | LANDED | 20e00677ac4c |
| TUI-RUNTIME-R015.47 The client must follow TUI-RUNTIME-R012.4.2 failure semantics. Authenticated empty results differ from unavailable requests. Touches `agent_terminal_ui/client.py` Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe client must follow TUI-RUNTIME-R012.4.2 failure semantics. Authenticated empty results differ from unavailable requests. Touches `agent_terminal_ui/client.py`. | `tests/test_client_read_contracts.py` distinguishes authenticated empty results from denial, unavailable envelopes, malformed values and timeouts. Reads retain active context and never fall back to retired routes. | requirement | TUI-RUNTIME | LANDED | 20e00677ac4c |
| TUI-RUNTIME-R015.48 The client changes must pass the configured lint and type hooks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe client changes must pass the configured lint and type hooks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | The recorded batch receipt must include successful configured all-file lint and type hooks. `tests/test_client_maintenance_gates.py` also exercises the same configured hooks with valid input and real error counterexamples. Contract tests alone do not establish candidate execution evidence. | requirement | TUI-RUNTIME | LANDED | eada67552847 |
| TUI-RUNTIME-R015.49 The client methods must carry type hints consistent with the existing code style. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe client methods must carry type hints consistent with the existing code style. Touches `agent_terminal_ui/`, tests or the named repository documentation. | Tests inspect production read signatures; configured type hooks must pass. Annotation presence alone is insufficient. | requirement | TUI-RUNTIME | LANDED | 20e00677ac4c |
| TUI-RUNTIME-R015.50 The client tests must prove the three methods satisfy their contract. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe client tests must prove the three methods satisfy their contract. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_client_read_contracts.py` exercises production fleet status, tool catalog and task/context reads through HTTP fixtures, including positive results and contract-specific counterexamples. | requirement | TUI-RUNTIME | LANDED | 20e00677ac4c |
| TUI-RUNTIME-R015.51 The owning client contract must record the method implementation and its acceptance evidence. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe owning client contract must record the method implementation and its acceptance evidence. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_client_maintenance_documentation.py` derives the three production method-to-operation mappings. It validates the owning table, completed command and outcome receipt, and explicit live acceptance residuals. Incorrect or missing mappings and evidence must fail. | requirement | TUI-RUNTIME | LANDED | eada67552847 |
| TUI-RUNTIME-R015.52 The repository must run available client maintenance checks. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe repository must run available client maintenance checks. Touches `agent_terminal_ui/`, tests or the named repository documentation. | The batch receipt records fresh client, mounted usage/history and maintenance checks with bounded workers. Configuration presence is not execution evidence. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.53 The terminal must resolve the remaining theme-switch regression. Alt+Shift+T cycles registered Textual themes from the main screen without changing composer text or focus. Preserve no-color mode Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe terminal must resolve the remaining theme-switch regression. Alt+Shift+T cycles registered Textual themes from the main screen without changing composer text or focus. Preserve no-color mode. | Mounted keyboard tests in `tests/test_theme_keyboard.py` exercise the complete theme cycle, wraparound, focus, input isolation and no-color mode. | requirement | TUI-RUNTIME | LANDED | 5a0e96ad3e4b |
| TUI-RUNTIME-R015.54 The terminal must assess the remaining environment-example and tool-guard obligations. Touches `agent_terminal_ui/`, tests or the named repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe terminal must assess the remaining environment-example and tool-guard obligations. Touches `agent_terminal_ui/`, tests or the named repository documentation. | `tests/test_source_quality.py::test_source_quality_54` checks the historical suggestion, current example and real client refusal against the assessment. Negative cases reject omitted scope, invented guard ownership and false completion claims. This assessment does not close served approval or coding-session acceptance. | requirement | TUI-RUNTIME | LANDED | dced7cb6d64b |
| TUI-RUNTIME-R015.55 The repository must pass project metadata, layout and public-surface checks under quality acceptance v1. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe repository must pass project metadata, layout and public-surface checks under quality acceptance v1. Touches source, tests and repository documentation. | Run project checks in the quality acceptance v1 matrix. Record the complete tracked-file scope and every finding. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.56 Terminal source must meet the shared structural limits under quality acceptance v1. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal source must meet the shared structural limits under quality acceptance v1. Touches source, tests and repository documentation. | Measure the full source and test tree against R015.1–R015.7, R015.19–R015.20 and R015.34–R015.35. A changed-file baseline does not prove acceptance. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.57 Terminal source and locked dependencies must pass actual security scans under quality acceptance v1. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal source and locked dependencies must pass actual security scans under quality acceptance v1. Touches source, tests and repository documentation. | Run source, secret and dependency scans. Retain raw reports, database dates and all severities; resolve every actionable finding. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.58 Terminal tests must measure at least 80 percent line coverage and 80 percent branch coverage under quality acceptance v1. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal tests must measure at least 80 percent line coverage and 80 percent branch coverage under quality acceptance v1. Touches source, tests and repository documentation. | Measure covered Python package lines and branches separately across the complete suite. Inventory native coverage separately; heuristic scores and test counts do not qualify. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.59 Terminal documentation and governance must satisfy R015.10–R015.18 under quality acceptance v1. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal documentation and governance must satisfy R015.10–R015.18 under quality acceptance v1. Touches source, tests and repository documentation. | Build documentation strictly, check links and examples, and run operator-documentation acceptance tests. Missing checks remain open. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.60 Terminal architecture must satisfy R015.21–R015.23 under quality acceptance v1. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal architecture must satisfy R015.21–R015.23 under quality acceptance v1. Touches source, tests and repository documentation. | Run boundary and dependency-seam tests against production imports and entry points. Record the full module responsibility map and unresolved violations. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.61 Terminal concepts and tests must satisfy R015.24–R015.27 under quality acceptance v1. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal concepts and tests must satisfy R015.24–R015.27 under quality acceptance v1. Touches source, tests and repository documentation. | Reconcile all declarations, implementation references and test bindings. Run spec and concept checks; resolve every orphan and missing binding. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.62 The complete repository must pass configured commit and push hooks under quality acceptance v1. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe complete repository must pass configured commit and push hooks under quality acceptance v1. Touches source, tests and repository documentation. | Run both all-file stages with exact configured pins. Failures, warnings, skipped hooks and unavailable dependencies prevent acceptance. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.63 Terminal tests must pass the complete Python suite and configured native checks under quality acceptance v1. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal tests must pass the complete Python suite and configured native checks under quality acceptance v1. Touches source, tests and repository documentation. | Record collection, execution and outcomes for every test. Explain skips and expected failures; missing required acceptance coverage prevents acceptance. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.64 Terminal version mirrors and locked dependencies must remain consistent under quality acceptance v1. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal version mirrors and locked dependencies must remain consistent under quality acceptance v1. Touches source, tests and repository documentation. | Run version dry-run, lock consistency and installed-version checks. Preserve historical reports outside authoritative version mirrors. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.65 Terminal tests must satisfy R015.9 and R015.34–R015.40 under quality acceptance v1. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal tests must satisfy R015.9 and R015.34–R015.40 under quality acceptance v1. Touches source, tests and repository documentation. | Check the complete test inventory, shared fixtures, structural limits and behavior-specific assertions. Exercise incorrect results; assertion counts alone do not qualify. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.66 Terminal environment documentation must satisfy R015.41–R015.43 under quality acceptance v1. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal environment documentation must satisfy R015.41–R015.43 under quality acceptance v1. Touches source, tests and repository documentation. | Reconcile all Python, native and dynamic inputs with documented defaults and examples. Run environment, theme and log refusal tests. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.67 Terminal source quality must satisfy every quality acceptance v1 domain without averaging failures. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal source quality must satisfy every quality acceptance v1 domain without averaging failures. Touches source, tests and repository documentation. | Require passing evidence for R015.55–R015.66, all 17 domain entries and the current finding inventory. Missing evidence prevents acceptance. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.68 Terminal source quality must provide separate reproducible evidence for all 17 quality acceptance v1 domains. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceTerminal source quality must provide separate reproducible evidence for all 17 quality acceptance v1 domains. Touches source, tests and repository documentation. | Use the complete domain matrix in test-spec.md. Each domain needs completed checks and explicit remaining gaps; a grade is insufficient. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.69 The repository must resolve every actionable finding in the current quality acceptance v1 inventory. Touches source, tests and repository documentation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceThe repository must resolve every actionable finding in the current quality acceptance v1 inventory. Touches source, tests and repository documentation. | Reconcile historical priorities with current scan findings by stable identifier. Require resolution evidence for each item; never infer closure from a count. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R015.70 Source-quality repairs must preserve the installed native `tuig` command through `native/agent-terminal-ui/src/main.rs` Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceSource-quality repairs must preserve the installed native `tuig` command through `native/agent-terminal-ui/src/main.rs`. | `tests/test_installed_operator_entry.py::test_source_quality_entry_wiring` executes the installed wheel outside the checkout. | requirement | TUI-RUNTIME | LANDED | 8d67aee7ffd9 |
| TUI-RUNTIME-R015.71 A served integration test must launch the installed command and observe client behavior after source-quality repairs. It must distinguish a denied request from an authenticated empty result Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification sourceA served integration test must launch the installed command and observe client behavior after source-quality repairs. It must distinguish a denied request from an authenticated empty result. | `tests/test_installed_operator_entry.py::test_installed_observer_distinguishes_denied_and_empty_reads` and negative cases; see operator package qualification receipt. | requirement | TUI-RUNTIME | LANDED | 2f8561f36c43 |
| TUI-RUNTIME-R012.3.1 Read caller task history without claiming conversation resume Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Read caller task history without claiming conversation resume.** `/history` opens a responsive loading view before its first bounded `tasks/list` read and displays the selected task through `tasks/get`. Escape must close while that first read is pending. A failed initial read stays retryable with R. R refreshes the first server page and resets pagination. A failed refresh clears old task rows and replies; R can retry the read. Closing invalidates pending refreshes, including late completions that suppress cancellation. Preserve opaque cursor and task/context identity, render only returned text artifacts, and show missing replies explicitly. Browsing changes no active conversation, submits no turn and stores no transcript. The parent remains open for ordered context summaries, prior user turns and model-history continuation. | Transport and mounted-screen tests cover two contexts, pagination, a fresh client reading persisted task output, owner refusal, unavailable replies and unchanged active context. | requirement | TUI-RUNTIME | LANDED | 0d315dab9c4c 2423325a6ff1 452ee3eae931 655161ef1a11 9dae309b58c9 |
| TUI-RUNTIME-R012.3.2 Remaining conversation resume acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Remaining conversation resume acceptance.** Preserve all R012.3 requirements: caller-context summaries from tasks/list, selected-context prior user and assistant turns from tasks/get, --continue and continuation with model history after restart. Read-only task browsing does not close this row. | A served fixture lists two contexts, resumes the older one after restart and continues with prior turns visible and available to the model; foreign contexts are refused. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R002.1.3.2.2.2.1 Bounded native unary reply display Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Bounded native unary reply display.** Display completed task text artifacts literally, with bounded text and part counts. Preserve explicit empty replies and distinguish unavailable output. Clear stale output after refresh, refusal, cancellation or changed binding. This child does not provide streaming, durable history or full served chat recovery. | Task output parser, HTTP and production renderer tests cover bounds, malformed parts, unavailable output and clearing. | requirement | TUI-RUNTIME | VERIFIED | 90fadd31b95d native/agent-terminal-ui/src/main.rs:1073 native/agent-terminal-ui/src/task_output.rs:131 native/agent-terminal-ui/src/task_output.rs:83 native/agent-terminal-ui/src/task_output.rs:98 native/agent-terminal-ui/tests/task_output.rs:21 |
| TUI-RUNTIME-R008.2.3.2.2.3 Native single-row keyboard scrolling Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native single-row keyboard scrolling.** Up and Down move one wrapped row. Clamp both ends and empty viewports, and preserve the requested row after refresh and resize. Full selection, accessibility, theme and served performance acceptance remain in the parent. | Production viewport tests check wrapped row movement, refresh restoration and boundary clamping. | requirement | TUI-RUNTIME | VERIFIED | 90fadd31b95d native/agent-terminal-ui/src/presentation.rs:367 native/agent-terminal-ui/src/presentation.rs:408 |
| TUI-RUNTIME-R012.6.1 Transient native turn usage receipt Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Transient native turn usage receipt.** Display the optional task receipt only when task, context and run match. Preserve five supplied integer counters in 0..9007199254740991. Distinguish zero from missing values. Invalid receipts remain unavailable without hiding a valid reply; a read without a receipt clears old usage. Do not derive session totals or costs. The parent still requires served usage.read turn and session cost acceptance. | Usage parser, HTTP and renderer tests cover binding, malformed counters, zero versus missing, valid reply preservation and clearing. | requirement | TUI-RUNTIME | VERIFIED | 90fadd31b95d native/agent-terminal-ui/src/main.rs:1020 native/agent-terminal-ui/src/turn_usage.rs:101 native/agent-terminal-ui/src/turn_usage.rs:125 native/agent-terminal-ui/src/turn_usage.rs:145 native/agent-terminal-ui/src/turn_usage.rs:180 |
| TUI-RUNTIME-R002.1.3.2.2.2.2 Bounded queued unary submission deadline Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Bounded queued unary submission deadline.** Default native submission timeout to 300 seconds; accept AGENT_SUBMISSION_TIMEOUT_SECONDS only as whole seconds in 1..900. Preserve shorter read and cancellation deadlines and responsive local cancellation. Interrupted or timed-out sends remain unknown and are never automatically replayed. Full served chat recovery remains in the parent. | Submission HTTP and argument tests check queue delay beyond the read deadline, configured bounds, unknown timeout and no resend. | requirement | TUI-RUNTIME | VERIFIED | 90fadd31b95d native/agent-terminal-ui/src/main.rs:1793 native/agent-terminal-ui/tests/submission.rs:232 native/agent-terminal-ui/tests/submission.rs:25 native/agent-terminal-ui/tests/submission.rs:50 native/agent-terminal-ui/tests/submission.rs:69 |
| TUI-RUNTIME-R002.1.3.2.2.2.3 Explicit committed-event read enrichment Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Explicit committed-event read enrichment.** Ordinary tasks/get omits committed-event enrichment. Only AGENT_INCLUDE_COMMITTED_EVENT=true opts in under the existing credential. Refusal must stop without downgrade or alternate retrieval. Omitted evidence remains unavailable while permitted artifacts may display. This child grants no authority and does not close served recovery. | Argument and authenticated HTTP tests check default omission, explicit opt-in, unavailable evidence and refusal without retry. | requirement | TUI-RUNTIME | VERIFIED | 90fadd31b95d native/agent-terminal-ui/src/main.rs:1821 native/agent-terminal-ui/tests/task_snapshot.rs:156 native/agent-terminal-ui/tests/task_snapshot.rs:196 native/agent-terminal-ui/tests/task_snapshot.rs:235 native/agent-terminal-ui/tests/task_snapshot.rs:59 |
| TUI-RUNTIME-R002.1.3.2.2.2.4 Remaining served stream recovery acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Remaining served stream recovery acceptance.** Preserve every R002.1.3.2.2.2 criterion beyond unary display, submission deadlines and optional enrichment. Prove production session continuity, streaming, replay, resnapshot and reconnect through Arbora and the native UI. Keep prior transports until accepted cutover. | Full served receipts remain required; local unary tests cannot close this row. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R008.2.3.2.2.4 Remaining served presentation qualification Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Remaining served presentation qualification.** Preserve every R008.2.3.2.2 criterion beyond single-row arrows: all tokens, selection, full keyboard parity, no-color, reduced motion and scroll retention. Compare Python and native served journeys and run R002 release performance acceptance. | Full served parity and release performance receipts remain required. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.6.2 Served turn and session token and cost display Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Served turn and session token and cost display.** Read caller usage through served usage.read and label tokens and cost per turn and per session. Missing or refused values display unavailable, never zero. Transient task receipts do not replace this contract. | A served fixture renders turn and session totals and unavailable values after operation refusal. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.1.1 Nonblocking Python unary turns Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Nonblocking Python unary turns.** Send one message with configuration.blocking=false. Poll the returned task with a four-hour bound. Preserve task, context and run identity. Render terminal replies and failures. Stop on refusal, timeout or local cancellation without submitting again. Remote cancellation uses the returned task ID. | Protocol tests cover pending, completed, failed, canceled, denied, mismatched and timed-out tasks. Served acceptance remains separate. | requirement | TUI-RUNTIME | LANDED | a5d2491e870f ad7aa10ab43c |
| TUI-RUNTIME-R012.1.2 Remaining live turn parity Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Remaining live turn parity.** Preserve every R012.1 criterion beyond Python unary polling. Native served polling, streaming, tool blocks and full mounted cancellation acceptance remain required. Polling is not streaming or active-crash resume. | Served Python and native journeys remain required. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.1.3 Native nonblocking unary observation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native nonblocking unary observation.** Submit once with configuration.blocking=false. Read the admitted task automatically for at most four hours, preserving task, context and run identity. Stop on terminal state, refusal or timeout. Pause reads during cancellation confirmation. Manual refresh remains available; timeout does not imply remote cancellation. | Native protocol and UI tests cover admission, terminal states, mismatched identity, timeout and confirmation. Full served streaming and crash resume remain open. | requirement | TUI-RUNTIME | VERIFIED | 8879717e48eb a93e9af66074 e79cd23f71cc native/agent-terminal-ui/src/cli.rs:38 native/agent-terminal-ui/src/composer.rs:132 native/agent-terminal-ui/src/composer.rs:149 native/agent-terminal-ui/src/headless.rs:66 native/agent-terminal-ui/src/headless.rs:90 |
| TUI-RUNTIME-R002.1.3.3 Explicit loopback anonymous native tasks Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Explicit loopback anonymous native tasks.** AGENT_AUTH_MODE=none permits ordinary task submission, reads, observation, registry-backed inspector reads and cancellation without credentials. Reject remote endpoints and any bearer in this mode. Disable proxies and redirects and pin localhost to loopback. Preserve bearer defaults, no downgrade, and authenticated host-log authority checks. | Native positive transport and zero-request refusal tests, plus separate actual EG/Arbora integration evidence. No full chat or signed identity acceptance. | requirement | TUI-RUNTIME | VERIFIED | 65d859ac8296 native/agent-terminal-ui/src/run_inspector_client.rs:577 native/agent-terminal-ui/tests/anonymous.rs:107 native/agent-terminal-ui/tests/anonymous.rs:13 native/agent-terminal-ui/tests/anonymous.rs:40 native/agent-terminal-ui/tests/anonymous.rs:84 |
| TUI-RUNTIME-R008.2.3.2.2.1 Collapsed public details in both terminals Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Collapsed public details in both terminals.** Public model summaries and execution traces have distinct labels. Both sections are collapsed initially. Keyboard and mouse activation must change only the selected fold. Preserve explicit user choice through streaming, replay and reconnect for the same run and event identity. Send both authoritative task and run IDs; opaque task identifiers must remain unchanged. Display only the public Arbora projection; private reasoning and unknown fields must not appear. Clear protected values after refusal or identity changes, including malformed context or run identifiers for an already displayed task. A refused binding must not resume reads until the exact binding is validated again. Legacy replay views must refuse this incompatible schema explicitly. | Mounted Textual and native production-handler/render tests use shared deterministic events. They cover focus, input isolation, replay, refusal, controls and unavailable summaries. This row excludes full served parity and release qualification. | requirement | TUI-RUNTIME | VERIFIED | 1947bf563007 49404376c22b 4f460e776734 native/agent-terminal-ui/src/inspector_view.rs:785 native/agent-terminal-ui/src/public_details_view.rs:451 native/agent-terminal-ui/src/public_details_view.rs:515 native/agent-terminal-ui/src/public_details_view.rs:571 native/agent-terminal-ui/src/public_details_view.rs:627 |
| TUI-RUNTIME-R008.2.3.2.2.2 Remaining full presentation qualification Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Remaining full presentation qualification.** Preserve every original R008.2.3.2.2 criterion outside the bounded public-detail slice. The two children retain keyboard and complete presentation acceptance. | Children TUI-RUNTIME-R008.2.3.2.2.2.1 and TUI-RUNTIME-R008.2.3.2.2.2.2. Both must pass. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R008.2.3.2.2.2.1 Python composer-to-fold keyboard route Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Python composer-to-fold keyboard route.** F8 switches between the conversation and composer without replacing Tab completion or Shift+Tab focus navigation. Tab reaches public fold titles; Enter and Space toggle them. Refresh retains fold state, focus and scroll. | Whole-app keyboard fixtures verify focus, fold state, event identities and scroll retention. Actual fullscreen PTY journeys qualify expansion, replay, collapse, composer return and quit in anonymous and bearer modes. | requirement | TUI-RUNTIME | LANDED | 49404376c22b |
| TUI-RUNTIME-R008.2.3.2.2.2.2 Retained complete presentation acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Retained complete presentation acceptance.** Preserve every original R008.2.3.2.2 criterion. These include complete tokens and selection, full keyboard parity, no-color and reduced motion. Retain scroll retention, served journeys and release performance. | Full served parity and release performance receipts remain required. The focused Python keyboard route cannot satisfy this row. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.1.4 Mounted tool detail updates Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Mounted tool detail updates.** A tool header is focusable and keyboard/mouse expandable. Honor the existing tool_expand setting until the user explicitly chooses a state. Determine available content after display filtering. An empty block must not record a fold choice. Later output, terminal status and duplicate call updates must not override that choice. Mount late output and update existing Markdown and literal details without duplicate widgets or lost focus. | Mounted conversation tests cover each expansion mode, late and repeated output, explicit collapse, empty output and inert header/details text. This row does not claim served live-turn transport. | requirement | TUI-RUNTIME | LANDED | 49404376c22b e59e3a013718 |
| TUI-RUNTIME-R012.4.3.3 Unavailable session and fast-mode commands Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Unavailable session and fast-mode commands.** Until authorized upstream contracts exist, /bg and /attach display one unavailable notice without changing session state. /fast and Alt+O display one unavailable notice without changing model selection or a local fast-mode flag. | Mounted AgentApp keyboard tests cover arguments and the shortcut. They preserve session identity and queue, with zero model turns. These fixtures do not establish backend acceptance. | requirement | TUI-RUNTIME | LANDED | 7957c3d08f87 |
| TUI-RUNTIME-R008.2.3.2.2.2.2.1 Native held-key viewport navigation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native held-key viewport navigation.** Accept repeat events for unmodified Up, Down, Left, Right, PageUp, PageDown, Home and End. Use the existing task, inspector and log viewport routes. Ignore release events and repeated action or modified keys. Preserve ordinary press behavior. | Production event-filter and viewport tests verify repeated scrolling and inert repeated actions. This child does not establish live backend or complete presentation acceptance. | requirement | TUI-RUNTIME | VERIFIED | be1eabdd50cc native/agent-terminal-ui/src/presentation.rs:86 |
| TUI-RUNTIME-R008.2.3.2.2.2.2.2 Remaining complete presentation acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Remaining complete presentation acceptance.** Retain every parent criterion beyond held-key navigation, including complete tokens, selection, keyboard parity, no-color, reduced motion, scroll retention, served journeys and release performance. | Full served parity and release performance receipts remain required. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R008.2.3.2.2.2.2.2.1 Native mouse-wheel viewport navigation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native mouse-wheel viewport navigation.** Unmodified vertical wheel events move one wrapped row in the visible task, inspector or host-log viewport, using existing keyboard scroll bounds and refresh/resize retention. Do not change hidden viewports, fold selection or expansion. Ignore modified wheel events and wheel input during cancellation confirmation. | Production mouse-route, renderer and viewport tests verify active-view isolation, bounds, fold preservation and refusal. Local fixtures do not establish served acceptance. | requirement | TUI-RUNTIME | VERIFIED | 3012107de7fb native/agent-terminal-ui/src/presentation.rs:310 native/agent-terminal-ui/src/public_details_view.rs:326 |
| TUI-RUNTIME-R008.2.3.2.2.2.2.2.2 Retained full presentation qualification Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Retained full presentation qualification.** Preserve every parent criterion beyond wheel navigation. These include complete tokens, selection, keyboard parity, no-color, reduced motion and scroll retention. Served journeys and release performance remain required. | Exit-modal keyboard regression tests cover arrow navigation, Space activation and composer focus restoration. Full served parity and release performance receipts remain required; this row stays open. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.3.1.1 Return to previous task pages Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Return to previous task pages.** P rereads the previous page through tasks/list with its original opaque cursor. Keep only the current page and navigation cursors. Clear old rows and replies during reads and after failure. Failed reads retain their navigation position for retry. R resets the path. Ignore duplicate navigation while pending and discard late completions after close. This does not provide conversation resume. | Mounted HTTP-fixture tests cover forward/back/forward reads, empty pages, refusal and retry, refresh reset, duplicate input and cancellation-suppressed completions. | requirement | TUI-RUNTIME | LANDED | 2423325a6ff1 |
| TUI-RUNTIME-R010.10 Search the native inspector's displayed text Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Search the native inspector's displayed text.** Ctrl+F opens a bounded local query. Match logical lines case-insensitively, reverse the selected line and reveal its first wrapped row. Enter and Shift+Enter cycle matching lines; Backspace edits; Escape closes search before closing the inspector. Typed action letters belong to search, while Ctrl+C still quits. Recompute matches from current display after resize, expiry or refusal; clear search on close or changed task binding. Make no search network requests. | Native production input and renderer tests cover match navigation, Unicode, query bounds, action isolation, expiry/refusal and lifecycle. This local interaction child does not close full served inspector or presentation qualification. | requirement | TUI-RUNTIME | VERIFIED | 53bb3b5ca03e native/agent-terminal-ui/src/inspector_view.rs:636 native/agent-terminal-ui/src/inspector_view.rs:671 native/agent-terminal-ui/src/inspector_view.rs:722 |
| TUI-RUNTIME-R016 Refresh documentation screenshots Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Refresh documentation screenshots.** Render the production Python Textual app with synthetic content at fixed compact and wide sizes. Export stable SVG assets for README and docs with a refresh command and read-only freshness check. Isolate settings, credentials, workspace and service access. Label demo provenance without native or served-parity claims. | `tests/test_documentation_screenshots.py` verifies deterministic exports, expected views, freshness failures and private-state isolation. | requirement | TUI-RUNTIME | LANDED | 2b219f071c62 |
| TUI-RUNTIME-R010.11 Consume authoritative execution identity and updates Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Consume authoritative execution identity and updates.** Extend `agent_terminal_ui/client.py` and `native/agent-terminal-ui/src` through the generated Arbora client. Keep root task, run, context and run-local step identities distinct. Consume versioned snapshots, explicit edge kinds, completeness and per-run cursors. Preserve replay-v1 decoding; negotiate new projections separately. Never infer a child from a span, name or shared run identifier. Depends-on: ARBORA-OPS-R021.4.8. | Planned `tests/test_execution_explorer_contract.py::test_snapshot_identity_and_recovery` and native contract tests reject cross-owner, malformed, stale and unsupported snapshots. | requirement | TUI-RUNTIME | SPECIFIED | native/agent-terminal-ui/src/execution_graph.rs:362 native/agent-terminal-ui/src/execution_graph.rs:405 native/agent-terminal-ui/src/execution_graph.rs:437 native/agent-terminal-ui/src/execution_graph.rs:474 native/agent-terminal-ui/src/execution_graph.rs:537 |
| TUI-RUNTIME-R010.12 Navigate the execution hierarchy and dependency graph Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Navigate the execution hierarchy and dependency graph.** Extend the existing terminal inspection surfaces, not a second scheduler. Show `spawned_child` and `depends_on` edges separately. Selecting a node opens its authorized details without retargeting the composer. Provide stable typed locators, ancestor breadcrumbs and keyboard-accessible adjacency lists at narrow widths. | Planned `tests/test_execution_explorer.py::test_nested_navigation` and native renderer tests cover three execution levels, shared dependencies, focus and reopen. | requirement | TUI-RUNTIME | SPECIFIED | 55431e8da128 5f25c6dfa910 659152bb71ad 6c1e6f34dc0e native/agent-terminal-ui/src/execution_graph.rs:362 native/agent-terminal-ui/src/execution_graph.rs:405 native/agent-terminal-ui/src/inspector_view.rs:1040 native/agent-terminal-ui/src/inspector_view.rs:1096 |
| TUI-RUNTIME-R010.13 Inspect a selected node's public records Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Inspect a selected node's public records.** Reuse existing summary, trace and tool folds for authorized public records. Label summaries, tool activity and transcript separately. Bind records and fold state to the complete node identity. Preserve choices during replay; clear protected content on denial or binding change. Never expose private reasoning. Depends-on: ARBORA-OPS-R021.4.9. | Planned `tests/test_execution_explorer.py::test_public_records_and_folds` covers duplicate events, unavailable transcripts, late results, terminal controls and revocation. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R010.14 Prove the served execution explorer Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Prove the served execution explorer.** Enter the production Python and native terminals through the existing client. Qualify nested navigation, graph updates and public records against one released producer contract. Keep existing inspector, presentation and transport acceptance open until independently satisfied. | Planned `tests/test_execution_explorer_served.py::test_nested_graph_journey` records actual parent/child/grandchild, fan-out/fan-in, reconnect, denial and cancellation evidence. Synthetic graphs cannot close this row. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.7 Message an active child explicitly Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Message an active child explicitly.** Extend the selected-node interaction through the existing client and composer. Enable `Message active child` only with `can_message_active` and an exact owner-issued target binding. Keep inspection separate from message targeting. Display accepted, rejected and unknown outcomes without automatic resend. Depends-on: ARBORA-RELEASE-R003.4.12. | Planned `tests/test_execution_explorer_controls.py::test_active_child_target` verifies exact child delivery, unchanged root/siblings, expired capabilities and lost-response refusal. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.8 Continue a completed child separately Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Continue a completed child separately.** Show `Continue completed child` only with `can_continue_completed`. Use the producer's continuation binding and returned identity. Preserve the completed execution and its history. Never emulate continuation through root chat, local history injection or a fresh unbound agent. Depends-on: ARBORA-RELEASE-R003.4.13. | Planned `tests/test_execution_explorer_controls.py::test_completed_child_continuation` checks distinct action labels, history linkage, returned identity and unsupported refusal. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R012.9 Qualify targeted interaction through the served terminal Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Qualify targeted interaction through the served terminal.** Prove both targeted actions through the existing client and production composer. Revalidate capabilities after selection, lifecycle, owner or connection changes. Cancellation must address only the producer-authorized target. | Planned `tests/test_execution_explorer_served.py::test_targeted_child_controls` proves intended-child delivery, terminal continuation, cancellation acknowledgement, race handling and zero unauthorized effects. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R008.3 Add an optional Canopy palette Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Add an optional Canopy palette.** Extend the existing native presentation selection with dark green, sage and stone tokens. Keep the current default, all existing themes, explicit choices, runtime cycling and no-color rules. Use opaque terminal colors, readable borders and a 4.5:1 text contrast floor. Do not simulate glass or add animation. | Production native interaction tests must cover selection, resizing, composer retention and cycling. Native buffer tests cover startup, F6, no-color and contrast. Compiled terminal qualification remains required. | requirement | TUI-RUNTIME | SPECIFIED | 489292f90ac6 native/agent-terminal-ui/src/inspector_view.rs:936 native/agent-terminal-ui/src/presentation.rs:208 native/agent-terminal-ui/src/presentation.rs:548 native/agent-terminal-ui/src/spatial_graph.rs:359 tests/test_native_gallery.py:15 |
| TUI-RUNTIME-R010.12.1 Add a bounded read-only spatial flat DAG Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Add a bounded read-only spatial flat DAG.** Render only the validated ExecutionGraph through a separate stable layered layout. Reuse InspectorView ownership, generation and clear guards. Provide explicit map/list switching, bounded pan, selected-node focus and a narrow-terminal list fallback. Keep the node and dependency list, selected details, lifecycle caveats and unsupported child actions available. No new graph authority, identities, transport, scheduler or effects. | Layout and native buffer tests cover chains, diamonds, disconnected nodes, maximum bounds and hostile labels. They also cover resize, selection, pan, search fallback and protected-data clearing. Compiled PTY qualification remains required. This slice does not close the nested explorer or complete presentation acceptance. | requirement | TUI-RUNTIME | VERIFIED | 55431e8da128 5f25c6dfa910 659152bb71ad 6c1e6f34dc0e native/agent-terminal-ui/src/inspector_view.rs:936 native/agent-terminal-ui/src/inspector_view.rs:937 native/agent-terminal-ui/src/spatial_graph.rs:272 native/agent-terminal-ui/src/spatial_graph.rs:307 native/agent-terminal-ui/src/spatial_graph.rs:359 |
| TUI-RUNTIME-R008.3.1 Implement optional Canopy tokens Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Implement optional Canopy tokens.** Register the palette in the existing native theme path without changing defaults or existing choices. Preserve opaque colors, no-color rules and cycling. | Native source tests bind the palette, contrast and control changes. This source slice does not establish compiled acceptance. | requirement | TUI-RUNTIME | VERIFIED | 5f25c6dfa910 6c1e6f34dc0e 706cd3661212 native/agent-terminal-ui/src/presentation.rs:208 native/agent-terminal-ui/src/presentation.rs:548 |
| TUI-RUNTIME-R008.3.2 Qualify complete Canopy behavior Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Qualify complete Canopy behavior.** Preserve every R008.3 criterion. Execute current native contrast and theme tests, both compiled PTY color modes and the installed startup matrix. | Record exact source and artifact receipts. Collection, source tests and skipped optional tests cannot close this row. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R010.12.1.1 Implement the bounded spatial flat DAG Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Implement the bounded spatial flat DAG.** Add the separate layout and existing inspector controls, viewport focus, narrow/search fallback and protected-data clearing. Show selected-node dependency edges with an explicit label; keep every dependency in the list. | Native layout, buffer and PTY tests bind the source paths. Their presence does not establish execution. | requirement | TUI-RUNTIME | VERIFIED | 55431e8da128 5f25c6dfa910 6c1e6f34dc0e native/agent-terminal-ui/src/inspector_view.rs:936 native/agent-terminal-ui/src/spatial_graph.rs:272 native/agent-terminal-ui/src/spatial_graph.rs:307 native/agent-terminal-ui/src/spatial_graph.rs:359 |
| TUI-RUNTIME-R010.12.1.2 Qualify the spatial flat DAG Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Qualify the spatial flat DAG.** Preserve every R010.12.1 criterion, including bounds, hostile labels, selection, resize, pan, search, no-color, clearing and effect isolation. | Execute the native suite and both required real PTY map cases against the exact compiled source. Retain full hierarchy, served parity and performance obligations. | requirement | TUI-RUNTIME | VERIFIED | 659152bb71ad native/agent-terminal-ui/src/inspector_view.rs:937 native/agent-terminal-ui/src/spatial_graph.rs:272 native/agent-terminal-ui/src/spatial_graph.rs:307 native/agent-terminal-ui/src/spatial_graph.rs:359 tests/test_native_spatial_graph_pty.py:29 |
| TUI-RUNTIME-R010.12.2 Retain complete hierarchy navigation acceptance Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Retain complete hierarchy navigation acceptance.** Preserve every R010.12 criterion beyond the bounded flat map. Show `spawned_child` and `depends_on` edges separately. Node selection must open authorized details without retargeting the composer. Require stable typed locators, ancestor breadcrumbs and narrow keyboard-accessible adjacency lists. | Planned nested-navigation tests must cover three execution levels, shared dependencies, focus and reopen. Retain invalid-locator, missing-ancestor and 40-column composer-preservation checks from the test specification. Flat-only fixtures cannot qualify this row. R010.14 retains the separate served qualification. | requirement | TUI-RUNTIME | SPECIFIED | No recorded commit/test evidence |
| TUI-RUNTIME-R008.4 Preserve native input across resize Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Preserve native input across resize.** A resize must not strand already queued keys. Keep key order, ordinary navigation, effect isolation and terminal restoration. Do not inject sentinel input or require a later key. | Execute ordinary rapid resize/navigation and controlled co-ready resize/input PTY cases against the exact compiled checkout. Existing native tests and all required PTY journeys must pass. Source checks and older binaries do not qualify this row. | requirement | TUI-RUNTIME | VERIFIED | 55431e8da128 659152bb71ad tests/test_native_execution_graph_contract.py:20 tests/test_native_public_details_pty.py:272 |
| TUI-RUNTIME-R008.4.1 Select a supported native input backend Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Select a supported native input backend.** Use the existing Crossterm version's supported readiness backend without changing terminal ownership, graph routing or Windows behavior. Keep the dependency closure locked. | Source guards bind the backend feature and controlled PTY regression. Their presence does not establish compiled acceptance. | requirement | TUI-RUNTIME | VERIFIED | 55431e8da128 tests/test_native_execution_graph_contract.py:20 |
| TUI-RUNTIME-R008.4.2 Qualify native resize/input delivery Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Qualify native resize/input delivery.** Preserve every R008.4 criterion. Retain the original rapid assertion and add a bounded controlled resize/input case. No sentinel, sequential wait or timeout relaxation may replace the failing scenario. | Record exact compiled source and repeated real PTY results. Retain broader cross-terminal, served and release qualification. | requirement | TUI-RUNTIME | VERIFIED | 659152bb71ad tests/test_native_public_details_pty.py:272 |
| TUI-RUNTIME-R012.6.3 Display bound Python turn receipts Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Display bound Python turn receipts.** Decode the existing Arbora task receipt only when its task, context and run match the terminal event and any selected history task. Preserve the five supplied integer counters in 0..9007199254740991. Missing and refused receipts remain unavailable, not zero. Clear prior measurements on a new turn, error or read without a valid receipt. Replace snapshots on replay; never accumulate totals. Reuse the status line and read-only task history. No new endpoint, store, pricing or inferred session totals. | Python decoder, transport and mounted display/history tests cover binding refusal, malformed counters, zero, replay, fresh-client reads and clearing. This source slice does not qualify an installed producer journey or close R012.6.2. | requirement | TUI-RUNTIME | LANDED | 706cd3661212 |
| TUI-RUNTIME-R012.1.3.1 Native headless invocation Definition — TUI-RUNTIME / TUI-RUNTIME — Terminal Arbora operation clientCanonical requirement and verification source**Native headless invocation.** The sole `tuig` executable accepts `--headless` with exactly one prompt or observed task. Reuse native authenticated unary submission and bounded observation, preserve opaque correlation and unknown mutation outcomes, and refuse unsupported options. Never approve or cancel remotely from headless execution. | Parser tests reject duplicates, missing intent and unsupported combinations. Native state tests establish successful completion only for completed tasks. Served parity, streaming and full native cutover remain open. | requirement | TUI-RUNTIME | VERIFIED | e79cd23f71cc native/agent-terminal-ui/src/cli.rs:38 native/agent-terminal-ui/src/headless.rs:66 native/agent-terminal-ui/src/headless.rs:90 tests/test_native_headless.py:18 tests/test_native_only_runtime.py:9 |