Repository navigation
diff: the pane reads every file's hunks with one git process, where it started one per file - #98445
Merged
Merged
Conversation
…t started one per file
poteat
enabled auto-merge (squash)
September 30, 2026 19:15
stevenpetryk
approved these changes
Sep 30, 2026
konsta95
added a commit
to konsta95/claude-code
that referenced
this pull request
Sep 30, 2026
poteat's batched hunks read (one git child for every drawn file), fitted into the bundle's body ownership: - fetchBodies: each call reads its new rows with one pinned.fetchHunks(data, files) run through lifecycle.runBody. A read skipped before it starts is not a Git failure. Its answer is shown only while its owner and stamp are current. bodyLoads becomes anthropics#98445's set of asked paths. - Lifecycle: one body read per view at a time, two across views as before. BODY_FETCH_CONCURRENCY, which anthropics#98445 deletes, set the old per-view limit. - fetchHunks takes an optional isWanted, and a read that can no longer be shown starts no further child for the paths past MAX_PATHSPEC_CHARS or left unread by a cut answer. Without it, a split read released after /clear or a base switch started its second child for the ended view. - register() doc and openOnRestore: the bundle's text and epoch guard, as in the anthropics#98357 merge. Tests: - owner-lifecycle: the three BODY_FETCH_CONCURRENCY tests count batched children, and the lifecycle world records every asked path. The skip test now queues its refresh's batch behind two held batches, so /clear skips it. New: a split read revoked by /clear or a base switch starts no further child. - fetch-hunks: a read no longer wanted asks no further child. Co-authored with a harness running Claude and Codex teams. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: 16cb7844-98c6-4af7-b67a-3e9d16705e7f
konsta95
added a commit
to konsta95/claude-code
that referenced
this pull request
Sep 30, 2026
main now has poteat's anthropics#98374, anthropics#98445 and anthropics#98357 as squash commits (9778ad7, 292c5b8, 525d3b3). Its mods/ is identical to 732e167 with the three PR heads merged, which this bundle has already merged from the heads. The six files that conflict keep the bundle's text from the first parent, so mods/ is unchanged by this merge. CHANGELOG.md and feed.xml come from main. Co-authored with a harness running Claude and Codex teams. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: 16cb7844-98c6-4af7-b67a-3e9d16705e7f
This was referenced Sep 30, 2026
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.
Summary
Up to fifty processes after every tool call become one. It matters most where starting a process is slow, as on Windows: one process can fail or run out of time where up to fifty could.
Notes
git diff --raw -z -pover the drawn files' literal paths prints their names, NUL-ended and unquoted, then every patch. The n-th patch is the n-th name's; no name is read out of a line, so a space, a quote, a newline, letters outside ASCII orb/in a name cannot move a body.+++ b/<name>whatever prefix a person's git config sets.core.quotePathanddiff.renameschange nothing: every pin of the old call is kept.Test Plan
claude plugin test mods/diffpasses/diff, watch the process list through a tool call: onegit diffreads the hunkswith space.txt,quo"te.txtandx b/x.txt: each shows its own hunksChangelog