fix(uat): close two UAT-path correctness defects #59
No reviewers
Labels
No labels
already-shipped
bug
documentation
duplicate
enhancement
good first issue
help wanted
in progress
invalid
needs-decision
proposal
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: crenshawdev/cadence#59
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "task/uat-path-fixes"
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?
Two confirmed MEDIUM defects from the post-v1.3.1 backlog, one atomic commit each. Both were reproduced live before the fix and verified after, and both regression tests were confirmed failing-capable by reverting the source and watching them go red.
1.
usableNametrim asymmetry (5d4b07f)findcomparedi.name === ref.nameuntrimmed whileusableNametrimmed on the append path, so a gap named"Login works "missed the stored"Login works"and appended a byte-identical duplicate. The duplicate was unreachable by name on every later merge, so itsfailstatus blockeduatCompletepermanently. That is the same phantomusableNamewas added to prevent, reached from the read side.Rather than adding a second trim inside
find,usableNameis hoisted above it andfindnow matches through it, so the read and write paths cannot drift apart again. A null name still matches nothing, keeping an unnamed ref rejected rather than colliding with the first item.Reproduced as
{gaps:1, added:1, skipped:0, rejected:0}with two identical### N. Login worksheadings.2. UAT extras fence bound (
a1b33bb)The extras collector stopped at any
/^## /line, so a## build outputline inside a ```sh block truncated the section mid-fence. That destroyed the closing fence and the trailing prose and left an odd fence count, so the regenerated## Summaryrendered as code, contradictingtemplates/UAT.md's promise that a hand-added section survives a seam rewrite verbatim.New
sectionBoundreturns the first##outside a fenced block, tracking the opener's character and length so only a matching closer ends it. Both the extras loop and the item field loop use it, making true the comment that already claimed they shared a bound.Reproduced as a fence count dropping 2 to 1 with
## Summaryswallowed into an unclosed block.Verification
tsc -p tsconfig.ci.jsoncleanself-verifygreenNote:
CAPTURE.mdis gitignored, so the two closing marks there are a working-tree edit and not part of this diff. CAPTURE recorded the path ascadence-core/lib/planning-files.mjs, which does not exist; the file is atcadence-core/bin/lib/.