Skip to content

Defense-in-depth: read-side supersession for sealed-head bindings #3

Description

@chtnnh

0.3.0 fixed the "non-range commit after a sealed range can never ship" bug by consuming superseded seal artifacts at pass time (clearSupersededSealArtifacts: cleared when pinned to a non-HEAD commit or to a tip reachable from origin/<baseBranch>; only an unpushed sealed tip at HEAD is kept).

That is write-side hygiene at the human trust anchor. Consider complementing it read-side in sealedHeadBinding():

  • Ignore a seal/binding when a newer human-signed gate exists (gate.passedAt > seal.sealedAt/boundAt with the gate lacking its own sealedHeadOid), and/or
  • Ignore a seal whose sealedHeadOid is already reachable from the remote base (consumed), evaluated at check time.

Rationale: pass-time consumption only helps users running the fixed binary at pass time; stale artifacts written by older versions, or restored from backups, still hard-block shipping until the next pass. Read-side supersession is fail-closed to add (both artifacts are human-signed, so timestamp ordering is trustworthy; replaying old signed artifacts can only block, never open).

Keep the invariant: agent-runnable surfaces must never delete artifacts; read-side logic only changes what binds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions