Skip to content

ci: let a dispatched seed save the SwiftPM manifest cache - #14288

Merged
teamleaderleo merged 1 commit into
mainfrom
ci/swiftpm-manifest-seed-on-dispatch
Sep 24, 2026
Merged

teamleaderleo merged 1 commit into
mainfrom
ci/swiftpm-manifest-seed-on-dispatch

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

A workflow_dispatch of seed-derived-data.yml on main never saves the SwiftPM manifest cache. "Evaluate manifests at the cli-pipe-regressions path" was gated on github.event_name == 'push', and "Stage SwiftPM manifest cache" requires that step to succeed. Dispatch 36057477097 restored, resolved, then skipped both "Stage SwiftPM manifest cache" and "Save SwiftPM manifest cache".

That matters because decide only builds when the build fingerprint changes. A change to scripts/ci/swiftpm-manifest-cache.sh alone (like #14282) moves the cache key without reseeding, and dispatch is the way to reseed it. The gate is now github.ref == 'refs/heads/main'. Dispatches on main run in ci-cache-writer like pushes do, and every other manifest step is already main-only.

Validation (local): actionlint, test_seed_derived_data.py and test_ci_pull_request_caches_are_read_only.py pass.

Signed: Manifold g1 ✨ (run_swiftpm-manifest-cache-20260924)

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Summary by cubic

Fixes the seed-derived-data.yml workflow so a workflow_dispatch on main can now save the SwiftPM manifest cache, previously only pushes triggered the save. This matters because changing the manifest cache script alone shifts the cache key without reseeding, and dispatch was the only way to reseed it.

Written for commit a71ba15. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Chores
    • Automated validation now runs on the main branch when the SwiftPM manifest cache misses, regardless of the event type that triggered the workflow. This updates when the project’s automated checks run; there are no direct changes to app features or user-facing behavior.

The workspace-path resolve that stage depends on ran only on main
pushes, so a workflow_dispatch of seed-derived-data restored, resolved
and then skipped the save. Main dispatches run in ci-cache-writer too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@teamleaderleo
teamleaderleo enabled auto-merge (squash) September 24, 2026 21:05
@coderabbitai

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

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 configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 78d1fea1-6f4a-48c7-a0ad-23730c79c902

📥 Commits

Reviewing files that changed from the base of the PR and between f6b3f4a and a71ba15.

📒 Files selected for processing (1)
  • .github/workflows/seed-derived-data.yml

Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review.


📝 Walkthrough

Walkthrough

The manifest-evaluation step now runs on a SwiftPM manifest cache miss when the workflow ref is refs/heads/main, regardless of event type.

Changes

Manifest evaluation workflow

Layer / File(s) Summary
Manifest evaluation condition
.github/workflows/seed-derived-data.yml
The step no longer requires the event type to be push. It runs on a cache miss when the ref is refs/heads/main.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~3 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to a71ba

Manual runs on main can now stage and save the manifest cache as intended. No actionable merge risk remains after normal checks.

🚥 Pre-merge checks | ✅ 25
✅ Passed checks (25 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main CI change: allowing a dispatched seed to save the SwiftPM manifest cache.
Description check ✅ Passed The description explains the problem, the workflow change, the resulting behavior, and the validation commands. It does not use all template headings or include the checklist, but it is mostly complet…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Cloud Persistent Session And Early Input ✅ Passed PASS: The pull request changes only .github/workflows/seed-derived-data.yml. The one-line change removes a github.event_name == 'push' condition from a SwiftPM manifest cache workflow step while r…
Cmux Swift Actor Isolation ✅ Passed The pull request changes only .github/workflows/seed-derived-data.yml. The diff contains no Swift production changes, so it cannot introduce or worsen Swift actor-isolation mistakes.
Cmux Swift Blocking Runtime ✅ Passed PASS: The pull request changes only .github/workflows/seed-derived-data.yml. The diff removes the github.event_name == 'push' condition from a workflow if expression. It introduces no production…
Cmux Browser Automation Off-Main ✅ Passed PASS: The pull request changes only the seed-derived-data.yml GitHub Actions condition for SwiftPM manifest evaluation. The diff contains no browser.* command, WebKit/AppKit access, socket-worker …
Cmux Expensive Synchronous Load ✅ Passed PASS: The pull request changes only .github/workflows/seed-derived-data.yml. The diff contains no production Swift changes and no synchronous agent-history load or interactive-path call site.
Cmux Cache Substitution Correctness ✅ Passed PASS: The pull request changes only .github/workflows/seed-derived-data.yml. It does not change production Swift, TypeScript, or JavaScript code, and it does not substitute a fresh authoritative rea…
Cmux No Hacky Sleeps ✅ Passed PASS. The pull request changes only .github/workflows/seed-derived-data.yml, and the rule explicitly excludes GitHub Actions workflow and action YAML. The one-line change removes an event condition …
Cmux Algorithmic Complexity ✅ Passed PASS: The pull request changes only one GitHub Actions if condition in .github/workflows/seed-derived-data.yml. It does not add or modify production Swift, TypeScript, JavaScript, shell, or runtim…
Cmux Swift Concurrency ✅ Passed PASS: The pull request changes only .github/workflows/seed-derived-data.yml. It changes one GitHub Actions condition and introduces no Swift source or Swift concurrency pattern.
Cmux Swift @Concurrent ✅ Passed PASS: The authoritative PR diff changes only .github/workflows/seed-derived-data.yml. It introduces no Swift file, Swift function, async call site, or isolation annotation change. The Swift `@concur…
Cmux Swift Package Boundaries ✅ Passed The pull request changes only .github/workflows/seed-derived-data.yml. It contains no production Swift changes, so the Swift package boundary check is not applicable.
Cmux Swiftpm Lockfiles ✅ Passed PASS: The PR changes only .github/workflows/seed-derived-data.yml, removing the github.event_name == 'push' condition from a manifest-cache workflow step. The authoritative diff contains no `Packa…
Cmux Swift Logging ✅ Passed The pull request changes only .github/workflows/seed-derived-data.yml. The diff modifies a GitHub Actions condition and adds no Swift code or logging. Therefore, the Swift logging rule does not appl…
Cmux User-Facing Error Privacy ✅ Passed PASS: The PR changes only one GitHub Actions condition in .github/workflows/seed-derived-data.yml. It enables manifest evaluation for cache misses on main workflow dispatches. No user-facing error…
Cmux Full Internationalization ✅ Passed PASS: The pull request changes only .github/workflows/seed-derived-data.yml. It changes a GitHub Actions condition from requiring github.event_name == 'push' to requiring `github.ref == 'refs/head…
Cmux Swiftui State Layout ✅ Passed PASS: The pull request changes only .github/workflows/seed-derived-data.yml. The diff contains no SwiftUI code or state changes, so the SwiftUI state-layout rules do not apply.
Cmux Architecture Rethink ✅ Passed PASS: The PR changes only .github/workflows/seed-derived-data.yml. It removes the github.event_name == 'push' condition from a SwiftPM manifest-cache workflow step and retains the `github.ref == '…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS: The pull request changes only .github/workflows/seed-derived-data.yml. It adds no Swift code and does not add or materially change any cmux-owned window. The auxiliary-window close-shortcut ru…
Cmux Source Artifacts ✅ Passed PASS: The PR changes only .github/workflows/seed-derived-data.yml, a hand-written CI configuration file. The diff changes one workflow condition and adds no local output, generated files, cache dire…
Cmux No Test Or Debug Seam In Production Source ✅ Passed PASS: The pull request changes only .github/workflows/seed-derived-data.yml. It changes a GitHub Actions condition and contains no Swift file under a production Sources/ path, so it cannot introdu…
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@teamleaderleo
teamleaderleo merged commit 616cd44 into main Sep 24, 2026
52 of 54 checks passed
rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 24, 2026
fb1759a Merge pull request manaflow-ai#14116 from manaflow-ai/issue-13251-display-session-flicker
4bcfbdb ci: keep compile admission's build state on an owned Mac between jobs (manaflow-ai#14285)
5f01b36 Merge pull request manaflow-ai#14284 from manaflow-ai/issue-14027-sidebar-tmux-focus
2062c82 Merge pull request manaflow-ai#14045 from manaflow-ai/14024-hook-prompt-length
616cd44 ci: let a dispatched seed save the SwiftPM manifest cache (manaflow-ai#14288)
c4dcf65 iOS: rebuild the workspace list table engine (manaflow-ai#14040)
1670d11 Document focusable sidebar IDs and remote readiness
cff83c2 Expose focusable sidebar surfaces and preserve explicit focus
44fd840 Test sidebar surface identities and cross-workspace focus
8c5a1c7 docs: bound display-change rationale to observed code path
900b55d Merge remote-tracking branch 'origin/main' into issue-13251-display-session-flicker
a530c4c test: retry expected event-stream disconnects while collecting telemetry
9250404 test: inspect app exit status only after process termination
072809c test: clean socket probe process diagnostics
4098af4 test: launch the socket-only probe without expected activation failures
c3771e6 Merge commit '169cd1af66b1e96cdedf9d30b415a370574948bf' into 14024-hook-prompt-length
169cd1a fix: split the SSH session-list merge so it type-checks on slow runners
2b713cc test: resolve probe Python from the selected Xcode installation
570412f Merge branch 'main' into 14024-hook-prompt-length
f4d8ac2 fix(terminal): avoid redraw on display topology changes
2e42f86 test: assert each hook entrypoint retains its existing attribution contract
024965f test: collect event frames separately from Debug CLI diagnostics
3ce127f test: isolate hook probe app storage under the shared fixture home
a276c01 test: keep hook probe socket in the runner-owned temporary directory
5482f48 test: launch hook probe app outside the runner sandbox
857c953 test: retain isolated app startup evidence for hook probe
7dab194 test: use Xcode Python directly inside the UI test sandbox
0bf8cb2 test: launch socket-only hook probe without foreground activation
5181aed test: wait for hook delivery and handle event stream timeouts
8f21fac chore: refresh generated schema after upstream word-wrap shortcut
cfe5ed7 Merge remote-tracking branch 'origin/main' into 14024-hook-prompt-length
2adae62 fix: keep legacy prompt length fallback bound to its message
80cffee fix: preserve original prompt length in hook event telemetry
cfcb3fd test: reproduce original hook prompt length loss through events

# Conflicts:
#	.github/workflows/ci-guards.yml
#	.github/workflows/ci-macos.yml
#	.github/workflows/seed-derived-data.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant