Skip to content

Add FOG_VERSION drift-check backstop (migrated from fogproject#921) - #2

Merged
darksidemilk merged 4 commits into
mainfrom
claude/fog-workflows-action-migration-tqhank
Jul 28, 2026
Merged

Add FOG_VERSION drift-check backstop (migrated from fogproject#921)#2
darksidemilk merged 4 commits into
mainfrom
claude/fog-workflows-action-migration-tqhank

Conversation

@darksidemilk

@darksidemilk darksidemilk commented Jul 28, 2026

Copy link
Copy Markdown
Member

Summary

  • Ports the version-drift-detection logic from FOGProject/fogproject PR #921 into this repo as a reusable (workflow_call) workflow, check-fog-version.yml, matching how stable-releases.yml already owns this project's release automation from outside fogproject. stable is excluded (owned by stable-releases.yml's release flow), and detected drift is committed directly to the branch instead of opening a review PR.
  • Adds a thin push-triggered stub of the same name to fogproject (separate PRs: fogproject#922, #923, #924, #925, #926) that delegates to this workflow via uses: — GitHub Actions has no native cross-repo push trigger, so something has to live there to react to pushes/merges.
  • Adds bootstrap-fog-version-check-stub.yml + bootstrap-fog-version-check-stub-sweep.yml: a daily sweep that finds any fogproject branch matching the watched patterns but missing the push stub (e.g. a branch not descended from dev-branch) and adds it directly — no new trigger needed in fogproject's stable branch, which stays untouched.
  • Adds check-fog-version-sweep.yml: a second daily sweep, this one running the actual version check-and-fix against every watched branch regardless of whether the push stub is present — a failsafe catch-all for anything the push trigger might miss (missed webhook delivery, an Actions outage during the original push, etc). Both check-fog-version.yml and bootstrap-fog-version-check-stub.yml are now also directly workflow_dispatch-able against a single branch for manual runs/testing.
  • Supersedes and closes fogproject#921 (comment posted there explaining the move).
  • Documented in fog-docs#72.

Open risk

The reusable workflow needs the same GH App token stable-releases.yml uses (vars.FOG_WORKFLOWS_APPID / secrets.FOG_WORKFLOWS_PRIVATE_KEY). If those are scoped to this repo only rather than the FOGProject org, the fogproject-side stub call won't be able to inherit them via secrets: inherit — first real trigger will confirm either way.

Test plan

  • Merge fogproject#922 and confirm working-1.6's known drift (per #921's description) gets fixed via a direct commit.
  • Confirm the daily bootstrap sweep (or a manual workflow_dispatch) correctly identifies branches missing the push stub and adds it.
  • Confirm the daily version-check sweep (or a manual workflow_dispatch) runs against every watched branch and fixes any drift found.
  • Confirm no run of anything in this PR ever touches stable.

claude added 4 commits July 28, 2026 00:40
Ports the version-drift detection logic from fogproject PR #921
(FOGProject/fogproject#921) as a workflow_call
reusable workflow, mirroring how stable-releases.yml already owns
fogproject's release automation from outside that repo. A thin
push-triggered stub in fogproject delegates to this via `uses:` since
GitHub Actions has no native cross-repo push trigger.

Differences from PR #921: `stable` is dropped entirely (its version is
already owned by stable-releases.yml's release flow), and a detected
drift is committed straight to the branch instead of opening a review
PR, since these are the same mechanical fixes the local pre-commit hook
already makes without review.
…ches

check-fog-version.yml's push trigger only fires on a branch that already
has the stub committed to it. A branch cut from dev-branch after
dev-branch has the stub inherits it for free, but a branch created any
other way (or before dev-branch had it) would silently go unwatched.

This reusable workflow, called from a new create-triggered stub in
fogproject, copies the canonical stub - whatever's currently committed
on dev-branch - onto any newly created working-1.6/dev-branch/rc-*/
feature-* branch that doesn't already have it. stable and anything
outside those patterns are left untouched.
…stable

GitHub only resolves a create-event workflow from a repo's default
branch, which for fogproject is stable - so a create-triggered stub
there was rejected in favor of a scheduled sweep that stays entirely in
this repo. bootstrap-fog-version-check-stub-sweep.yml runs daily, lists
fogproject branches, filters to the ones check-fog-version.yml watches,
and hands off any missing the stub to the existing single-branch worker
(now also runnable by hand via workflow_dispatch).
check-fog-version.yml now also accepts workflow_dispatch directly
(single branch, for manual runs/testing) alongside workflow_call.

New check-fog-version-sweep.yml runs daily plus workflow_dispatch,
listing every branch check-fog-version.yml watches and running the
real check-and-fix logic against each one - a catch-all for anything
the push-triggered stub in fogproject might miss (missed webhook
delivery, an Actions outage during the original push, a branch whose
stub wasn't bootstrapped yet, etc), independent of whether the stub is
even present on that branch.
@darksidemilk
darksidemilk merged commit 1100ada into main Jul 28, 2026
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.

2 participants