build: stabilize project resources for incremental builds - #12976
teamleaderleo wants to merge 1 commit into
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
|
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 (5)
💤 Files with no reviewable changes (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe bundled skill markdown moved to ChangesSkill resource localization
Priority: ➖ Normal Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The localized resource wiring preserves English fallback and intentionally serves Japanese content to Japanese users, so no actionable merge risk remains. 🚥 Pre-merge checks | ✅ 24 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (24 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 3 files. (1 skipped: 1 unsupported.)
✨ 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 |
7f4e0d1 to
c270c5f
Compare
Reproducing the project-description checkResults are in the PR description. These are the commands. Setup: a clean worktree with Counting distinct project descriptions (~10 s per load after the first): for i in 1 2 3; do
xcodebuild -showBuildSettings -project cmux.xcodeproj -scheme cmux -configuration Debug \
-destination 'platform=macOS' -derivedDataPath /tmp/pif-dd >/dev/null
done
ls /tmp/pif-dd/Build/Intermediates.noindex/XCBuildData/PIFCache/project | grep '^PROJECT@'One Diffing two dumps directly: xcodebuild -project cmux.xcodeproj -dumpPIF /tmp/pif-1.json -clonedSourcePackagesDirPath /tmp/sp -skipPackagePluginValidation
xcodebuild -project cmux.xcodeproj -dumpPIF /tmp/pif-2.json -clonedSourcePackagesDirPath /tmp/sp -skipPackagePluginValidation
shasum /tmp/pif-1.json /tmp/pif-2.jsonOn |
c270c5f to
c59d039
Compare
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
c59d039 to
129fac9
Compare
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
Summary
Two malformed resource entries in
project.pbxprojmake Xcode produce a different project description on every load, so it re-plans every build. Both are repaired, and both are needed (fixing only the first still gave 5 descriptions in 5 loads):Resources/bin/openbelonged to no group, so Xcode invented aRecovered Referencesgroup with a new id each load. It is now in the Resources group.cloud-agent-skill.mdwas not underen.lproj/like its Japanese variant. It moves there; the coverage script and tests follow.Behavior change: on
mainXcode drops that variant group and ships the English file unlocalized, so the Japanese file is never selected. With this change, Japanese-preferring users getja.lproj/cloud-agent-skill.md. The literalresourceURL/cloud-agent-skill.mdfallback inCloudAgentSkillLauncher.skillMarkdownno longer matches anything.Testing
Parent commit
9c2ba78be4against this PR, separate worktrees and DerivedData, builds alternated,./scripts/reload.sh --tag <tag> --prod-auth. M4 Pro, Xcode 26.3, on a machine other agents were also building on. The edit is one comment line in one Swift file.Commands for the project-description check are in the first comment.
Not explained: after the PR worktree sat idle for ~25 minutes, Xcode wrote a new build description anyway, twice, with the project description unchanged. The old and new descriptions differ only in the order of compiled
<lang>.lproj/Localizable.stringsentries. After the first gap the next one-file edit recompiled the wholecmuxtarget (608 s); after the second it did not (52 s). The parent commit re-plans on every build, so it cannot show this either way. Something besides the project file invalidates the build description, and this PR does not address it.Passed:
tests/test_cloud_vm_skill_coverage.py,tests.test_normalize_pbxproj,./scripts/check-pbxproj.sh.cmuxTestshas not been run against the relocated resource, and no app test job ran on this PR's CI.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Fixes two malformed Xcode project resource entries so incremental builds reuse a stable build description instead of synthesizing project references during project loading. No-op builds in the malformed state dropped from about 97–101s to 72–75s.
Resources/bin/openfile reference to the Resources group.cloud-agent-skill.mdintoResources/en.lproj/and updates the project file path plus the direct coverage/test references.Written for commit 129fac9. Summary will update on new commits.
Summary by CodeRabbit
Documentation
Tests