deploy / deploy (push) Skipped
CI Pipeline / go-surface (push) Successful in 4s
CI Pipeline / best-practices (push) Successful in 2s
CI Pipeline / documentation (push) Successful in 2s
CI Pipeline / type-check (push) Successful in 28s
CI Pipeline / lint (push) Successful in 37s
CI Pipeline / canary (push) Successful in 43s
CI Pipeline / gitea-offline (push) Successful in 13s
CI Pipeline / go-surface (pull_request) Successful in 2s
CI Pipeline / lint (pull_request) Successful in 34s
CI Pipeline / best-practices (pull_request) Successful in 1s
CI Pipeline / documentation (pull_request) Successful in 2s
CI Pipeline / canary (pull_request) Successful in 37s
CI Pipeline / type-check (pull_request) Successful in 27s
CI Pipeline / gitea-offline (pull_request) Successful in 13s
Spec gate (headless) / spec-gate (pull_request) Successful in 4s
CI Pipeline / unit-tests (push) Failing after 4m50s
CI Pipeline / unit-tests (pull_request) Failing after 4m48s
CI Pipeline / required-checks (push) Failing after 1s
CI Pipeline / required-checks (pull_request) Failing after 1s
CI Pipeline / CI Pipeline / notify-event-bridge (push) Successful in 2s
CI Pipeline / CI Pipeline / notify-event-bridge (pull_request) Successful in 1s
The tui_panels_are_governed henxel held on the H4 slice-1 surface (runs 18346/18347): new TUI surfaces ship with a registry entry in the same PR. Entry added (not-a-surface seam, contract ref, coverage ref). Local henxels: all hold.
1.5 KiB
1.5 KiB
TUI registry
Every TUI surface in src/rune/ is registered here — what it renders, who
owns it. Governed by the tui_panels_are_governed henxel: a new TUI surface
that isn't registered fails the contract. Add the entry IN THE SAME PR as the
new surface.
| Surface | Renders | Notes |
|---|---|---|
rune_tui.py |
The main Textual application — chat pane, work pane, status bar (version label + refresh), footer, dialogs | The known giant (file-size debt tracked in henxels); composition root for all UI |
tui_validator.py |
Import-allowlist validation for TUI code | Drift defect tracked in #139 (allowlist vs __future__/relative imports) |
tui_backlog.py |
Not a surface — the durable TUI Upgrade Backlog ledger (outstanding projection/control work per backend feature) | SCAFFOLD-TRANCHE-007; ledger only, never structural authority |
tui_transport.py |
Not a surface — the transport seam for the TUI's operator calls (in-process default / /v1 wire opt-in) | H4 slice 1 (contract BUILDER-2026-10-04T10:32:00Z-cli); RUNE_TUI_TRANSPORT selects; coverage: canary_tui_transport.py |
Adding a TUI surface
- Create the module under
src/rune/. - Add a row here (renders / notes) in the same PR.
- Ship a test or canary (the
new_rune_modules_have_canary_or_test_coveragehenxel enforces coverage). - Decomposition of
rune_tui.pyalong the authority map is tracked in #125 — new panels should target the decomposed structure, not grow the giant.