specs/021-board-quality/plan.md
Implementation plan: Task Board quality
Branch: gui/quality-polish-20261008 | Date: 2026-10-08 | Spec: spec.md
Summary
Place the existing five-column board inside a native horizontal scroller. Keep each column's existing vertical scroller. Replace double metadata muting with one semantic foreground treatment and remove header muting in high contrast.
Technical context
Rust 2021, minimum 1.92, pinned development toolchain. GTK4, libadwaita and existing CSS only. No storage or protocol change. Native Linux desktop, 360px and wide windows. Existing TaskCardView and BoardColumnView remain the data shape. No new abstraction is needed.
Constitution check
Spec precedes code. Add a failing native GTK regression before implementation. Existing full verification remains the delivery gate. Core and protocol remain toolkit-free. Task classification, event handling and terminal reconciliation stay unchanged. Light and dark renders are inspected. No load-bearing architectural decision or deviation.
Project structure
crates/signaltty-gui/src/board.rsowns native board construction.crates/signaltty-gui/data/style.cssowns board typography and contrast.crates/signaltty-gui/src/app_tests.rsowns the native regression and screenshots.docs/06-gui-toolkit.mdrecords the existing board's corrected presentation.
Verification
Prove 360px bounds before and after, native horizontal adjustment reaches Done, keyboard focus reveals the last card, and activation delivers its pane. Capture normal light/dark and enlarged high-contrast scenes. Run scripts/verify.sh full.