Repository navigation
fix(git): reduce queries and preserve data across execution hosts - #24602
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (21)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughThe pull request updates Git process execution, including admission, timeouts, cancellation, output capture, and SSH configuration handling. It changes repository and worktree inspection, ref resolution, branch safety, and SSH worktree base fetching. Source-control changes update diff parsing, blob error handling, and bulk staging, unstaging, and discard operations. The pull request also changes CI checks and source-control confirmation text and rename paths. Priority: ➖ Normal Merge Risk: ⚪ Minimal · up to The reviewed changes are mostly tests and fixtures, and the earlier concerns about clone output limits and WSL SSH startup have been addressed. No actionable merge-blocking risk remains in this increment. Live WSL and SSH behavior was not exercised. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The reviewed paths strengthen cancellation and output handling while preserving configured SSH behavior. No new command or credential authority was established. Some uncertainty remains around failed process termination, recovery, and affected repository mutations. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
Hardening Proposals
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
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 |
There was a problem hiding this comment.
ℹ️ No critical issues — one rough edge worth a look.
Reviewed changes
- Shared Git primitives.
git-command-classification(verbatim move fromwsl-direct-git-read-commands, plusdiff-tree),git-ssh-policy-env,git-admission-scheduler,git-change-list,git-common-directory,git-worktree-admin,git-default-base-ref,git-blob-absence,git-pathspec-stdin, andgit-command-timeoutnow live undersrc/shared/and are re-exported by the main-process modules they replace. - Fewer subprocesses. Change name + numstat collapse into one NUL-delimited
--raw --numstat -zquery across branch/commit compare (main + relay); repo registration batches booleans/paths; default base ref resolves in onefor-each-ref; branch/remote/upstream/push-target reads share oneconfig --list -zsnapshot. - Index authority. Stage/unstage/restore send NUL-delimited literal pathspecs via
--pathspec-from-file=-;unstagemoved togit reset;discardrestores from the index (drops--source=HEAD) so staged content survives; renames mutate both old and new paths. - Worktree safety. Host-owned lock and detached rebase/bisect reads (
annotateWorktreeLocksFromAdmin,isBranchInDetachedWorktree), no implicit force-removal of submodule worktrees, and a portable case-folded branch-collision guard. - Relay/SSH. Every relay Git command now goes through the admission scheduler and
runGitToTermination(byte capture, output-limit kill, read deadline, clone progress viaobserveStderr, cancellation propagation); network commands discover configuredcore.sshCommand/ssh.varianton both hosts.
I verified the load-bearing compatibility claim with the repo's own harness: --pathspec-from-file/--pathspec-file-nul exist for add, reset, and restore as of Git 2.25.0 (git-scm release notes), CI's 2.25.5 lane runs the new stdin test unguarded, and no fallback is needed. The new maxEntries bound on GitStatusReadLeaseOwner is safe (overflow entries are inert and their load rejections stay handled); the only consequence of the bound itself duplicates the old InFlightPromiseDedupe overflow behavior.
deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏
f7d1a88 to
4ea5ee5
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Advanced
Run ID: f66b126f-e305-458f-aaed-8d909c29c2d6
📒 Files selected for processing (184)
.github/actions/prepare-git-compatibility/action.yml.github/workflows/mobile.yml.github/workflows/pr.ymlconfig/scripts/ci-background-step-barriers.test.mjsconfig/scripts/git-binary-compatibility-workflow.test.mjssrc/main/git/command-runner/git-command-timeout.test.tssrc/main/git/command-runner/git-command-timeout.tssrc/main/git/command-runner/git-exec-admission-lifetime.test.tssrc/main/git/command-runner/git-exec-file.tssrc/main/git/command-runner/git-process-env.tssrc/main/git/command-runner/git-spawn.tssrc/main/git/command-runner/git-ssh-policy-env.tssrc/main/git/command-runner/git-subprocess-admission.test.tssrc/main/git/command-runner/git-subprocess-admission.tssrc/main/git/git-network-safety-real-git.test.tssrc/main/git/remote.test.tssrc/main/git/remove-worktree.test.tssrc/main/git/repo-branch-conflict-batched-probe.test.tssrc/main/git/repo-branch-conflict.test.tssrc/main/git/repo-branch-conflict.tssrc/main/git/repo-default-base-ref.tssrc/main/git/repo-default-remote.test.tssrc/main/git/repo-detection-batching.test.tssrc/main/git/repo-detection.tssrc/main/git/repo-remote-drift.test.tssrc/main/git/repo.test.tssrc/main/git/repo.tssrc/main/git/runner-buffer-cancellation.test.tssrc/main/git/runner-command-exec.test.tssrc/main/git/runner-network-ssh-policy.test.tssrc/main/git/runner-windows-host-environment.test.tssrc/main/git/runner-wsl-direct-read.test.tssrc/main/git/runner-wsl-login-shell-capture.test.tssrc/main/git/source-control/blob-absence-real-git.test.tssrc/main/git/source-control/branch-change-entries.tssrc/main/git/source-control/bulk-pathspec-command-line-budget.test.tssrc/main/git/source-control/bulk-pathspec-stdin.test.tssrc/main/git/source-control/discard-changes.tssrc/main/git/source-control/effective-upstream-status-probe.tssrc/main/git/source-control/file-diff.tssrc/main/git/source-control/git-blob-read.tssrc/main/git/source-control/staging-discard-index-safety.test.tssrc/main/git/source-control/staging.tssrc/main/git/source-control/status-line-stats.tssrc/main/git/source-control/submodule-status.tssrc/main/git/source-control/wsl-tracked-pathspec-banner.test.tssrc/main/git/status-branch-compare.test.tssrc/main/git/status-diff-settled-cache.test.tssrc/main/git/status-diff.test.tssrc/main/git/status-discard-and-bulk-staging.test.tssrc/main/git/status-submodule.test.tssrc/main/git/status-wsl-pathspecs.test.tssrc/main/git/status.test.tssrc/main/git/upstream.test.tssrc/main/git/upstream.tssrc/main/git/worktree-branch-removal-host.test.tssrc/main/git/worktree-branch-removal.tssrc/main/git/worktree-create-git-executor-real-git.test.tssrc/main/git/worktree-create-preparation-real-git.test.tssrc/main/git/worktree-graph-listing.test.tssrc/main/git/worktree-list-porcelain.test.tssrc/main/git/worktree-list-reader.tssrc/main/git/worktree-removal.tssrc/main/git/worktree-safety-real-git.test.tssrc/main/git/wsl-direct-git-read-commands.tssrc/main/gitea/client.test.tssrc/main/github/default-branch-stale-pr.test.tssrc/main/gitlab/client-mr-test-harness.tssrc/main/ipc/repos-add-linked-worktree.test.tssrc/main/ipc/repos-remote-base-ref-queries.test.tssrc/main/ipc/repos-remote-test-harness.tssrc/main/ipc/repos/local-repo-registration.tssrc/main/ipc/repos/repo-clone-lifecycle.tssrc/main/ipc/worktree-remote-ssh-branch-conflict.test.tssrc/main/ipc/worktree-remote.tssrc/main/ipc/worktrees-ssh-base-ref-resolution.test.tssrc/main/ipc/worktrees-ssh-branch-conflict-suffixing.test.tssrc/main/ipc/worktrees-ssh-create-base-prefetch.test.tssrc/main/ipc/worktrees-ssh-local-base-refresh-overlap.test.tssrc/main/ipc/worktrees-ssh-local-base-refresh.test.tssrc/main/ipc/worktrees/removal/register-worktree-forget-handlers.tssrc/main/providers/working-directory-validation.tssrc/main/runtime/repo-worktree-admin-fingerprint.test.tssrc/main/runtime/repo-worktree-admin-fingerprint.tssrc/main/runtime/runtime-git-status-admission.test.tssrc/main/runtime/runtime-preserved-branch-cleanup.tssrc/main/runtime/runtime-repository-clone-controller.tssrc/main/source-control/repo-default-branch.test.tssrc/main/text-generation/pull-request-context.tssrc/relay/git-buffer-overflow.tssrc/relay/git-command-admission.test.tssrc/relay/git-diff-cancellation.test.tssrc/relay/git-handler-blob-readers.test.tssrc/relay/git-handler-branch-cleanup.tssrc/relay/git-handler-branch-diff-ops.tssrc/relay/git-handler-command-termination.tssrc/relay/git-handler-commit-diff-ops.tssrc/relay/git-handler-commit-metadata.test.tssrc/relay/git-handler-comparison-operations.tssrc/relay/git-handler-diff-blobs.test.tssrc/relay/git-handler-diff-retry.test.tssrc/relay/git-handler-discard-operations.tssrc/relay/git-handler-object-diff-operations.tssrc/relay/git-handler-operation-context.tssrc/relay/git-handler-ops.tssrc/relay/git-handler-push-target.test.tssrc/relay/git-handler-read-operations.tssrc/relay/git-handler-registration.tssrc/relay/git-handler-status-ops.tssrc/relay/git-handler-submodule-ops.test.tssrc/relay/git-handler-submodule-ops.tssrc/relay/git-handler-working-tree-changes.test.tssrc/relay/git-handler-worktree-change-operations.tssrc/relay/git-handler-worktree-list.tssrc/relay/git-handler-worktree-operations.tssrc/relay/git-handler-worktree-ops.test.tssrc/relay/git-handler-worktree-paths.test.tssrc/relay/git-handler-worktree-remove.tssrc/relay/git-handler.tssrc/relay/git-porcelain-local-parity.test.tssrc/relay/git-push-target-local-parity.test.tssrc/relay/git-status-branch-line-total.test.tssrc/relay/git-status-upstream-negative-cache.tssrc/relay/git-stdout-stream.test.tssrc/relay/git-stdout-stream.tssrc/relay/relay-command-env.test.tssrc/relay/relay-command-env.tssrc/renderer/src/components/right-sidebar/source-control-discard-confirmation.test.tssrc/renderer/src/components/right-sidebar/source-control-discard-localization.test.tssrc/renderer/src/components/right-sidebar/source-control/commit/discard-all-sequence.tssrc/renderer/src/components/right-sidebar/source-control/commit/discard-confirmation.tssrc/renderer/src/components/right-sidebar/source-control/commit/rename-mutation-paths.test.tssrc/renderer/src/components/right-sidebar/source-control/commit/source-control-entry-mutation-failures.test.tsxsrc/renderer/src/components/right-sidebar/source-control/commit/use-bulk-actions.tssrc/renderer/src/components/right-sidebar/source-control/commit/use-entry-mutations.tssrc/renderer/src/components/right-sidebar/source-control/listing/section-file-list.tsxsrc/renderer/src/components/right-sidebar/source-control/listing/uncommitted-entry-row.tsxsrc/renderer/src/components/right-sidebar/source-control/listing/uncommitted-sections.tsxsrc/renderer/src/i18n/en-runtime-required.jsonsrc/renderer/src/i18n/locales/en.jsonsrc/shared/child-process/__fixtures__/child-process-import-allowlist.txtsrc/shared/child-process/__fixtures__/windows-console-visibility-allowlist.txtsrc/shared/child-process/bounded-output-sink.tssrc/shared/child-process/process-spec.tssrc/shared/child-process/run-process-bytes.test.tssrc/shared/child-process/run-process.tssrc/shared/child-process/windows-console-visibility.test.tssrc/shared/git-admission-candidate-heap.tssrc/shared/git-admission-node-compatibility.test.tssrc/shared/git-admission-scheduler.tssrc/shared/git-admission-state.tssrc/shared/git-admission-waiter-queue.tssrc/shared/git-binary-compatibility.test.tssrc/shared/git-blob-absence.test.tssrc/shared/git-blob-absence.tssrc/shared/git-branch-line-total.test.tssrc/shared/git-branch-line-total.tssrc/shared/git-change-list.test.tssrc/shared/git-change-list.tssrc/shared/git-command-classification.tssrc/shared/git-command-failure-text.tssrc/shared/git-command-timeout.tssrc/shared/git-common-directory.tssrc/shared/git-default-base-ref.tssrc/shared/git-effective-upstream.tssrc/shared/git-fork-sync.test.tssrc/shared/git-fork-sync.tssrc/shared/git-history.tssrc/shared/git-pathspec-stdin.tssrc/shared/git-push-target-resolution.tssrc/shared/git-resolution-binary-compatibility.test-cases.tssrc/shared/git-resolution-config-snapshot.test.tssrc/shared/git-rev-list-output.test.tssrc/shared/git-rev-list-output.tssrc/shared/git-ssh-policy-env.test.tssrc/shared/git-ssh-policy-env.tssrc/shared/git-status-read-lease-expiry.test.tssrc/shared/git-status-read-lease-owner.tssrc/shared/git-worktree-admin.test.tssrc/shared/git-worktree-admin.tssrc/shared/text-search.tssrc/shared/worktree/submodule-removal.test.tssrc/shared/worktree/submodule-removal.tssrc/shared/wsl-paths.ts
💤 Files with no reviewable changes (5)
- src/shared/worktree/submodule-removal.test.ts
- src/shared/child-process/fixtures/child-process-import-allowlist.txt
- src/shared/child-process/fixtures/windows-console-visibility-allowlist.txt
- src/shared/worktree/submodule-removal.ts
- src/relay/relay-command-env.ts
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review.
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
- Restored the relay hung-read expiry.
GitStatusReadLeaseOwnergained an optionalmaxInFlightMs; the relay diff dedupe passes30_000, so a renderer retry after its row timeout starts a fresh read instead of joining a still-hung one until the 120 s deadline. The expiry detaches without aborting existing callers, and the newgit-status-read-lease-expirysuite covers expiry, ownership after replacement, overflow, and timer cleanup. - Made clone
--progressdiagnostics overflow-safe.runGitToTermination/runProcess/createOutputSinknow acceptoutputCapture: 'tail'; the relay clone passes a 4 KiB cap andkillOnOutputLimit: false, so a chatty clone keeps its final fatal/progress tail instead of failing withgit output exceeded maxBuffer. Clone progress notifications still parse every chunk. - Raised the WSL SSH-config probe budget. The probe deadline is now
min(caller timeout, 10 s)on WSL andmin(caller timeout, 2.5 s)natively, so a cold login shell no longer dies before the network command starts while configuration failures stay closed. - Regenerated i18n for the index-preserving discard copy. Discard confirmations use semantic
sourceControl.discard.*IDs, the English runtime-required catalog is regenerated, and non-English catalogs fall back to the current English text. - Hardened the CI/fixture plumbing. Mobile pnpm entrypoints are serialized, the real-Git lanes pin
GIT_EXEC_PATHand a hermeticHOME/XDG_CONFIG_HOME, the baseline action builds thegit-submodulehelper set, and the worktree-safety fixture asserts the selected Git version.
I re-ran the touched suites locally (git-status-read-lease-expiry, git-handler-diff-retry, bounded-output-sink, growing-byte-buffer, runner-wsl-network-ssh-policy, git-handler-clone-progress-capture, git-command-admission, source-control-discard-localization, index-safety); all passed. The one prior Pullfrog finding and both CodeRabbit findings are addressed by these commits and their threads are resolved.
deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏
…modules Drop the automatic --force retry. A forced removal deletes the submodule's repository under .git/worktrees/<id>/modules, including commits, local branches and stashes that were never pushed, and the parent's dirty check cannot see them (the retry #24602 removed for the same reason). Instead classify Git's "working trees containing submodules cannot be moved or removed" refusal as a new Force Delete reason, 'submodules', after the lock check and the force guard. The renderer classifies the error string, so older SSH and paired hosts get it too with no wire change. The toast, the delete dialog and the Space manager row show one plain warning naming what Force Delete would lose instead of Git's text. Keep --ignore-submodules=none in the pre-teardown dirty check so a user's ignore setting cannot hide submodule edits from it. Replace the retry test with one real-Git test: a clean checkout whose submodule holds a local-only commit is refused without --force, stays registered, keeps the commit, and its refusal classifies as 'submodules'.
…t has submodules (#28878) * fix(worktree): remove a clean checkout that contains submodules Git refuses to remove any worktree with an initialized submodule unless --force is set, even when nothing is uncommitted. After that specific refusal, re-check the checkout including files inside the submodule and pass --force once. A dirty submodule still blocks the delete. A second --force is not added, because that would also clear a Git lock. * fix(worktree): offer Force Delete for a checkout Git refuses over submodules Drop the automatic --force retry. A forced removal deletes the submodule's repository under .git/worktrees/<id>/modules, including commits, local branches and stashes that were never pushed, and the parent's dirty check cannot see them (the retry #24602 removed for the same reason). Instead classify Git's "working trees containing submodules cannot be moved or removed" refusal as a new Force Delete reason, 'submodules', after the lock check and the force guard. The renderer classifies the error string, so older SSH and paired hosts get it too with no wire change. The toast, the delete dialog and the Space manager row show one plain warning naming what Force Delete would lose instead of Git's text. Keep --ignore-submodules=none in the pre-teardown dirty check so a user's ignore setting cannot hide submodule edits from it. Replace the retry test with one real-Git test: a clean checkout whose submodule holds a local-only commit is refused without --force, stays registered, keeps the commit, and its refusal classifies as 'submodules'. * fix(worktree): clarify the submodule Force Delete warning and hide View for it The warning now says Git deletes the workspace only with Force Delete, the submodule refusal no longer offers View (there are no changes to show), the real-Git test pins that Force Delete then succeeds, and a comment no longer describes the removed retry. * fix(worktree): name submodules when a changed submodule blocks the delete, and clear a stale delete toast With a commit inside a submodule that the parent has not recorded, the parent sees `M vendor`, so Orca's dirty check refused first with the generic "It has changed files". Force Delete then destroyed the never-pushed submodule commit without warning. On a dirty refusal the check now asks `git status --porcelain=v2` whether a changed entry is a submodule, and if so reports a refusal the app shows with the submodule Force Delete warning. The detail keeps the dirty sentence, so older apps still offer Force Delete. After the Space manager deleted a workspace (its row Force, or a later delete), the failure toast for that workspace stayed up and still offered Force Delete. A Space delete now dismisses it. * fix(worktree): warn about submodules on any refused delete of a checkout that has them Review found the warning still vanished when a submodule commit was already recorded and some other file was dirty: the parent's status shows no submodule change, yet Force Delete destroys the commit. The changed-files check now asks whether the checkout has a populated submodule (a .gitmodules path holding a .git, as Git's own refusal checks) instead of whether one changed. The refusal keeps the changed paths after the detail, and View stays available since there are changes to view. * test(worktree): mock the .gitmodules probe as missing in the preflight unit tests * refactor(worktree): attach the dirty-check status without a type assertion * fix(worktree): key the delete failure toast by host and worktree id A Space delete on one host must not dismiss another host's failure toast for a worktree with the same id. * fix(worktree): dismiss the failure toast by the store row's host after a Space row Force

ELI5
Opening a repository, comparing branches, and staging many files now launch fewer Git processes. Native and SSH work also preserve staged data, configured SSH identities, and worktree-owned history when operations fail or are canceled.
What Changed
Why
These changes remove repeated subprocess work at its shared execution boundaries. Existing helpers are extended or moved into shared modules rather than adding another runner, scheduler, cache, or RPC. Correctness checks remain where they protect a fresh snapshot or retained data; measured safety costs are included below.
Most added lines are regression tests and fixtures; module moves account for much of the apparent production churn. The final clone and WSL repairs add a net 34 production lines across six existing modules. There is no new reliability-registry entry; executable regression tests and CI contracts cover the behavior.
Linked Issue
Follow-up to #24346 (merged). Requested application-wide Git performance and safety audit; no new tracking issue.
Visual Proof
Real Source Control controls in a hidden, isolated macOS Electron app. Discarding unstaged edits retains the staged version; unstaging a rename removes both names from the index and preserves the new file. Git assertions verified file/index/HEAD contents. Native window visibility/focus checks recorded zero activation calls.
After rename unstage:
Benchmarks
Actual Git 2.55.0 on macOS, paired before/after samples with warmup on the same fixtures. Other validation was running, so wall times describe this host rather than a universal guarantee. Counts are actual subprocesses for the stated operation. The comparison baseline's two queries already ran concurrently.
The 1,200-file comparison reduces median child CPU from 30.94 to 19.66ms; p95 wall time is 37.80 → 33.45ms. Combined output grows 55,800 → 93,000 bytes, within the existing bound. Parallel non-root blob reads keep two processes and saved roughly 30–43ms across three real project blobs; root commits only read one side.
Final clone repair: a controlled wrapper around an actual local Git clone emits 12 MiB of progress after Git succeeds. The pre-audit path succeeds; the intermediate capped path incorrectly rejects and stops progress at 42%; the repaired path succeeds with matching cloned HEAD, 100% progress, final diagnostics, and no live child after settlement. Clone capture retains 4 KiB per stream instead of materializing up to 10 MiB. For the actual capture sinks (twelve preallocated 1 MiB chunks, final buffer materialization, 30 alternating pairs after five warmups), median bookkeeping wall time is 0.293→0.015ms, CPU 0.342→0.017ms, and captured bytes 10,485,760→4,096. This is a capture microbenchmark, not clone or network latency. Parsed Git output still terminates and rejects on overflow.
The restored relay retry-expiry timer adds no Git commands. For 4,096 immediately completed leases in 32 batches of 128 (30 alternating pairs after five warmups), actual shared-class median wall time is 0.91→1.38ms and CPU 0.95→1.42ms. This is lease bookkeeping, not network or UI latency.
Safety costs are deliberate and measured:
Configuration savings do not imply fewer SSH round trips: both implementations execute all Git subprocesses inside one operation RPC. The host-admission benchmark measures batch completion, not UI latency. Unchanged discard classification/cleanup reads are excluded from the tracked restore row.
Fresh localized proof after the catalog repair: the French dialogs use the current English fallback; Discard (MM→M) and Restore (MD→M) both preserve staged bytes/index IDs and leave HEAD unchanged. The rebuilt app stayed hidden and unfocused with zero presentation/activation calls.
Testing
I manually tested these changes locally
Automated tests added/updated
Final repaired production source: 5,362 passed / 91 opt-in skips, 544 suites across three disjoint runs covering Git, process capture, repository/worktree IPC, host routing, provider integrations, and Source Control. Additional focused clone integration tests cover noisy success, final failure diagnostics, and cancellation; the WSL suite adds 15 startup/policy cases.
Latest fixture-only CI repair: 1,503 passed / 1 opt-in skip across eight full suites, including the entire runtime service plus Azure DevOps, Bitbucket, hosted-review eligibility, default-base resolution, and branch-collision contracts. All 15 original CI failures were reproduced before repair. Their fixtures still answered the former default-base queries, omitted the new Unicode collision catalog, or expected history without signature/color suppression. Updated nine test/fixture files to provide the actual NUL-delimited snapshots and exact command expectations; startup, base-selection, provider, WSL routing, deadlines, and workflow assertions remain intact. No production code changed; existing benchmarks remain applicable. Full typecheck and changed-code quality pass.
40/40 contracts on each of real Git 2.25.5, 2.38.1, and 2.49.1: native macOS baseline and network-disabled Linux containers. Both suites now assert the selected version; Docker fixtures use the host UID/GID, and baseline submodule scripts are built and cached. CI runs both suites at all three boundaries.
Full
pnpm tc, changed-code quality/type-aware/React/design gates, staged oxlint/formatting, andgit diff --checkpass. Full anti-slop analysis also passes; the remaining full-repository lint stages run in CI.Full
pnpm buildpassed on the latest rebased branch (desktop, relay, CLI, web, mobile web, and native host targets).Real regression coverage includes populated submodule retention, packed/Unicode branch aliases, detached rebase/bisect use, empty/corrupt blobs and repair, literal/newline paths, unborn HEAD, rename unstage, configured SSH command/variant precedence, canceled/overflowing children, and process capacity retained until exit.
Repaired a pre-existing real-Git cancellation-test race: wait for the fetch barrier subscription before aborting, rather than treating a lock-file marker as proof that registration has finished. The original failure and the repair were reproduced on both parent and current source; all 19 real preparation tests pass with cleanup assertions unchanged. Production is unchanged by this final fixture repair.
Updated discard descriptions to fresh message IDs and registered their current English source, so existing non-English HEAD/all-changes translations cannot describe the new index-preserving behavior. The generated runtime subset is current. 643 Source Control and i18n tests pass across 72 suites, including real catalog loading for both descriptions in all six built-in locales; catalog, extraction, and coverage checks pass.
Fixed a reproduced mobile CI dependency-staging race by joining the production typecheck before the next pnpm entrypoint; both checks still run. Main independently supplied the E2E test typing fix during the final rebase.
Actual production relay entry bundled and loaded with
os.availableParallelismunavailable on an existing Node 18 runtime; scheduler capacity falls back to two and admission acquire/release works.Actual platform coverage: native macOS Git and hidden Electron; Linux Git 2.25.1 in a network-disabled container; native/relay real-Git parity and Windows/WSL routing/quoting/cancellation fixtures. Live Windows and a live SSH deployment were not available locally; Windows inbox/preview OpenSSH, macOS OpenSSH, WSL, and cross-version host CI lanes remain required.
Full local
pnpm lintstops at five pre-existing mobile import-cycle warnings after mobile dependencies are installed; the entire mobile tree matches the baseline. Root lint and full anti-slop pass; the remaining lint stages pass separately, and the changed-code gate reports zero new findings. CI runs its native cycle audit before the mobile install.Review
Final adversarial audit: two independent direct Codex 6.1-sol ultra reviewers cross-referenced the cloned Git source; the merged changes retain their cleanup, host, and compatibility guards. A final fully paginated bot audit verifies all original threads resolved and all original head checks successful or intentionally skipped. Merged follow-up #24945 preserves configured SSH quoting and complete review drafts, protects auxiliary branches reserved by rebase update-refs, reuses compact diff parsing, and fences superseded queued maintenance. It passed two independent final 78-file reviews, 55 exact-head CI checks with nine intentional skips, real Git 2.25.5/2.55.0 contracts, and an isolated branch-built public CLI smoke. Its benchmarks and explicit P2/residual limits are in that PR; the benchmark results above describe this original PR.
Two independent direct Codex 6.1-sol ultra review loops, plus a third Codex cross-review and parent review. Pullfrog reported lost 30-second hung-read expiry; the opt-in relay expiry is restored without aborting existing leases. Eleven new tests cover all three diff endpoints, replacement ownership, and timer cleanup, and two independent reviewers returned clean. Four additional findings-severity seats and four blind peer ratings unanimously classified the four retained gaps as P2, with no release blocker. The final readiness review used two additional independent direct Codex 6.1-sol ultra scopes and re-reviewed CI repairs and the latest main-branch relay interaction, with zero outstanding production candidates after the final catalog repair. The final CodeRabbit review also identified excessive clone progress being treated as parsed-output overflow and WSL login startup exceeding the SSH configuration probe deadline. Both were reproduced and fixed: clone-only bounded diagnostic tails reuse the existing buffer, and WSL policy startup gets a finite 10-second budget clamped by positive caller deadlines. Configuration failures remain closed and native probes retain their 2.5-second limit. Two independent direct Codex reviewers re-reviewed both repairs clean. Authors excluded their own implementation from independent verdicts. All reproduced P0/P1 findings were fixed and re-reviewed; final reviewed scopes have no outstanding P0/P1. The loops also fixed the confirmed filename-overflow, missing read-deadline, buffered WSL cancellation, and canceled-submodule-cache P2s.
The latest fixture-only CI repair was independently reviewed in full by two direct Codex 6.1-sol ultra reviewers, both clean. The reviewed nine-file diff is byte-identical after commit hooks; no production code or behavior assertion was changed.
Agent skill upstream boundary
Notes
Retained P2s and measured follow-up candidates:
Checklist