# 17 — TUI ## Status ```text TUI=PRIMARY_CONTROL_SURFACE USER_INTERFACE_LANGUAGE=ENGLISH ``` ## Authority `AGENTS.md`, `README.md`, current TUI architecture and `docs/product/product_definition.md`. ## CURRENT/FROZEN ncurses remains on its designated/main thread. Reuse the current business-logic / TUI / layout separation and current Queue/Project lifetime boundary. Validated sizing includes: ```text full >=100x30 reference compact 72x20 minimum supported 60x15 ``` Below minimum, render only the bounded terminal-too-small fallback. ## REQUIRED_PRODUCT_TARGET The TUI progressively controls: - project; - acquisition; - optics; - calibration; - quality; - pipeline; - Tasks; - Governor; - SSD/scratch; - reconstructions; - viewer; - coverage; - capture guidance; - export; - diagnostics/help. Displayed actions and actual handlers must remain consistent. Diagnostics must distinguish at least: - scientific rejection; - invalid input; - missing prerequisite; - resource wait/throttle; - runtime failure; - corruption; - unsupported version/backend; - user cancellation. A generic unowned `failed` state is insufficient for final-product workflows. Remaining non-English executable UI text converges to English only in explicitly scoped implementation work. ## Canonical-reference rule When implementation enters this area, read the cited canonical document in full before editing. If this prompt summary and the canonical document appear to conflict, do not silently choose the shorter text: determine whether this file is stale or whether a real contract contradiction exists, then apply the STOP rules where necessary.