docs(ledger): record PR #1322 review outcome - #1401
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
📝 WalkthroughWalkthroughA single ledger entry was added to document the branch’s docs-only policy carve-out, merge context, passing self-checks, and fixture tests deferred to hosted CI. ChangesBranch review ledger
Estimated code review effort: 1 (Trivial) | ~2 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
@cursoragent resolve merge conflict |
|
Merge conflict on #1401 is cleared.
PR is MERGEABLE again (BLOCKED only while required checks catch up). |
Clear GitHub DIRTY/CONFLICTING from concurrent branch-review-ledger appends (union merge). Co-Authored-By: Cursor <cursoragent@cursor.com> Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
There was a problem hiding this comment.
🧹 Nitpick comments (1)
docs/branch-review-ledger.md (1)
1315-1315: 📐 Maintainability & Code Quality | 🔵 TrivialRun the required ledger lookup before merging.
npm run ledger:lookup -- pr-policy-caveman-fix-6875bb --scope "PR#1322"returnsNOT REVIEWED at this HEAD and scope.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/branch-review-ledger.md` at line 1315, Update the ledger entry for pr-policy-caveman-fix-6875bb to record the required ledger lookup before merging, including the command’s NOT REVIEWED result for PR `#1322` and its scope.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@docs/branch-review-ledger.md`:
- Line 1315: Update the ledger entry for pr-policy-caveman-fix-6875bb to record
the required ledger lookup before merging, including the command’s NOT REVIEWED
result for PR `#1322` and its scope.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 09deefa7-dd01-4efb-84f3-8aa19260c7cd
📒 Files selected for processing (1)
docs/branch-review-ledger.md
* fix(ci): distinguish a cancelled PR-required run from a real failure `cancel-in-progress` supersedes an in-flight run on every push, and the aggregate's require_* helpers lumped the resulting `cancelled` in with `failure`. The red was therefore indistinguishable from a genuine break at a glance. Measured cost: one 2026-07-30 session spent four separate investigations on `::error::changes result was cancelled` / `static-pr result was cancelled`, and PR #1401 merged straight through an unrelated red the repo had learned to ignore — which is the worse half, because a signal that is red for reasons unrelated to the diff trains everyone to click through the one time it is real. The aggregate now wires RUN_CANCELLED: ${{ cancelled() }}, reports a workflow-level cancellation once through a shared cancelled_error helper, and labels a cancelled job result as cancelled rather than as a plain failure. The message is actionable rather than merely accurate: it names the supersession, points at the newest run for the current head, and tells a reader who finds no newer run that the run was hand-cancelled, verified nothing, and must be re-run rather than merged past. The obvious fix was rejected as unsafe. Treating cancelled as neutral, or skipping the aggregate with `if: !cancelled()`, makes the red disappear — but GitHub counts a SKIPPED required check as PASSING, so a hand-cancelled run on the current head would become mergeable with nothing verified. That is also what #95's own stop rule forbids. So the result stays RED; only the diagnosis cost is removed, and `if: always()` is now pinned by a test with the reason recorded. Seven cases in tests/ci-cache-safety.test.ts EXECUTE the extracted aggregate script under synthetic job results rather than grepping the YAML, because the defect was behavioural and a structural assertion passed against it (#94). They cover the green baseline, workflow-level cancellation, a single cancelled job, a genuine failure keeping its plain message with no cancellation excuse, and the invariant that no cancelled required job can ever exit 0. Mutation-proven: three fail against the pre-fix aggregate, and one asserts the extraction is non-empty so a YAML restructure cannot make the group vacuously green. Verified: verify:cheap — Test Files 432 passed (432), Tests 4477 passed | 4 skipped (4481); check:github-actions, check:ci-scope, check:ci-triage, prettier all pass. Ledger #95 records the fix and the rejected approach. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012YRCXgX4AWZ579bKN6sk6b * fix(ci): drop the invalid cancelled() env expression that broke ci.yml My previous commit wired the workflow-level cancelled status function through an `env:` value. That is invalid: GitHub allows the status-check functions (success/failure/cancelled/always) only in `if:` conditions. The whole workflow file therefore failed to parse — the run was named `.github/workflows/ci.yml` instead of `CI`, created ZERO jobs, and reported a bare failure with no logs to read. Nothing local caught it, and that is the part worth fixing. It is valid YAML and an invalid Actions schema, so prettier, lint, typecheck, check:github-actions and all 432 unit files passed the broken version. It was visible only on hosted CI — exactly the gap I flagged as unverifiable when the first commit went up. The env expression was never needed. Reading each job's own `cancelled` result does the same work, because a supersession cancels the upstream jobs, so the first require_* call reports it. So the fix is a deletion, not a workaround. A new case in tests/ci-cache-safety.test.ts scans every file under .github/workflows/** and fails on a status-check function outside an `if:`. It caught a second instance immediately: the comment I had written to warn about the first mistake contained the offending expression, and `${{ }}` is interpolated inside `run:` blocks too, so that comment alone would have kept the file unparseable. The comment now describes the trap without spelling it. Verified: verify:cheap — Test Files 432 passed (432), Tests 4478 passed | 4 skipped (4482); check:github-actions passes; the guard is mutation-proven by reintroducing the env expression and watching it fail. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012YRCXgX4AWZ579bKN6sk6b --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>


Summary
npm run ledger:appendbut never committed before the source worktree was cleaned up.Verification
npm run check:branch-review-ledger— passed (1266 records, union merge active, no conflict markers/duplicates)Risk and rollout
🤖 Generated with Claude Code
Summary by CodeRabbit