HOMELAB-2590: fix(forgejo): preserve verdict record on blocker refusal #85
No reviewers
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Homelab/pi-extensions!85
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "plane/HOMELAB-2590-blocker-record"
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?
What
Red / green
record, census renderedclassKnown=falsedespite the complete panel.Verification
npx vitest run: 15/15 files, 463/463 tests passed.npx tsc --noEmit: passed.git diff --check: passed.bash scripts/test-in-deployed-shape.sh: 15/15 files loaded, 463/463 tests passed on the pinned clean copy.forgejo/landing.ts,forgejo/tests/landing-blockers.test.ts, andforgejo/tests/landing-record.test.ts.Requires a fresh general + premium formal exact-head review panel. No runtime deployment is claimed.
Verdict: APPROVED
model: omniroute/kimi-pool
head:
d08769eaa5Independent GENERAL-seat review of Homelab/pi-extensions PR #85 at exact head
d08769eaa5; live head re-fetched before submission and matched.The diff is confined to forgejo/landing.ts and the two landing test files, and it hoists the already-computed landing record above the leg-4 open-blocker refusal so the refusal now returns that same record object, which is the identical object the success path returns, while the refusal text and every other leg are unchanged from the parent.
On a genuine open-blocker refusal the known dangerous class and the exact-head verdict ids #1676 omniroute/deepseek-flash and #1674 omniroute/kimi-pool (premium) now remain in the census row while the row stays not-landable with canMerge=false.
I independently reproduced the red-first omission by reverting landing.ts to the parent commit in a temporary copy and observing both new regressions fail with refused.record undefined and a class-unknown census fallback, then observed both pass on this head.
The route-fake census test asserts canMerge=false with the one genuine id-less tenant-filter blocker, classKnown=true, dangerous=true, the exact verdict id list, and rendered text containing [open | dangerous | not-landable] while not containing class unknown or NO exact-head verdict, and no gate or evidence rule was widened.
The #1672 wrapped-denial negative control contributes zero findings in both the pure parser and the route-fake harness, and the genuine id-less blocker remains the sole leg-4 cause.
Full validation on this head is green: npx vitest run 15/15 files and 463/463 tests, npx tsc --noEmit clean, and scripts/test-in-deployed-shape.sh passing 463/463 tests on the pinned clean copy.
CI run #205 is pass 14/14 on this exact head, and the diff contains no API, index, types, verdict, or deployed-extension changes.
No blocker open.
Verdict: APPROVED
model: omniroute/k3.1-pro
head:
d08769eaa5tier: premium
Independent PREMIUM review of Homelab/pi-extensions PR #85 at exact head
d08769eaa5; the remote branch head was re-fetched immediately before submission and matched.The exact commit touches only forgejo/landing.ts and its two landing test files, moves the existing landing-record construction above the leg-4 refusal, and returns that same record object beside the unchanged refusal; every other gate, evidence rule, and return leg remains unchanged.
On a genuine open-blocker refusal the census remains not-landable with canMerge=false while retaining classKnown=true, dangerous=true, and exact-head verdict ids #1676 omniroute/deepseek-flash and #1674 omniroute/kimi-pool (premium), without the class unknown or NO exact-head verdict fallback lies.
I independently reproduced the red-first defect in an isolated temporary copy by combining parent landing.ts with exact-head tests: the pure parser returned refused.record undefined and the route-fake census returned classKnown=false, with both targeted regressions failing; the exact head then passed both.
The genuine id-less tenant-filter blocker remains the sole leg-4 cause, and the #1672 wrapped No-blocker denial contributes zero findings; the refusal record deep-equals the successful no-blocker baseline, proving record propagation without gate or evidence widening.
Full independent validation on this head is green: 15/15 files and 463/463 tests, TypeScript no-emit typecheck, diff check, and deployed-shape verification with a clean pinned install plus 463/463 tests; CI #205 is PASS with 14/14 jobs successful on this exact head.
No blocker open.
Verdict: APPROVED
model: omniroute/kimi-pool
head:
d08769eaa5Fresh independent GENERAL-seat review of Homelab/pi-extensions PR #85 at exact head
d08769eaa5; the remote head was re-fetched immediately before submission and matched.The diff is confined to forgejo/landing.ts and the two landing test files. In evaluateLandingLock the leg-4 open-blocker early return is moved below the landing-record construction and returns that same already-computed record object; the record fields, the refusal string, the blocker detection with the withdrawn-hold filter, and every other gate or evidence leg are unchanged from the parent.
I verified against the deployed landing.ts that this keeps a genuine open-blocker refusal fail-closed: ok stays false, canMerge stays false, and the refusal text is byte-identical, while the census row now retains the measured dangerous class and the exact-head verdict ids instead of falling back to class unknown.
The new regressions are red-first: the pure-parser test reproduces the omitted record on parent landing.ts and asserts the refused record deep-equals the successful baseline record, and the route-fake census test asserts canMerge false with the genuine id-less tenant-filter blocker while classKnown, dangerous, and verdict ids #1676 omniroute/deepseek-flash and #1674 omniroute/kimi-pool (premium) are preserved in the rendered row.
The #1672 wrapped No-blocker denial is exercised as a negative control in both harnesses and contributes zero findings, so the genuine id-less blocker remains the sole leg-4 cause and no second blocker is smuggled in.
Full validation on this head is green: CI run #205 pass with 14/14 named jobs on this exact sha, and the diff contains no API, index, types, verdict, or deployed-extension changes.
No blocker open.