feat: describe each /claudify setting #50
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "clfy-22-setting-descriptions"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes CLFY-22
Every
/claudifyrow was a barelabel + value, and several said nothing useful ("Toolchrome", "Semantic Bash display", "Input border"). All 31 visible settings now carry a
one-line description; the selected row only renders it, dimmed, on the next line.
This diverges from Claude Code on purpose — read this before "fixing" it
The ticket asked to capture how CC's
/configrenders per-setting descriptions. It rendersnone.
docs/plans/2026-07-15-cc-dialog-chrome.mdalready captured that surface in detail —tab strip, search box, row grammar, selection, stateful footer wording, key semantics — and
records rows as a bare two-column list where selection merely swaps the leading spaces for
❯. There was nothing to capture and nothing to match.That made this a product decision rather than a fidelity fix. Berto chose to ship it anyway,
as a claudify-owned usability affordance, and rejected "a description under every row" (it
roughly doubles panel height and fights
PANEL_HEIGHT_RESERVE).Because this knowingly breaks the repo's capture, do not guess rule,
docs/plans/2026-07-16-claudify-setting-descriptions.mdrecords the negative capture and thedecision — so a future reader doesn't mistake it for a bug and "correct" it back to CC.
The descriptions are traced, not guessed
Each description was written against the code that actually consumes the setting. That
exercise turned up two labels that lie, and the descriptions state the real behavior:
A fact-check pass then verified all 30 descriptions against their consumers and found one
overclaim, fixed in
ad9e829:diffCollapsedLimit()has exactly two call sites, both inside the write tool registration;
editrenders itscollapsed diff at a hardcoded 32 lines (
renderEditPreviewBody). Set it to 3 and an Update rowstill prints 32 — the description would have promised a control the user cannot feel. Now scoped
to Write.
Validation
bun run test— 15/15 green;npx tsc --noEmit --strict …— clean. Run independentlyof the worker, at
28e07d3, plus the hub suite + typecheck again afterad9e829.framed panel still lands its
rows − 5height with the footer pinned (both the terminal-sizeand natural-height paths).
row only, follows selection cleanly, and at 72 columns wraps to two lines with the panel,
rules, and pinned footer all intact. pi's
Textword-wraps (wrapTextWithAnsi), so a longdescription cannot overflow — the 2.3.0 crash class does not apply here. Smoked against pi
0.80.10.
Known nits (not fixed here)
slightly ragged below ~80 columns. Cosmetic.
spinnerStatusColor's description names duration/tokens/thinking "beside the Spinner", whichis accurate but incomplete: the same dim also paints the turn-end
✻ Worked for …line, whichreplaces the Spinner rather than sitting beside it. Not false, so left alone.
Follow-up worth considering (out of scope)
The
diffCollapsedLinesfinding is really a product gap, not a wording one: a settinglabelled "Collapsed diff lines" that silently doesn't apply to Update/edit rows. Either edit
should honour it, or the row should be renamed. That's a behaviour change and wasn't this
ticket's remit.