Batch installer copies to reduce validation overhead - #807
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 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.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 11116e5cc1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
At Review decisions and evidenceThe regression wrote partial data and returned 23: before correction it damaged existing managed entries; afterward all existing entries and unrelated content remain, staging is removed, and 23 propagates. Six focused tests/22 assertions, all nine real copy-mode cases, complete lint, and independent review pass. Three new alternating Linux benchmark pairs measure median 2.835s baseline versus 0.880s patched, 68.9% faster for this one existing installer case. Full hosted runtime savings remain unmeasured. Replacement is sequential; no whole-install atomicity is claimed.
No ARG_MAX failure is observed at current pack size; optional chunking is not tracked and no follow-up issue was created. Codex and Claude original-wave feedback is accounted for; CodeRabbit explicitly skipped review. Future full-PR scans should start after this comment unless |
ReviewSolid, well-scoped change. One correctness note left as an inline comment: the per-item No security or scope concerns — the diff is the minimum needed to batch the copy and add regression coverage for the new failure paths. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1b1952e5e3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
ReviewReviewed Design: batching the per-child Scope: the diff is proportionate — no new flags, modes, or config surface, just the one function plus the tests that exercise its new failure paths (batching, symlinks, empty input, full-batch failure, partial-batch failure). No concerns there. Already discussed and resolved: the narrow window where New finding (left as an inline comment): interrupted runs (the process-group-termination case the PR description mentions reproducing) leave the No security issues found (source paths are always directory-prefixed, so no rsync option-injection risk from item basenames; nothing here handles untrusted input). |
…address-review * origin/main: Batch installer copies to reduce validation overhead (#807)
…ical-token-budgets * origin/main: Separate integration checks from full release verification (#808) Make address-review summaries human-ready (#795) Speed up PR validation for ordinary documentation (#806) Batch installer copies to reduce validation overhead (#807) Report oversized PR diffs as blocked preflight coverage (#748)
Why
Copy-mode installation starts one
rsyncprocess per managed child directory. Batching those paths removes repeated startup cost. Part of #726; suite sharding remains separate.What changed
Copy the existing source paths in one
rsyncinvocation into a temporary directory on the destination filesystem, then replace managed entries after copying succeeds. A failed copy preserves existing managed entries and unrelated content and propagates its error.Replacement proceeds sequentially: a failed rename can leave the current entry missing while later entries retain their old content. A process-group termination can leave inactive hidden staging; the reproduced case preserved installed content and allowed a successful retry. This does not claim whole-install atomicity.
How to review and verify
Review
copy_children_preserving_unrelatedand its six behavioral tests. Three alternating baseline/patched Linux runs of the existingtest_copy_mode_preserves_unrelated_agent_filescase measured medians of 3.722 seconds versus 1.727 seconds: 53.6% faster. This measures one installer case; full hosted CI savings remain unmeasured.Test plan
bin/validate, including installer and stack suites: PASS.deferred_to_update_changelog.Agent details
Current candidate and evidence
Candidate
37bc79ef540afe05bccbdd8e96b3c5e50d6630a7integrates main3111d3d9164f59465fc04a79e9a71b075e275788. The clean merge brings in only the two previously reviewed preflight files from main. The installer feature patch is byte-for-byte identical to the approved1b1952epatch against its prior base. Current-mainCHANGELOG.mdis preserved. The original feature review and independent incoming-main review remain applicable; no feature change or conflict resolution was introduced. Clean committed local full validation passed on this candidate. Current-head full hosted validation also passed. CI readiness isREADY; the integrated base remains current and all six review threads are resolved.Three alternating Linux pairs used this candidate's payload for both versions, replacing only the baseline installer with main's version. Baseline seconds: 3.863142627, 3.722252418, 3.665247419. Candidate seconds: 1.727238584, 1.802217876, 1.697127585. Median 3.722 to 1.727 seconds: 53.6% faster, with nonoverlapping ranges. Docker was offline with a 2-CPU quota and 3 GB memory while local validation also ran on the host. These are paired single-case measurements, not exclusive-runner or whole-job results.
Review provenance: Codex completed on current
37bc79e. The completed Claude review repeated the known staging-residue limitation; its disposition links the prior independent reproduction. All six threads are resolved. The independent local feature/integration review remains applicable because the installer feature is unchanged and the incoming main files were separately reviewed.QA Evidence
37bc79ef540afe05bccbdd8e96b3c5e50d6630a7.Decision log
Take the measured installer improvement first. Suite sharding and #726's full-job improvement target remain outside this PR.