Files
codewhale/crates
Hunter Bown 68ec91999b feat(tui): clarify Plan panel role + drop empty-state placeholder (#408)
The Plan panel used to render a blunt "No active plan" line whenever
the model hadn't called \`update_plan\` yet — even when the panel had a
goal or a cycle counter to show above it. That made the panel look
broken on every fresh session.

Per the audit posted on the issue (option 1 of three), this PR keeps
the Plan panel as the **single source of truth for the \`update_plan\`
tool's output** and drops the placeholder when the panel is fully
quiet, replacing it with a one-line hint that explains what the panel
tracks. When a goal or cycle counter is already showing above, the
empty-steps body collapses entirely so the section doesn't look
ambiguous next to populated content.

The panel's role is documented in a doc comment on
\`render_sidebar_plan\` so the next person doesn't have to re-derive it
from the issue tracker.

### What's wired

- \`render_sidebar_plan\` checks "anything above" (goal +
  cycle_count) before deciding whether to emit the empty-state hint.
  If either is showing, the empty steps body adds nothing.
- New \`plan_panel_empty_hint(width)\` helper composes the hint
  string with proper width-aware truncation.
- New module-level doc comment explains the Plan panel's role
  (update_plan output + /goal + cycle counter) and contrasts it
  with Todos.

### Tests

- 3 new tests in \`tui::sidebar::tests\`:
  - hint mentions \`update_plan\` and \`/goal\` so the user
    understands what populates the panel
  - hint truncates correctly to a 16-column sidebar without
    overflowing
  - regression guard: the hint never re-introduces "no active plan"
    wording

### Verification

cargo fmt --all -- --check                                          ✓
cargo clippy --workspace --all-targets --all-features --locked --   -D warnings   ✓
cargo test --workspace --all-features --locked                      ✓ 1850 + supporting

Closes #408 (option 1 of the audit). Options 2 (merge with todos)
and 3 (move to top-row chip) remain open as v0.9.0 design candidates
once #504's right-panel work is on the table.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 04:00:47 -05:00
..