• feat(#6): startup session picker for bare TUI mode

    vh released this 2026-06-30 22:05:14 -07:00 | 179 commits to main since this release

    v1 coverage-audit slice b2. The audit found list_sessions had no
    caller — the startup session picker (design-brief §4) was never built;
    bare TUI mode was a hard usage error. Add SessionPickerApp (mirrors
    AgentPickerApp) and resolve bare mode in _resolve_then_run.

    • Bare TUI mode (no --session/--new) now valid → session picker.
      Resolution: 0 sessions -> [no_sessions] exit 14 (resume-only per
      §4 "no in-app creation, --new only"); exactly 1 -> auto-resume
      (§4 "picker only when >1"); >=2 -> SessionPickerApp -> resume pick
      (Esc/Ctrl-D -> exit 0).
    • cli._parse: bare TUI valid; --send still requires one flag; --agent
      forbidden in bare mode. run_tui PRE-002 xor -> mutually-exclusive.
    • Contract #6 amended (SessionPickerApp + bare-mode resolution) +
      validated. TDD: 3 picker pilot tests + 5 resolution tests + 3 cli
      validation tests. Suite 528 green; touched code ruff-clean.

    Design note: bare + 0 sessions errors (honors §4's no-in-app-creation
    clause); the friendlier auto-fall-through-to-new is deferred pending
    operator preference.

    Downloads