Collected from the per-task and final whole-branch reviews of the v0.4.0 list/show redesign. Every item was explicitly triaged non-blocking — the logic behind the test gaps was verified live during review; these tighten the net for future changes. File references are as of c12c58e.
Behavior edges
Test tightening
Collected from the per-task and final whole-branch reviews of the v0.4.0 list/show redesign. Every item was explicitly triaged non-blocking — the logic behind the test gaps was verified live during review; these tighten the net for future changes. File references are as of c12c58e.
Behavior edges
[efforts]replacement skews link accounting.familyStates(commands.go) builds the letter family from the effective ladder while linkable comes from the global token set, so a project ladder (e.g. only digit6) leaves the model row warningnot linked — run clau linkforever — link is global-only and will never createco6— and skews the footer denominator. Shipped as a comment only (baf3f23); a real fix derives the family's linkable digits from the global ladder.contractHome(style.go) doesn't resolve symlinks between the path and$HOME, so a home reached via a different symlinked path won't tilde-contract. Display-only.stdoutIsTTY(style.go) treats/dev/nullas a TTY (ModeCharDevice), so redirecting to it emits discarded ANSI codes. Standard cheap heuristic; cosmetic.Test tightening
TestContractHome: no case forp == home→~.TestRowBadges: covers 5 of 8 boolean combos; notably missing linked-but-unlinkable (an orphaned link no longer in the global set).TestFamilyStates: never exercises a no-efforts letter (h).kindLine: the plainprofilebranch (noextends) has no in-suite test.TestMaskedEnvName: no plural-exclusion cases for KEY/SECRET/PASSWORD (KEYS,SECRETS,PASSWORDSmust stay visible) and no mid-name segment case (TOKEN_EXPIRYmust mask).TestShowViewProjectSourceAndLinked: thelinked nosubstring assertion can't tell which hint branch fired (run-clau-link vs project shortcut).showpresence only, not verb-list placement or membership in the run/show token-completion branch.digitSpan(commands.go) relies on single-digit effort keys enforced far away byeffortKeyRe(config.go); add a local comment noting the coupling.