chore: update handoff — friction-log inbox graduated to #70-#77; reports/ contract settled - #81
chore: update handoff — friction-log inbox graduated to #70-#77; reports/ contract settled#81topij wants to merge 3 commits into
Conversation
Session block for 2026-07-27, six friction entries, and an archive sweep
(--keep 4; the default 6 was a no-op at 421/400 lines, which is the logged
friction reproducing a third time).
The friction worth reading first:
· a mutation harness that restores outside `finally` leaves the tree mutated
— #50's hazard by a route #50 does not describe, and the .pyc framing is
what made a hash-verified restore look sufficient (H);
· a negated closing keyword got re-armed while documenting the last one, so
the rule needs a mechanical grep in pr-watch/wrap-up rather than a habit (M);
· the panel's isolated worktree pointed at the wrong ref for the sixth
consecutive launch across two sessions — contract item 7 should invert its
default from "verify" to "assume it is wrong and clone the target" (H);
· a review bot with an incremental model keeps a stale review across a
force-push or rewrite, and nothing warns at push time when re-requesting is
still cheap (M).
Claude-Session: https://claude.ai/code/session_01PWoYsKTB9fBp4knZbXqbHc
The 2026-07-27 archive run moved the Phase 3b block into the history file, which made a sentence already IN that file — "see the Phase 3b block, still live in kit-handoff.md" — false in a second way: the target is now in the same document as the reference. The friction log already carried the sweep's cross-reference defect from the previous run. That entry proposes warning on (above|below) references inside MOVED blocks; this instance is the mirror case, where the moved block was the reference's target rather than its location, so the check has to cover both. Claude-Session: https://claude.ai/code/session_01PWoYsKTB9fBp4knZbXqbHc
The wrap-up block asserted things the artifacts contradict. Corrected: · `#36` MISCITED. It is pre-push's coverage gap, not init.sh's, and the handoff had promoted that error into its ▶ Next line. No issue tracks init.sh coverage at all — filing one is now the first step, and #67's body (where I first made the error) is corrected too. · "GitHub matches a closing keyword regardless of context" is FALSE, and measuring it changed the proposed fix. closingIssuesReferences is empty for a PR body carrying a backticked `Closes #61`; #63's un-backticked "Does NOT close #60" did fire. Inline code spans are excluded, so the hazard is negated PROSE — and the grep this log proposed would have fired on every legitimate backticked reference. · "372 passing tests missed the four regressions" — the 372-test suite did not exist yet. It contains 15 tests written in RESPONSE to those findings. The suite that missed them had 355, and the mutation run credited alongside it ran against a tree the regressions had already been reverted from. · "four regressions" was asserted and never enumerated; now named. · "sixth consecutive launch" — 4 last session + 5 this session is 9, and the entry contradicting it sat in the same file. · contract item 5 does not warn about stale .pyc (that is #50 alone); it warns about false kills. Both frame the hazard as a wrong RESULT, and neither says the repo may be left broken — which is the actual gap. · a round-2 finding was credited to round 1, in the entry whose whole point is per-round disjointness. It could not have been round 1: the defect was a false sentence in the commit message describing round 1's outcome. · "byte-identical to main" said of a function whose docstring grew 25 lines; the BODY is byte-identical. "#61 reopened" — it was never closed. And the "9-form parsing table" is a 5-row table of 9 forms. Also fixed: a cross-reference in kit-handoff-history.md that this session's own archive sweep invalidated, and which the previous sweep had written. Claude-Session: https://claude.ai/code/session_01PWoYsKTB9fBp4knZbXqbHc
|
Warning Review limit reached
Next review available in: 29 minutes 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: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Closing immediately — this PR is destructive and was opened by accident. What happenedThe branch name Because that stale branch was cut from
Net: The branch is NOT being deleted
The real wrap-up for this session is being opened on a non-colliding branch. |
Session shipped #78 (13 un-graduated entries -> 8 issues, friction log 190 -> 50 lines) and #80 (gitignore reports/, settling the contradiction filed as #79). Five friction entries, two at H. First: make test runs the full 372-test suite in 22s and nothing in the repo points at it, which is how a false "tests were not run locally" claim reached a merged PR body. Second: the wrap-up branch pattern collides on a same-date session, and gh pr create then opened #81 against the stale remote branch -- a diff that would have reverted both of the day's merges. #81 closed unmerged; the stale branch left intact because its commits are not ancestors of main. Also the Makefile comment describing a pre-push test gate that does not exist, the triage skill defaulting to a draft PR that CodeRabbit skips, and two more instances of a rate-limited CodeRabbit reporting pass. Archive sweep ran at --keep 4 (403 -> 319 lines, one block moved). The default --keep 6 no-opped on 5 blocks -- a fourth occurrence of #74. Independent review waived under the operator's existing docs-only scope; no review receipt recorded.
End-of-session wrap-up for 2026-07-27 (second session of the day).
Handoff
New session block: the friction-log sweep in #78 and the
reports/contract settled in #80,with what was decided about waiving a rate-limited reviewer and about using closing
keywords deliberately rather than avoiding them.
Archive sweep ran at
--keep 4— 403 → 319 lines, one block (2026-07-26 #26, overnight) moved tokit-handoff-history.md. The default--keep 6no-opped on 5blocks first: a fourth occurrence of #74, recorded on that issue
along with the
--keep/line-count table showing the value was computable rather thanguessable.
Two relative cross-references in the new block were written as named pointers
("the 2026-07-27
#59+#61.1session") rather than "the block below", specifically sothe sweep could not orphan them — that is #73, filed earlier today, applied to its own
author's text.
Friction log — four entries
make testruns the full suite in 22s and nothing in the repo points at itMakefilecomment claims a pre-push test gate that does not existpassThe first is the one that cost something this session.
uv run pytestandpython3 -m pytestboth fail with messages that read as "pytest is unavailable here";make testsupplies its own dependencies and passes 372 tests. Not knowing that put afalse "tests were not run locally" claim into #80's merged body, since
corrected.
That is the failure mode #54 exists for, so the proposed fix is a root
CLAUDE.mdnaming
make testas the verification command.Verification
make test→ 372 passed in 21.50suv run scripts/check_doc_budget.py→ both docs green (319/400, 91/150)(above|below)-style pointers → only the deliberate note aboutthem; nothing orphaned
Review note
CodeRabbit has been rate-limited on this plan all session and reviewed neither #78 nor
#80. If it is still limited when this PR polls, the same operator decision applies — and
this diff is docs-only (three markdown files, no code, no engine changes).