Repository navigation
LOCAL: wake the devvms pin workflow when a fork release goes live - #20
Conversation
A new notify-devvms job sends SwapLabsInc/SwapLabs an orca-fork-release repository dispatch after publish, so its Orca fork pin workflow re-pins the minidev fork hosts at once instead of within the hour. It uses a repo-scoped SWAPLABS_DEVVMS_DISPATCH_TOKEN, since GITHUB_TOKEN cannot reach another repository, and holds no GITHUB_TOKEN permission. Without the secret, or on a failed dispatch, it leaves the build green; the hourly check remains the fallback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review complete. No blocking issues — approved ✅; 1 nitpick below. 🧹 Nitpicks (1) — 🟢 1 low
Adds a SwapLabs fork build workflow (GitHub Actions) with mac signing, dev-VM notification, and new workflow-consistency test scripts plus reference docs. Reviewed commit: d88c5df |
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d88c5df67f
ℹ️ 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".
| # fails the build. | ||
| notify-devvms: | ||
| needs: [draft, publish] | ||
| if: needs.publish.outputs.published == 'true' |
There was a problem hiding this comment.
Run the notification after post-publish failures
When Publish the verified release succeeds but the following Prune old fork releases step fails—for example, if the gh release list command at lines 897–898 encounters a transient error—the release is already live and the published output is true, but the publish job result is failure. GitHub Actions implicitly adds success() to a job-level condition without a status-check function, so this job is skipped and the dev VMs wait for the hourly fallback. Include always() in this condition while retaining the published == 'true' check.
Useful? React with 👍 / 👎.
ELI5
When the fork publishes a new build, the dev VMs should move to it. SwapLabsInc/SwapLabs's pin workflow does that, but it only checks once an hour. This makes the fork's release workflow tap it on the shoulder the moment a build goes live.
What Changed
Orca fork pinworkflow in SwapLabsInc/SwapLabs next ran on its hourly schedule. That workflow already accepts anorca-fork-releaserepository dispatch, but nothing sent one.notify-devvmsjob in.github/workflows/swaplabs-build.ymlruns afterpublish, only when the release actually went live. It sends that dispatch, with the tag in the payload.GITHUB_TOKENpermission (permissions: {}).SWAPLABS_DEVVMS_DISPATCH_TOKEN.docs/reference/swaplabs-fork-builds.mdgains "Waking the devvms pin", which says what token to create.Why
GITHUB_TOKENis scoped to this repository and can't dispatch to another. A fine-grained token limited to SwapLabsInc/SwapLabs with Contents read and write is the narrowest thing the dispatches API accepts.Linked Issue
None. Fork-only; the SwapLabs side is SwapLabsInc/SwapLabs#114 (the pin workflow's
repository_dispatchtrigger), stablyai#116 (smoke test plus auto-merge) and stablyai#117 (the host timer).Visual Proof
N/A. CI only.
Testing
I manually tested these changes locally
Automated tests added/updated, or explained why not below
New
config/scripts/swaplabs-build-workflow-devvms-notify.test.mjs:gh);gh, still exits 0 with a notice or warning.The existing contract tests keep their rules, with a narrow exception for this job. "Every gh call stays on this repository" exempts
notify-devvmsonly. The secret-names test allows exactly this one extra secret, in this job only.viteston the three workflow test files: 59 passed.oxlintandoxfmtare clean on the changed tests.actionlintreports only the SC2016 already onswaplabs/main.Needs the operator: create the fine-grained token and set it with
gh secret set SWAPLABS_DEVVMS_DISPATCH_TOKEN -R SwapLabsInc/orca. Until then the job only prints its notice.AI Disclosure
Written by Claude Opus 5.5 (Claude Code).
Agent skill upstream boundary
docs/reference/agent-skill-sharing-upstream-boundary.mdand copies or mechanically translates no upstream skill-installer source, tests, fixtures, registry entries, path tables, comments, or documentation.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.