HOMELAB-2682: fix(landing): heading context regression from the blockers fix #97
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "plane/HOMELAB-lock-heading-delta"
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?
Restores the pre-#96 semantic exactly: the heading line is never a finding of its own, but it supplies the blocker severity for the content lines under it, so a line there that states a defect without a
blockertoken is a finding again (review-measured shape:## Blockers+- the census crashes when the key file is unreadable).Guards: negation/documentation/narrative rules unchanged; a heading or horizontal rule ends the section; a whole-line determination of zero (
None.,None found.,Nothing outstanding.,0 remaining.) reports nothing; a line opening with a resolution word is the reviewer's closure note; a labelled bullet (- B2 — ...,1. ...) keys as its own id soresolved B2cites it, andblockerIdsInreads it the same way.Tests —
forgejo/tests/landing-blocker-heading-context.test.ts(11 cases; 5 fail on299a0c5, 6 pass there):## Blockers→ finding; plain defect line under it → finding; labelled bulletB2keys asB2andresolved B2closes it; the lock refuses the merge on a defect under the heading; the section does not leak (## Summary,---, a following heading).## Open blockers:,#### Blockers→ no finding; empty-heading verdict still lands;## Blockers: <defect>still a finding and## Blockers: nonestill zero; a real**Blocker B1 — ...**under the heading still counts exactly once.Full suite 24 files / 680 tests green;
tsc --noEmitclean. Not merged.Verdict of record — ld-reviewer — head
1e65400138244b9650d785c2763ac0dd0094f31b: APPROVEmodel: deepseek-flash
session: bb69e5db-864a-45dd-bcec-57de9b21eeb8
Reviewed at the pinned head in a throwaway clone, read-only: no edits, no commits, no pushes, this one comment.
## Blockersalone,## Open blockers:,#### Blockers,## Blockers: nonegive zero findings;## Blockers: <defect>gives one; the heading plus a defect bullet, or a plain defect line, gives one id-less finding again (the regression this closes); the heading plusresolved B2gives zero;## Summaryand## Verdictsections confer nothing, and a nested heading or a thematic break ends the section.299a0c5dclaim is exact: 5 of the 11 new cases fail there, 6 pass, and the 5 are the ones the description lists. Full suite 24 files / 680 tests green on the head;tsc --noEmitclean.299a0c5d. The delta only ADDS findings, so every difference against299a0c5dis a tightening, and the shapes that pass now but refused pre-#96 are exactly the #96 heading pins this PR re-pins in tests.- None.,- 0 remaining) is not matched because the empty-statement test runs onplainText(line), which keeps the bullet mark — so the most common "nothing here" form registers as a finding, and- 0 remainingkeys as id0.blockerIdsInnow sees section-labelled ids, so a hold body that names a lead-labelled id and later says the earlier fix was premature clears ITSELF (hold open on299a0c5d, cleared on this head; reproduced throughevaluateLandingLock). Identity rules still hold — reviewer bodies only — and the token spelling of the same body already clears on299a0c5d, so the root cause is the self-citing resolution arm, not this delta. No new test pins the changedblockerIdsInsection path.forgejo/landing.tsand the one new test file, +266/-7, nothing else.Approving on that basis; the last three items are follow-up material, none of them a regression of a property the lock defends today.
Verdict of record — ld-reviewer — head
1e65400138244b9650d785c2763ac0dd0094f31b: APPROVEmodel: deepseek-flash
session: 4f1c9a02-7d63-4b1e-9c05-2a8b0e6f31c7
Independent seat 2. Every claim checked by RUNNING the code at the pinned head against two baselines (
299a0c5, and pre-#96f3927e7) over a 60-shape differential. This head never reports fewer findings than299a0c5, so the delta only tightens.## Blockersbecomes an id-less finding — and a later clean APPROVE from the same reviewer does NOT clear it (measured: two verdicts, still refused; only a "blockers resolved" phrase closes it). Not a loosening: that body refused on pre-#96 too. The cost is liveness, not safety.- None.) CONFIRMED and UNCHANGED from main.- None.,* None found.,- Nothing outstanding.refuse on pre-#96 main as well — there the heading carried the finding, here the bullet does. Same outcome, different carrier line.- 0 remainingkeys as id0.blockerIdsInnow sees section lead ids, so a hold whose own body carries a resolution line can self-clear (measured: ids["B2"]here,[]on299a0c5). The token spelling of the same body already clears on299a0c5, so the self-citing resolution arm, not this delta, is the cause. Net direction is mostly safer: a hold naming a section-labelled id now binds (passes on299a0c5, refuses here).299a0c5too): a nested heading between the title and the defect (## Blockers/### Details/- the census crashes…) resets the section; and a defect that OPENS with a resolution word (resolved B2 does not actually fix the crash,Fixed path still crashes on a nil key) is read as a closure, because the section's resolution-lead guard carries no negation test. "Restores the pre-#96 semantic exactly" overstates the delta for those two families — follow-up material, not a regression against what is merged.tsc --noEmitclean; 5 of the 11 new cases fail on299a0c5and they are exactly the five the description names.Approving: no input loosens the merge condition against the merged head, and the flags are either unchanged-from-pre-#96 or pre-existing. The
- None.stickiness is the one I would fix first.Verdict of record — ld-reviewer — head
02ef268b84: APPROVEmodel: deepseek-flash / session: 01a1aa98-f6e8-71f2-9feb-fb606f203bcb
Empty-commit re-trigger verified (diff vs
1e65400empty); the heading-context restoration and its tests stand as reviewed (21675).Evidence:
02ef268b's single parent is1e65400138244b9650d785c2763ac0dd0094f31b;git diff --name-status 1e65400 02ef268breturns 0 entries and both commits share tree54a03e4f3971815521e19aa9279bdf866a1cbd3a;git show 02ef268b --statlists 0 files. The reviewed delta (forgejo/landing.ts+126,forgejo/tests/landing-blocker-heading-context.test.ts+147) is therefore byte-identical to the head reviewed at 21675, so no new content reached the review.Verdict of record — ld-reviewer — head
02ef268b84: APPROVEmodel: deepseek-flash
session: 01a1aaaa-e7dc-71f2-9feb-fb64c7f2ea2a
Empty-commit re-trigger independently verified (0-file diff, shared tree); the heading-context delta stands as reviewed in 21690.