Skip to content

Prevent skipped and stale prototype publications #16

Description

@mdroidian

Problem

Selective stable publication can lose or overwrite prototype updates when publication runs overlap:

  1. 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.
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions