Skip to content

release: prepare and publish Coven v0.4.8 #1203

Closed

Description

@BunsDev

Goal

Publish Coven v0.4.8 through the existing protected workflows, following docs/reference/releasing.md. All five canonical npm packages should expose 0.4.8 as latest. The GitHub Release should carry the four native archives, both Automations contract bundles and SHA256SUMS.

Tagged: the signed annotated tag v0.4.8 (tag object 7ad49854eda074aa12deb6d1b18d84f81dcb696a, pointing at eb3273e1) was pushed with maintainer authorization. Release npm packages run 37121331044 is in progress.

Candidate

main at eb3273e19670d2ab5bf1374783d96c11a50b0be2. It is v0.4.7 plus four changes:

Gates

  • Exact-commit main CI: CI run 37109729013 succeeded on the main push at the candidate, attempt 2. 18 jobs passed and 5 were skipped by existing policy. PR gate passed, as did Rust tests on Linux, Windows and macOS, Windows Threads daemon tests, and all four npm onboarding targets.

  • Pre-publish smoke (node scripts/test-cli-prepublish.mjs) from a clean detached checkout at the candidate, dry-run version v0.4.8, macOS ARM64: all 4 checks passed. Those cover:

    • prerequisites;
    • the onboarding, PR-readiness and publish guardrails;
    • npm publish --dry-run staging;
    • a packed wrapper-plus-native install with the full installed-user journey.

    As for v0.4.7, the release build and the secret scan ran separately first, and the smoke then reused that build (--skip-build --skip-secrets-scan).

  • Secret guard: no current-tree or history findings.

  • Release stress, ten iterations per platform: run 37110140969 at the candidate passed on Ubuntu, macOS 26 and Windows. After a warm-up build, each surface ran ten iterations with no failures: Windows PTY timeout and process cleanup on Windows, and claim acquisition, memory migration, process cleanup, PTY timeout and short socket homes on Ubuntu and macOS.

  • Version availability: 0.4.8 is unpublished for @opencoven/cli, -macos, -macos-x64, -linux-x64 and -windows, whose latest is 0.4.7. No v0.4.8 tag exists locally or on the remote.

  • Signed-tag policy: the maintainer's local SSH signing key is the single entry in NPM_RELEASE_ALLOWED_SIGNERS, and it verifies the v0.4.7 tag.

  • Certification packet (operator step): the maintainer ran the interactive reports with the candidate binary. Each report holds only the seven packet fields:

    • claude: CLI 2.1.288, completed: true, exit_class: completed.
    • codex: CLI 0.160.0, completed: true, exit_class: completed.
    • copilot: CLI 1.0.91, completed: true, exit_class: completed.

    All three ran on macos-aarch64 with candidate_commit eb3273e19670d2ab5bf1374783d96c11a50b0be2.

  • Push the signed annotated tag after explicit authorization. git verify-tag v0.4.8 reports a good signature from the allowed signer's key.

  • Postflight:

Certification (operator step)

Use the release binary built from the clean candidate checkout:

  • coven v0.4.7-4-geb3273e1
  • SHA-256 70b5c09881f1d04f72ea773c465ded7d8dc28e6c5f8eaf111f4e66b308f4fb62

Run these in an interactive terminal on a machine with all three providers authenticated. Each run spends one bounded real provider turn.

COVEN=<candidate checkout>/target/aarch64-apple-darwin/release/coven
mkdir -p ~/coven-cert-v0.4.8
"$COVEN" setup codex   --verify-only --report-json ~/coven-cert-v0.4.8/codex.json
"$COVEN" setup claude  --verify-only --report-json ~/coven-cert-v0.4.8/claude.json
"$COVEN" setup copilot --verify-only --report-json ~/coven-cert-v0.4.8/copilot.json
jq -r '"\(.harness) \(.completed) \(.candidate_commit)"' ~/coven-cert-v0.4.8/*.json

Every line must read true eb3273e19670d2ab5bf1374783d96c11a50b0be2.

Publication (requires authorization)

git fetch origin --tags
git tag -s v0.4.8 eb3273e19670d2ab5bf1374783d96c11a50b0be2 -F ~/coven-v0.4.8-tag-notes.md
git push origin v0.4.8

The drafted annotation, which becomes the GitHub Release notes, is in the first comment.

GitHub Release step

This was meant to be the first release where #1199's npm wait made recovery unnecessary. Instead, the step failed in nine seconds with Cannot access 'REGISTRY_VISIBILITY_DEADLINE_MS' before initialization, because the script started its CLI before the wait's constants were initialized (#1204).

Scope notes

Activity

  1. BunsDev commented on Oct 3, 2026

    @BunsDev
    MemberAuthor

    Drafted annotation for v0.4.8, which becomes the GitHub Release notes. It is also at ~/coven-v0.4.8-tag-notes.md for git tag -s -F.

    Coven v0.4.8
    
    Coven publishes one digest per Automations definition revision, stops
    sessions from staying `running` after their harness is gone, and makes the
    GitHub Release step wait for npm instead of failing on a fresh publish.
    
    ```sh
    npm install -g @opencoven/cli@0.4.8
    coven doctor
    ```
    
    Automations
    - A richly authored definition revision is now identified everywhere by its
      document's JCS `integrity`, the value `definition.create.v1` and
      `definition.revise.v1` return. Lifecycle events, `occurrence.get`,
      `occurrence.list` and `occurrence.history`, `run.get`, and the Runtime
      Authority execution binding all publish it, and so do the receipts built
      from that binding. In v0.4.7 they published the digest of the projected
      routine instead. That digest has no revision field, so two paused revisions
      with the same body shared it, and a receipt never matched the integrity a
      client held.
    - Scheduling and dispatch still fence on the routine digest, which is
      unchanged. Legacy and routine-bodied revisions publish it as before.
    - Events written by v0.4.7 are immutable and keep the digest they were written
      with. A stored receipt may name either digest of its revision.
    
    Daemon
    - A session whose harness is gone no longer stays `running` until the next
      daemon restart. Every 30 seconds the daemon checks the sessions it
      registered. One that has left the live registry, or whose harness process
      group no longer exists, becomes `orphaned` after a two-minute grace. Its
      live handle is then released the way a normal exit releases it.
    
    Release tooling
    - The GitHub Release step waits up to 15 minutes for npm to serve a version
      it has just published, instead of failing on the registry's propagation
      delay. Each request is bounded by the time left. v0.4.4, v0.4.6 and v0.4.7
      each needed a manual recovery for this.
    - Provenance verification accepts npm's unprefixed trusted publisher config
      ids as well as the `oidc:` form.
    
    Coven remains an early MVP. The Automations manifests remain `proposed` with
    `productionReady:false`. A trusted Runtime Authority adapter still waits on
    these open decisions:
    - principal authentication;
    - familiar binding issuance;
    - Threads decision signing;
    - terminal observation production (#857, OpenCoven/coven-runtimes#48).
    
    Exact source: `eb3273e19670d2ab5bf1374783d96c11a50b0be2`.
    
  2. BunsDev commented on Oct 3, 2026

    @BunsDev
    MemberAuthor

    npm published. The GitHub Release step failed on a script bug, not npm lag. Fix in #1205.

  3. BunsDev commented on Oct 3, 2026

    @BunsDev
    MemberAuthor

    Coven v0.4.8 is published: npm latest is 0.4.8 for all five packages, the GitHub Release has all assets, both contract bundles verify, and a fresh install passes npm audit signatures. Postflight is checked off in the description.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions