Repository navigation
fix(converge): re-run records-harness after tools installs an agent - #2333
Conversation
records-harness deploys the instruction files of the agents on PATH and runs before tools, so an agent tools installs had none until the next converge: on a fresh macos-latest runner the second run deployed copilot's instructions and was not a no-op. A reconciler can now declare the step whose change re-runs it (Revisiter); records-harness revisits after tools. A converged machine and a plan revisit nothing.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 8 minutes. View limit details
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 |
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
⚙️ Agent run details
|
Review triageReviewed by pr-agent (github-actions, on fc0fa74). No other reviewer output.
|
#2013 D11 (owner, 2026-10-10). Found by the from-zero job (#2331, run 38107714925) on
macos-latest: the second converge was not a no-op.records-harnessruns beforetoolson purpose (#2016, instructions-first), but it only deploys the instructions of agents already on PATH. In the first run,toolsinstalls copilot afterrecords-harnesshas skipped it. The same will happen to claude, pi and agy once they install through mise (P5c).Change
converge.Revisiter: a reconciler declares the step whose change re-runs it.Runapplies it again right after an apply in which that step reported a change, as its own report entry (after tools: …).records-harnessdeclaresRevisitAfter() = "tools".toolsreports no change;The owner declined two alternatives:
records-harnessaftertools, which opens a window where an agent has no instructions;compile-harness.shas well, since it also gates on PATH.Evidence
macOS arm64:
go build,go vet,GOOS=windows go vet,go test ./...all ok.New tests:
TestRun_AChangeRerunsTheStepsThatRevisitItTestRun_NoChangeOrAPlanRevisitsNothing, which includes a step another OS runsTestRun_AFailedRevisitStopsTheRunTestRegistry_RecordsHarnessRevisitsAfterToolsMutations, each one caught:
The end-to-end proof is X1's idempotence step on its next macOS run after this merges.
Knowledge
Revisiterdoc comment plus the D11 entry inspecs/PLAT-001b-one-entrypoint/verification.mdEvidence output (fc0fa74, macOS arm64)