docs(rate-of-closure, #4103): refresh the handoff doc (and correct its mypy advice) - #4546
Merged
Conversation
…tate Twenty slices have merged since this was last accurate. The remaining-work table is re-measured against origin/main and now names the real blocker: the ~60 files left are not blocked on effort but on the camera-controls cluster, which is a reimplementation rather than a migration -- wiring CameraViewportMixin into simulation_view and flight_view passes 20 of 20 camera GUI tests while regressing three main-owned ones, and reproducing the branch's Face-On behaviour needs ~20 further ui/pyqt6 files that delete shipped work. Corrects one entry that was actively harmful. The doc told the next agent to check mypy files individually, which is exactly what made #4531 fail quality-gate: CI passes every changed file to one invocation with MYPYPATH=src, so per-file checking invents no-any-return findings CI does not have and hides the redundant-cast findings it does. The replacement gives the exact command, including that Python 3.12 is required. Adds the traps found since -- pathlib.write_text rewriting LF as CRLF, the detect_secrets scan/normalise ordering, and purely-additive files that still fail against main -- and balances the "branch is not uniformly newer" rule with its converse, since applying it blindly cost two good ports. Deletions are not disqualifying; the bar is main's whole suite green against the swapped-in version first, as #4542 and #4545 both cleared. 149 lines, inside the 150-line policy. No code changes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
dieterolson
enabled auto-merge (squash)
August 18, 2026 15:53
#4536 landed while this PR was open, so the table would have merged already stale. Re-measured against origin/main: 52 files, not ~60, and the split moved -- 19 tests, 18 web/src, 15 elsewhere. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Twenty slices have merged since
src/rate_of_closure/AGENT_HANDOFF.mdwas last accurate. Repo policy is that it's current-state-only and updated every PR, so this brings it back.The correction that matters
The doc told the next agent:
That advice is wrong, and following it is what made #4531 fail
quality-gate. CI passes every changed file to one invocation withMYPYPATH=src:src/python/src, so imports inside the changed set resolve. Checking files one at a time degrades those same imports toAny— it inventsno-any-returnfindings CI doesn't have, and hides theredundant-castfindings it does.Replaced with the exact reproduction, including that Python 3.12 is required (a 3.13 batch run hits the internal error and tells you nothing) and that CI excludes
tests/from mypy entirely.The remaining-work table, re-measured
It listed
ui/pyqt6andweb/as wholly outstanding. Re-measured againstorigin/main, ~60 files remain — and they are not blocked on effort but on one thing, which I established rather than assumed:Wiring
CameraViewportMixinintosimulation_viewandflight_viewpasses 20 of 20 camera GUI tests. It also regresses threemain-owned tests, and reproducing the branch's Face-On behaviour needs ~20 furtherui/pyqt6files that delete shipped work —flight_explorer_run.py(−324),flight_view_bundle.py(−200),club_view_render.py(−185),flight_view_inspector.py(−157). That makes it its own epic, not a slice.New traps recorded
pathlib.write_textrewrites LF files as CRLF on Windows — turned a four-line edit into an 834-line phantom diffdetect_secrets scanwrites native separators, so it must run before baseline normalisation, never afterPrimaryViewTabs.test.tsxandTorqueProfilePanel.test.tsxboth add lines, delete none, and fail againstmain's unchanged components. Hence the prune tooling now refuses to delete any file present onorigin/main.One rule rebalanced
The doc's "the branch is not uniformly newer than
main" rule is right, but applying it as an absolute cost two good ports. Added its converse: deletions aren't automatically disqualifying — the bar is runningmain's entire existing suite green against the swapped-in version before adding any new tests. #4542 (flight integrator) and #4545 (capabilityOptimizer) both cleared it.Verification
CLAUDE.mdorigin/mainrather than carried forward1.17.39)🤖 Generated with Claude Code