Repository navigation
acpmux deps: timing record per archive; count the install after a restore - #35237
Merged
Merged
Conversation
Collaborator
Author
|
Owned by an agent session · session |
Contributor
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
web and size checks: green Shipped in:
|
teamleaderleo
temporarily deployed
to
sentry-dsyms
November 4, 2026 10:28 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
artifacts
November 4, 2026 10:28 — with
GitHub Actions
Inactive
…ooses too The uploader stores what it measured (its cold install, the archive's size) as a small entry of its own (remote::meta_key). A machine with no cold install of its own for that key reads it (one small request) and installs cold when the restore is not expected to beat it. Keys move to v2 (zstd -12 --long=27 archives, each with its record). The bench gains a fresh-machine round (ACPMUX_DEPS_LOCAL_STATS=off). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa
…ut netem The choice compared a cold install with only the download and unpack, so Cargo restored on a fast link and lost to its own 1.7 s offline fetch. The expected restore now adds the install after it: as measured on this machine per ecosystem, or a default share of the cold install. bench=deps-slow fell over on a kernel without netem; it now routes every tool's HTTPS through a local proxy that adds the same 150 ms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa
teamleaderleo
temporarily deployed
to
artifacts
November 4, 2026 10:34 — with
GitHub Actions
Inactive
teamleaderleo
force-pushed
the
lane/dep-cache-meta
branch
from
November 4, 2026 10:34
79ff977 to
dbe88e4
Compare
teamleaderleo
temporarily deployed
to
ci-routing-agent
November 4, 2026 10:35 — with
GitHub Actions
Inactive
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-fb75b7af9902231028aa
|
Found 9 test failures on Blacksmith runners: Failures
|
teamleaderleo
temporarily deployed
to
artifacts
November 4, 2026 10:44 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
sentry-dsyms
November 4, 2026 10:45 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
ci-routing-agent
November 4, 2026 10:48 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
sentry-dsyms
November 4, 2026 10:58 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
artifacts
November 4, 2026 10:58 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
artifacts
November 4, 2026 11:04 — with
GitHub Actions
Inactive
Collaborator
Author
|
Review (codex gpt-6-astra high, router-review): SHIP at d57e786 Visual verdict: unchanged by this diff
Follow-ups: |
This was referenced Nov 4, 2026
teamleaderleo
added a commit
that referenced
this pull request
Nov 4, 2026
Each push that touches .github/, tests/ or scripts/ci/ judges the guard profile at its tip, and 14 steps were red there. This clears nine (fork routing and the Blacksmith failover also need #35717): - full clones: commandRules.ts runs no git; it lists `git clone`'s --depth as a flag to skip when it names a shown command (#35137). - send-path caps: the dependency-cache timing record bound (#35237) and the local replica's file size bound (larger files read from the machine) refuse nothing a person sends; listed as safe. - fleet rule lints: a sample machine name in a colour test fixture, and a plan table row naming SecItemCopyMatching in prose; listed as safe. - pinned Xcode: drop the exemption for nightly.yml's launch-smoke-nightly, which no longer exists. - macOS job class: nightly.yml's republish-nightly-next (#35588) only downloads and re-uploads a verified build: portable-checks. - label events: the production cmux-vm jobs are gated first on github.ref == refs/heads/feat-cmux-next, which a pull_request event never has (its ref is refs/pull/N/merge); the guard now reads that, for pull_request only and only when no top-level || follows. - fork routing: tail-production and sweep-orphans-production take the fork pull-request branch before vars.LINUX_RUNNER, like their siblings. - supply chain: the jobs that mint the cmux-bot token (swift-test, generated-files, push-attribution, #35123) run in ci-routing-agent off pull requests, as macos-placement and compile-status do; tail-production reads its Cloudflare secrets in cmux-vm-production. - upload retention: the production journey's step table keeps 3 days. Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This branch was previously deployed
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.
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Follow-up to #35159 (the per-machine restore-or-install choice). That choice needs a cold install measured on this machine, so a new Cloud machine always restored, even where its archive is slower to fetch than the install it replaces (bun on a fast link).
This stores a small timing record next to each archive when it is first uploaded: the uploader's cold install time and the archive size, under its own derived key in the same ecosystem. A machine with no local record fetches it (one small request) and decides with
Stats::choose_from. If there is no record, it restores, as before.remote.rs:Meta,meta_key,fetch_meta(capped at 4 KiB),store_meta.warm.rs: the lookup when there is no local cold record. The backgroundmachine deps uploadgets a new--cold-msflag and stores the record after an archive is created, and so does--upload-now.stats.rs:choose_from, plusACPMUX_DEPS_LOCAL_STATS=offso the bench can act as a new machine.detect.rs:KEY_VERSIONbecomes v2, so archives from before the timing record don't restore without one.deps-bench.sh: a third round per ecosystem,<eco>Fresh, that runs with local stats off.The expected restore now also counts the install after it. The bench showed Cargo restoring on a fast link (1.15 s fetch + 0.13 s unpack + 1.67 s
cargo fetch --offline= 2.98 s) and losing to its 2.75 s cold fetch, because the choice ignored the offline fetch.Stats::after_restore_msuses this machine's measured share per ecosystem (learned after each restore) or a default share of the cold install (Cargo 0.65, npm/pnpm 0.5, uv 0.3, yarn 0.1, bun 0.05). Mid-download give-up (too_slow) counts it too.bench=deps-slowfailed on the runner kernel ("Specified qdisc kind is unknown": no netem). The prepare step now triesmodprobe sch_netem. If netem is still missing, it installsscripts/cmux-next/delay-proxy.py, a local CONNECT proxy that delays each chunk 75 ms each way. The bench routes every tool's HTTPS through it (HTTPS_PROXY), and the evidence recordslinkandproxyHosts.Cost: on a machine with no local record, the first warm of a key makes one extra small GET.
Risk: normal. No secrets are involved: the record holds two numbers.
Agent session: agent session
🤖 Generated with Claude Code