docs: correct the #781 release-cause design note after verification - #791
Conversation
The note was written from reading. Every claim has now been checked against the code, and the defect reproduced against a built CLI. Five things changed, each marked [revised] where it appears. - §5's recommendation. Design C was the base; both of its distinguishing mechanisms are rejected. `ReleaseScope` field arity encodes the count of addressed runs rather than the disposition, cannot carry a per-run third role, and cannot express prune's all-discarded batch. The ESLint ban is an admission rather than enforcement: unlike `Error.isError` the identifier is repo-owned and deletable, after which the exhaustive union is the enforcement. The result-keys graft has no consumer — `ReleaseRunbookResult` has exactly one reader in the tree and the value it builds has none. - §2 was a third too small. Six dispositions never reach `SessionService`; they call `projectRunbookRelease` directly inside the mutation runner's synchronous in-place session callback. That also tightens the policy function's contract from "pure" to "sync and in-place". - §6 was wrong about `popRunbookIfActive`. The chain it described cannot occur: the consume precedes the child's execution loop, so the child cannot have delegated while the intent is unconsumed; and push+mint is atomic, so in the window where a claim exists the child is already the stack top and the gated undo never runs. The asymmetry is still real, and the seam it wants is specified. - §7's idempotence property is false. A repeated retaining release reports `released`, not `not-found`, because retained claims count in the not-found test. - §8's step 3 preserved the defect. The stale premise is not the omitted option at execution.ts:398 but the two mode derivations upstream of it, which would compute the new vocabulary from the same false input. Adds §1.3 (the reproduction, and the narrower reachable trigger) and §9 (the loop releasing non-terminal runs, filed as #789). The diagnosis in §1-§3 held on every check and is unchanged. Refs #781, #788, #789
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 38 minutes Limit details: You’ve used all 2 included reviews currently available under your plan. You completed 59 included PR reviews in the past 7 days; at that activity level, included reviews refill at 2 reviews per hour. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
Warning
|
🧬 Mutation score (advisory)Hybrid mutation analysis: source changes use changed-line scopes (dedicated tests by default; ℹ️ Mutation scope planNo eligible source or test changes in this PR. No mutated source changes in this PR. |
Deploying rundown with
|
| Latest commit: |
4242e80
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://4124f702.rundown-7hl.pages.dev |
| Branch Preview URL: | https://781-design-note-corrections.rundown-7hl.pages.dev |
Corrects the #781 design note after verifying every claim in it against the code, and after reproducing the defect with a built CLI. The note was previously untracked, so this is its first commit rather than an overwrite of a published dated note.
Five corrections, each marked
[revised]in the file:SessionService; they project inside the mutation runnerpopRunbookIfActiveloses a live child's bearernot-foundreleased; retained claims count in the not-found testNew material: §1.3 records the reproduction and narrows the reachable trigger (an already-terminal loop entry, not an ordinary completion), and §9 records the loop releasing non-terminal runs.
The diagnosis in §1–§3 held on every check and is unchanged.
Docs only.
pnpm run verifystops atcheck:mdon 44 untracked markdown files under.agents/skills/and.claude/skills/— pre-existing, unrelated, and unresolved since before this branch. The changed file passesprettier --checkon its own, anddocs/superpowersis incspell.json's ignore list, so no other gate covers it.Refs #781, #788, #789.