feat(tools): per-write checkpoint + change card for edit & search_replace tools (B3a v2-8b, epic #1375) - #51
Open
easonLiangWorldedtech wants to merge 1 commit into
Conversation
Review statusThanks for contributing. This comment tracks the review sequence and the next action. Current step: Required CI passed. Waiting for automated review of the latest commit. If automated review does not start, a maintainer must restart it. Review-state labels are managed by this workflow; do not edit them manually. |
easonLiangWorldedtech
force-pushed
the
feat/fws-v2-8a-applydiff-wiring
branch
from
September 6, 2026 00:55
60c76ff to
2f6cb0a
Compare
easonLiangWorldedtech
force-pushed
the
feat/fws-v2-8b-editsearch-wiring
branch
from
September 6, 2026 00:55
e6133eb to
4945207
Compare
easonLiangWorldedtech
force-pushed
the
feat/fws-v2-8a-applydiff-wiring
branch
from
September 6, 2026 02:30
2f6cb0a to
77c435f
Compare
…lace tools (B3a v2-8b, epic Zoo-Code-Org#1375)
easonLiangWorldedtech
force-pushed
the
feat/fws-v2-8b-editsearch-wiring
branch
from
September 6, 2026 02:30
4945207 to
63d9b09
Compare
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.
What this PR does
Companion to #50 (v2-8a, apply_diff wiring). Threads the per-step change card through the remaining per-write file tools:
EditFileTool,WriteToFileTool: the per-write checkpoint write now threadsdiffStats, the verbatim approvaldiff, andautoApproved(B3a) socheckpointSavecan force the compact change card.EditTool,SearchReplaceTool: same threading for the edit / search_replace tools.editSearchReplaceTool.changeCard.spec.ts: shared change-card threading coverage for the edit/search_replace pair.ApplyPatchTool: awaits the patch checkpoint (no more fire-and-forget.catch(() => {})), threads per-filediffStats/diff/autoApprovedinto the whole-patch journal write, and retains approval diff/stats per change.This completes the B3a tool-wiring slice of epic Zoo-Code-Org#1375.
Line count / split rationale
789 changed lines (755+/34-) across 11 files — above the 400 soft design target, below the 1000 hard cap, and close to the ~750 pre-estimate planned for this unit (plan B10); the growth over the estimate is the added per-branch auto-approval threading tests. The five tools share one wiring shape (checkpoint write + change-card threading) and the specs are the tests of that wiring; splitting by tool would fragment one inseparable behaviour into five PRs with duplicated setup.
Not included here (later v2 PRs)
CheckpointSettings,SettingsView, locales) — v2-9.Local gates
--prune-suppressions --max-warnings=0on all 11 files: clean, suppression counts unchanged.60c76ff13): 84 mutants across the 5 changed files — 82 Killed, 2 Ignored (the two documentedStryker disable next-line StringLiteralexclusions inWriteToFileTool.ts), 0 Survived, 0 NoCoverage.Rebase note (round 23)
Rebased onto the current v2-8a head
2f6cb0acb(was60c76ff13). This PR's diff content is byte-identical across the rebase, and the Stryker diff gate mutates only changed diff lines — the outcome above therefore stands; no re-run required.