Problem
Selective stable publication can lose or overwrite prototype updates when publication runs overlap:
- GitHub Actions concurrency keeps at most one running and one pending run per group. A third
main publication can replace the pending run, dropping prototype changes that exist only in that canceled bundle.
- A manual full publication started from an older
main commit can finish after a newer push publication and overwrite newer stable artifacts with older bundles.
Expected behavior
Every prototype changed on main should eventually reach stable publication, and an older source commit must never overwrite artifacts published from a newer commit. Automatic publication should remain limited to directly changed prototypes; full publication should remain a manual action.
Possible approaches
- Track the last successfully published SHA and prepare cumulative changes through the current source SHA.
- Introduce a durable publication queue or checkpoint with source-SHA ordering.
- Reject stale manual publications and ensure superseded pending runs are represented by a later bundle.
Acceptance criteria
- Three rapid
main pushes cannot drop a prototype update when a pending publication is superseded.
- An older manual full publication cannot overwrite artifacts from a newer
main commit.
- Automatic publication still publishes only directly changed prototypes.
- Full publication remains manually triggered.
- Tests cover superseded pending runs and stale manual dispatches.
Context
Identified during review of #13.
Problem
Selective stable publication can lose or overwrite prototype updates when publication runs overlap:
mainpublication can replace the pending run, dropping prototype changes that exist only in that canceled bundle.maincommit can finish after a newer push publication and overwrite newer stable artifacts with older bundles.Expected behavior
Every prototype changed on
mainshould eventually reach stable publication, and an older source commit must never overwrite artifacts published from a newer commit. Automatic publication should remain limited to directly changed prototypes; full publication should remain a manual action.Possible approaches
Acceptance criteria
mainpushes cannot drop a prototype update when a pending publication is superseded.maincommit.Context
Identified during review of #13.