Repository navigation
seed prefetch: keep the seed adopt would pick, of any seeded width - #14944
Conversation
`prefetch` looked only for seeds of the Mac's own swift-driver width, while
`locate` (what `start` and `adopt` restore) falls back to SEEDED_JOB_WIDTHS.
The 10-core light minis (cmux-austin-mini-0/1) have no seed of width 10,
so glaeda-seed-prefetch fetched nothing there ("no seed of this width in
REVISION's history" on every run) and their jobs downloaded a j12 seed
each time. Both now share nearest_of_any_width, so prefetch keeps the same
key adopt then clones.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
All contributors have signed the CLA ✍️ ✅ |
|
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 configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review. 📝 WalkthroughWalkthroughSeed lookup now checks the current Swift-job width before other configured seeded widths. ChangesSeed width selection
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to The seed-selection change has no identified issue requiring resolution before merge. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to Prefetch now downloads the seed that adoption would already choose. The review found no new public access path or verified security weakness, but could not fully verify the surrounding cache and deployment controls. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 24 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (24 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
|
Merge receipt for |
f5c179f iOS: fix the test failures that keep iOS CI red on main (manaflow-ai#14803) 8685bf5 Hold update relaunch while agents are mid-turn (manaflow-ai#14969) dc90332 Keep CLI socket-discovery tests off the host's real cmux (manaflow-ai#14919) dd3c91b docs: shorten root agent instructions and link existing procedures (manaflow-ai#14998) 8c744df Rename edits inline or in the palette, never in an alert (manaflow-ai#14986) 9ae4383 Calmer chrome motion: appear instantly, fade out only, no overshoot (manaflow-ai#14984) 6510f56 Write opencode config JSON without escaping slashes (cmux 7140) (manaflow-ai#14805) ab5e7da ci: stop catch-up merges from failing the CLA check (manaflow-ai#14913) 52c8f41 Add cmux session move for Claude sessions (manaflow-ai#14959) 36785b1 Hide decorative Settings sidebar icons from VoiceOver (manaflow-ai#14989) 4c7158c Label the sound preview button and fix mistranslated action verbs (manaflow-ai#14983) e704a77 Bound untracked paths stored in last-turn diff baselines (manaflow-ai#14980) f073df1 Fix remote Files sidebar for names that change under NFD (manaflow-ai#14978) 5c68499 Bump bonsplit: mouse wheel scrolls the overflowed tab strip (manaflow-ai#14985) 9466dcb Keep agent resume bindings through the update-relaunch save (manaflow-ai#14971) ef8b037 docs: take release notes from a Changelog section in each PR instead of CHANGELOG.md edits (manaflow-ai#14934) 6eddfd7 ci: skip the delta diff when main moved further than the pull request (manaflow-ai#14987) fefcec7 ci: attribute red PR runs to the machine or the code, re-run machine failures once (manaflow-ai#14977) c185deb Accept file drops on remote tmux mirror panes (manaflow-ai#14981) 90773c7 test: make CmuxSidebarGit probe waits event-driven (manaflow-ai#14973) 1f2dbfe ci: skip the scheduled Blacksmith cache warmers while owned pools serve PRs (manaflow-ai#14827) 2850651 docs: add a guide to customizing cmux's look (manaflow-ai#14850) b66e365 Resolve a separate sidebar's content against its own backdrop (manaflow-ai#14841) 88a9360 UI tests: one labelled frame per action, built in CI; scripts/ui-test (manaflow-ai#14966) 20cfa78 fix(omo): resolve relative file refs in the shadow config without double-loading OpenCode config (manaflow-ai#14935) f0e964c ci: make the aggregate app-host product the default, layers opt-in (manaflow-ai#14975) 52dce98 ci: run and register the machine-failure test (manaflow-ai#14972) 7bf48bc ci: route compile admission by kept-build distance across minis (manaflow-ai#14949) 44fa3f5 Offer cmux in Open With for Markdown, source, and text files (manaflow-ai#14968) 45c2d66 Replay the Claude session id of agents in cmux ssh (cmux-tui) panes (manaflow-ai#14906) b4c1b31 Label icon-only chrome buttons and localize project panel text (manaflow-ai#14926) 14a6909 seed prefetch: keep the seed adopt would pick, of any seeded width (manaflow-ai#14944) 19e73d2 ci: self-calibrating warm-distance compile estimates (manaflow-ai#14932) fa98d86 ci: redispatch focused runs the Mac failed before any test started (manaflow-ai#14963)
Problem.
seed_derived_data.py prefetchonly looked for seeds of the Mac's own swift-driver width (scoped(prefix)).locate, whichstartandadoptuse, falls back toSEEDED_JOB_WIDTHS(12, 6, 14). The two 10-core light minis (cmux-austin-mini-0/1) have no seeds of width 10, so glaeda-seed-prefetch fetched nothing there. Every run in~/Library/Logs/glaeda-seed-prefetch.jsonlon austin-0 today saysno seed of this width in REVISION's history. Meanwhile their jobs adopt j12 seeds:ci/seedson austin-0 holds five j12 seeds and nothing else, the newest from 2026-09-25. Every job there downloads its seed instead of cloning a kept one.Fix. A new
nearest_of_any_width(prefix, revisions)holds the fallback loop fromlocate, and bothlocateandprefetchcall it.prefetchnow keeps the same key thatadoptlater clones: its own width when there is one, however far, and otherwise the first seeded width that has one. The no-seed reason is nowno seed of any seeded width in REVISION's history. glaeda-seed-prefetch passes that string through and does not match on it.Tests.
tests/test_seed_derived_data.pycovers a 10-core Mac that fetchesj12overj14andj6, returns the same keylocategives, and switches to aj10seed once one exists. The other 60 tests pass locally.The other choice was to publish seeds at width 10. No trusted seeder has 10 cores, and a wrong-width seed still beats a cold build, which is what
locatealready assumes.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Fixes seed prefetch on 10-core machines so it fetches the same seed that
adoptlater clones, instead of only seeds of the Mac's own width.nearest_of_any_width(), shared bylocateandprefetch, which falls back toSEEDED_JOB_WIDTHS(12, 6, 14) when no seed of the Mac's own width exists.prefetchnow picks its own width's nearest seed if one exists, however far, and otherwise the first seeded width that has one.no seed of any seeded width in REVISION's history.j12overj6andj14, returns the same keylocategives, and switches to aj10seed once one exists.Written for commit 1450c6f. Summary will update on new commits.
Summary by CodeRabbit