Skip to content

[DM-075] Publish the V0.1.0 reference release #44

Description

@nicoechaniz

Outcome

Publish v0.1.0, the first reference Daimon Matrix release, by tagging and distributing the exact default-branch commit and artifact set prepared by DM-076, independently approved by DM-073, and explicitly authorized by the human release owner. Then merge a public postflight record that points to the immutable release without changing the released candidate.

Issue closure, green CI or a tag with the right name is not enough. Git tag, source tree, package bytes, manifest, checksums, attestations, release notes, DM-073 verdict and human decision must all bind to the same candidate.

Blocked by

DM-073 and DM-076.

DM-076 must already have merged every candidate-affecting file and produced the frozen candidate/artifact manifest. DM-073 must issue exact-candidate APPROVE, and the human release owner must record explicit same-candidate GO. Keep status:blocked and needs-human until all three facts are independently verified.

Allowed scope

  • Preflight the frozen candidate, review evidence, tag target, signing identity and artifact digests.
  • Create and verify the signed annotated v0.1.0 tag.
  • Publish only manifest-matching reviewed assets and reviewed release-note bytes.
  • Download/reverify/install/smoke the public artifacts.
  • Add a postflight release record/status-navigation update in one narrow PR after publication.

No candidate-affecting implementation, schema, dependency, build, config, fixture, documentation, release-note, manifest or artifact change belongs here. A mismatch returns to focused fixes, a renewed DM-076 candidate-preparation cycle and DM-073 re-review.

Immutable inputs

Before claiming, record:

  • exact repository/default-branch commit and tree, intended tag v0.1.0, DM-076 PR/merge and clean-tree evidence;
  • daimon-matrix-release-manifest/v0 digest and every sdist/wheel/bundle/config/schema/vector/doc/SBOM/provenance/checksum filename, size and digest;
  • DM-073 report/findings-manifest digest, reviewer identity, exact-head APPROVE and resolving commits;
  • human release owner, explicit GO, accepted residual-risk register and same-candidate binding;
  • supported Python/runtime/platform matrix, Matrix↔Cluster combinations and DM-074 harness support states;
  • authorized tag signer/release channel, least-privilege publication mechanism, stop procedure and postflight verifier.

Any absent/mutable/mismatched input fails preflight. Silence, merge rights, issue closure, an older approval or a draft release is not authorization.

Publication ceremony

  1. Fetch the protected default branch and tags into a clean isolated checkout. Require exact candidate SHA/tree, clean state, no existing v0.1.0 tag/release and exact manifest/evidence digests.
  2. Reproduce or retrieve the reviewed artifacts using DM-076 instructions. Verify byte-for-byte hashes, archive allowlists, SBOM/licenses/provenance subjects and full secret/private-state scan.
  3. Re-run the bounded immutable release preflight plus artifact-only install/version/self-check. Confirm DM-073 APPROVE and human GO name these exact inputs.
  4. Create a cryptographically signed annotated v0.1.0 tag with the authorized release identity, pointing directly to the reviewed default-branch commit. Independently verify signature, peeled target and message.
  5. Push only that tag. Publish a non-draft, non-prerelease GitHub release using the already reviewed notes and only manifest-matching assets/checksums/attestations.
  6. Download tag and assets through their public release paths into a second clean environment. Reverify signatures, hashes, provenance, archive contents, install/import, CLI/MCP version/self-check and a bounded synthetic smoke.
  7. Record immutable release URL, tag target/signature, asset IDs/sizes/digests, publication time, verifier, commands/results and any public operational notice.
  8. Open the single DM-075 postflight PR with Closes #44. It may update only status/navigation/release-index material and the public content-addressed postflight record; it does not belong to v0.1.0 and must say so explicitly.

Never force/move/recreate the tag, replace assets under the same version, or silently edit release text. If publication is partial or wrong, stop distribution, preserve evidence and prepare a newly reviewed successor version; do not rewrite tag history, candidate bytes or canonical Matrix state.

Public artifact verification

The post-download verifier must prove:

  • signed tag target equals the DM-073-approved candidate;
  • all canonical release assets match DM-076 manifest names/sizes/digests and provenance subjects;
  • sdist/wheel install without source checkout into an empty environment and owner-only Matrix state root;
  • packaged schemas/vectors/docs/registries match checked-in digests;
  • complete advertised Python/runtime compatibility and at least the required local/remote/birth/species/adapter/Matrix↔Cluster synthetic smoke path;
  • no key, token, credential, message, personal memory, database/state snapshot, private endpoint/path, cache or experimental spike occurs in downloads, installed files, logs or reports;
  • Matrix starts empty with no Tribe v0/v1 history/private-state import or hidden runtime dependency;
  • release notes link the exact identity, ledger, messaging, memory, birth, species, DM-055 Tribe cutover/no-history handoff, Matrix↔Cluster, harness/canary, security and both recovery-drill evidence sets, and state that final Tribe source archival remains pending the post-release card.

GitHub-generated convenience source archives may be linked but are not canonical reviewed assets unless their exact bytes were in the manifest.

Acceptance criteria

  • DM-076 candidate/manifest and DM-073 exact-head APPROVE are immutable and mutually consistent.
  • Human owner records explicit same-candidate GO; no candidate mutation occurs afterward.
  • Signed annotated v0.1.0 tag points exactly to the approved default-branch commit and verifies independently.
  • Public non-draft/non-prerelease assets exactly match reviewed names, sizes, hashes, SBOM/provenance and release notes.
  • Clean public download, artifact-only install, version/self-check, secret scan and bounded advertised smoke succeed.
  • Release notes link complete V0 implementation/canary/cutover/security/recovery/Cluster evidence without leaking private state.
  • Postflight records immutable URLs/digests/signature/results and one narrow PR closes DM-075 without changing the released candidate.
  • No required V0 behavior was deferred, no untested version/harness/Cluster combination is advertised, and no tag/asset was rewritten.

Security and rollback

  • Release/signing credentials remain outside repository, artifacts, logs and command history and use least privilege. Untrusted PR CI receives no publication capability.
  • Build/verify only public/synthetic inputs in validated disposable roots. No live deployment, destructive recovery or private canary state is used.
  • Before tag push, abort safely on any mismatch. After tag/release publication, never mutate identity/ledger/high-waters or rewrite the version; withdraw affected downloads/notices if needed and issue a new fully reviewed successor.
  • The postflight PR cannot retroactively authorize or alter the release; it only records what independently verified public endpoints contain.

Deployment: release publication only. Production activation requires its own explicit operational approval and runbook.

Canonical references

Concurrent-work gate

Do not claim until DM-073 and DM-076 are closed, exact approval/GO evidence is visible, no active claim owns the tag/release resource, and the candidate/tag/manifest preflight is clean. Claim narrow resources for protocol:release/v0.1.0 and postflight paths; do not claim implementation paths.

Expected PR

One narrow post-publication PR closes DM-075 and records the already completed immutable release. The released tag intentionally precedes that record commit; the record must name both SHAs and must never imply it is contained in v0.1.0.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanRequires an explicit human decision or actionpriority:P0Critical pathstatus:blockedBlocked by dependencies or reviewtype:opsDeployment, migration, or operational work

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions