feat(tui): list custom themes in picker - #5907
Conversation
Discover validated user theme overlays, preserve the raw custom selector in App state, preview custom colors, and prevent no-movement picker commits from clobbering overlays. Add picker, loader, and config regression coverage for Hmbown#5901.
Hmbown
left a comment
There was a problem hiding this comment.
Verified the clobber on main — apply.rs passed the base theme name as the picker's original, and app/init.rs dropped the normalized selector, so storing app.theme_name (and cloning it at apply.rs:1981) is the right fix; the custom:midnight preview/commit test and the live App-state test in config.rs are exactly the coverage this needed. Two asks: (1) are the new custom rows exercised at narrow width (the picker's list-when-narrow path at theme_picker.rs:202 has infra; a one-line assertion would pin it), and (2) confirm custom row labels route through the same localized label helpers as built-ins. Thanks for skipping invalid/oversized/symlinked overlays and for leaving prompts/text.rs untouched. Housekeeping: commit is missing a Signed-off-by trailer — git commit --amend -s when convenient.
Summary
Addresses the approved #5901 slice.
The
/themepicker now:$CODEWHALE_HOME/themes/;custom:<name>selector inAppstate;The configuration guide and synchronized changelogs document the picker behavior.
Tests
Passed locally:
cargo fmt --all -- --checkgit diff --check./scripts/sync-changelog.sh --checkRUST_MIN_STACK=16777216cargo clippy -p codewhale-tui --all-targets --locked -- -D warningsNo provider credentials or network access are required.
No-Issue: This PR addresses the approved focused #5901 picker slice without automatically closing the broader issue.