Upload all skill files concurrently - #2540
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. |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This changes every skill-supporting harness setup from ordered per-file writes to unbounded concurrent writes while buffering the entire skill tree, affecting runtime resource usage and overwrite ordering. Unresolved comments identify concrete memory/process pressure and nondeterministic collision risks that require human review. Not approved because:
No code changes detected at Adjust the Minimum Blocking Severity for this repo — including turning it Off — in Settings. You can add or adjust custom eligibility rules. Learn more. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b34cf2a337
ℹ️ 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".
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit b34cf2a. Configure here.
b34cf2a to
484af55
Compare

Upload all configured skill files concurrently through the existing runtime write API, then restore executable bits in one chmod call. Harness setup waits for every upload to settle before returning or propagating an upload error.
File and skill upload order is unspecified. Configurations with colliding destination paths must not depend on which write wins. File contents are buffered in memory for the upload phase; the runtime client's connection pool manages network connections.
Warm Prime VM measurements, including the runtime upload-directory improvement already merged in #2539:
One temporary
vm=TruePrime VM (python:3.11-slim, 1 CPU, 2 GiB), one warmup round and six interleaved measured rounds per workload. All variants use the full Prime runtime from main at284bcfdfb9fa. Provisioning and initial program downloads are excluded; the setup measurement includes the full existing warm Codex setup path.This comparison measures setup latency on one VM, including up to 128 concurrent uploads. It does not measure model inference or throughput across many simultaneous rollouts.
Observed all-concurrent install/multi range: 0.950–1.061 s.
Observed all-concurrent install/large range: 1.614–1.846 s.
Observed all-concurrent setup/multi range: 2.498–4.926 s.
Note
Low Risk
Setup-path performance change only; higher peak memory during install and reliance on concurrent
runtime.writebeing safe, with no auth or scoring behavior changes.Overview
Harness.install_skillsno longer writes each skill file to the runtime one at a time. It first walks all configured skills, reads every file into memory, and records targets plus executable paths, then runs allruntime.writecalls in parallel withasyncio.gather(failures are collected and re-raised after uploads finish). A singlechmod +xstill runs afterward for every executable path across skills.Traversal no longer sorts files under a skill, so upload order is unspecified—configs must not rely on write ordering or on which concurrent write wins when destinations collide.
Reviewed by Cursor Bugbot for commit 484af55. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Batch skill uploads in
Harness.install_skillsvia tar archives_EXTRACT_SKILLShelper script to extract uploaded archives in the runtime and remove the temporary archive path on exit.SandboxError, attempting shielded process termination and temporary archive removal.📊 Macroscope summarized 484af55. 1 file reviewed, 2 issues evaluated, 0 issues filtered, 2 comments posted
🗂️ Filtered Issues