Skip to content

Auths Witness Network — protocol core + tier wiring + node/watcher/devops#394

Merged
bordumb merged 12 commits into
mainfrom
witness-network
Jul 20, 2026
Merged

Auths Witness Network — protocol core + tier wiring + node/watcher/devops#394
bordumb merged 12 commits into
mainfrom
witness-network

Conversation

@bordumb

@bordumb bordumb commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Auths Witness Network — protocol core + tier wiring + node/watcher/cloud scaffold

Implements the Witness Network final spec.
AWN is the freshness layer that turns withholding and equivocation from free
attacks into a signed contradiction (rollback) and a publishable duplicity proof
(equivocation) — while authorization verification stays offline and free
(I-VERIFY-1).

What's here (by epic)

Epic A — auths-anchor: the pure protocol core (COMPLETE)

A new Layer-1.5 crate modeled on auths-rp (D3), depending only on
auths-crypto + auths-keri + auths-transparency. WASM-safe verification half.

  • types — the anchor tuple unified with activity/v1 (D4), curve-tagged
    signatures (in-band CurveType, never length dispatch), SeedId
    = H(root ‖ agent ‖ scope_seal_said), FinalizedAnchor.
  • accept — the §9.2 acceptance rule (pure, clock-injected).
  • duplicity — self-contained, offline-verifiable duplicity proofs (A6, I-DUP-2).
  • finalize — t-of-N verification (I-FINAL-1/2) + honesty-ceiling over the shipped
    witness::independence engine (diversity math reused, not re-derived).
  • freshness — the fresh | stale | unanchored labeled result (A5).
  • store — the AnchorStore port; CAS is the contract (D7).
  • Tests: 23 unit + 9 named invariant tests (E4) + doctests, all green.

Epic B — evidence integration (auths-evidence)

  • AnchorTier::Witness wired: witness_anchor constructor +
    verify_anchor arm re-checks the embedded FinalizedAnchor offline and binds
    its cumulative to the re-derived settled total. The tier ladder is now real.
  • Top-level freshness result on receipts/v1 and audit/v1, reported beside
    the verdicts (I-VERIFY-3), plus schema updates.
  • Duplicity-proof JSON schema published beside receipts-v1.json (A6).

Epic C — the anchor role (auths-witness-node)

  • AnchorService engine: accept → sign → CAS → on-lost re-run (duplicity if the
    heads differ). The store, not the handler, is the serialization point.
  • InMemoryAnchorStore — the reference CAS adapter (D7; SQLite is the production
    adapter).
  • Signer port — sign() only, never export (I-DEPLOY-3) + FileSigner.
  • Tested (cosign verifies against the anchor; a fork is refused).

Epic D — watcher (auths-monitor)

  • detect_spend_anchor_duplicity — cross-log (seed_id, index) fork scan,
    emitting the auths-anchor proof (D1).
  • withholding_gapnow − τ_latest > threshold alerts (D2).
  • Proofs are portable JSON artifacts (D3).

Epic E — build & devops

  • deploy/witness/ — Compose, Helm chart, Terraform (aws complete; gcp/azure
    parity notes). One pinned digest; the same artifacts Auths runs (E1).
  • cargo xtask witness-conformance [--emit <dir>] — black-box accept-surface
    conformance suite + emittable vectors (E3).
  • Invariants as named CI tests (E4, in auths-anchor).

auths-witness-cloud (NEW closed-source repo, separate branch)

Scaffolds Epics F–H: awn-control-plane (quorum diversity acceptance test via
the same spans_distinct), awn-sla, awn-pinning, awn-dashboards,
awn-billing, and deploy/. Consumes only published auths crates; the
open-core boundary (D6) is documented and CI-enforceable.

Honest phase boundaries (deferred, not silently dropped)

  • The composed witness-node serve --roles axum binary + full auths-witness /
    auths-checkpoint-cosigner deletion (D2 consolidation) — the anchor-role
    library core lands here; the HTTP surface + crate deletion is the next step.
  • B3 (export-attestation anchor submission leg) and B4 (Node/WASM freshness
    bindings) — the verify side is wired; the producer/binding side is next.
  • Per-cosigner inclusion proofs are verified when present; required in phase 1.
  • auths-site (Epics I–J) intentionally parked per the spec.

Not merged to main.

@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
f355f541 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 1/1 commits verified

@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
91e49cd4 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 1/1 commits verified

@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
e67b4db6 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 1/1 commits verified

@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
7d7c5386 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 1/1 commits verified

Implement the Auths Witness Network per docs/plans/network/final_spec.md — the
freshness layer that turns withholding into a signed contradiction and
equivocation into a publishable duplicity proof, while authorization
verification stays offline and free.

- auths-anchor (Epic A): new pure Layer-1.5 protocol core modeled on auths-rp.
  §9.2 acceptance rule, offline-verifiable duplicity proofs, t-of-N
  finalization (threshold + inclusion, honesty ceiling over the shipped
  independence engine), fresh|stale|unanchored freshness, and the AnchorStore
  CAS port. Curve-tagged signatures, never length dispatch. 34 unit +
  invariant tests green; verification half is WASM-safe.
- auths-evidence (Epic B): AnchorTier::Witness wired (witness_anchor +
  offline verify arm binding the anchor to the re-derived total); top-level
  freshness on receipts/v1 and audit/v1 beside the verdicts; duplicity-proof
  JSON schema.
- auths-witness-node (Epic C): anchor-role service (accept -> sign -> CAS ->
  re-run-on-lost -> duplicity), in-memory AnchorStore reference adapter, and a
  sign-only Signer port.
- auths-monitor (Epic D): spend-anchor duplicity scan + withholding-gap alerts.
- xtask witness-conformance + deploy/witness compose/helm/terraform (Epic E).

Phase boundaries left explicit (composed serve binary + crate consolidation,
export-attestation submit leg, node/WASM freshness bindings) are noted in the
PR. auths-site (Epics I-J) parked per the spec.

Also fixes pre-existing CI failures in auths-storage's git adapter that were
already red on main and block this branch: two unused DipEvent test imports, a
clone-on-Copy on KeriSequence, and rustfmt formatting. Trivial + mechanical;
bundled only to get this PR's CI green.

Same for the Node SDK lint: format packages/auths-node/src/evidence.rs and pin
that workflow's toolchain to 1.93 (it used an unpinned @stable that drifted
ahead of the repo's pinned formatting and was red on main).

Auths-Scope: sign_commit
Auths-Id: did:keri:EB5cPHY0t-ejNC_rUzPS1dclTvd6kG-R9mQzjozCuGgd
Auths-Device: did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
Auths-Anchor-Seq: 13
@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
0796f087 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 1/1 commits verified

The declared witness set is now self-addressing: its SAID is recomputed
from canonical content at verification and must equal what the
party-signed anchor commits to, with an optional caller-resolved SAID for
an independent expectation — a set can no longer be substituted or shown
differently to different verifiers without detection. Inclusion proofs
must be rooted in a checkpoint signed by the declared member key
(LoggedInclusion); a cosigner without one does not count toward the
threshold. Witness-tier anchors in evidence bundles are bound to the
bundle they ride in (re-derived binding head, record count, settled
total), so a genuine anchor cannot be transplanted across bundles — and
this doubles as the extension check freshness needs. Bundles no longer
label themselves fresh (anchored_index_of replaces the self-referential
freshness stamp; fresh/stale is a relying party's judgment against an
independently-known index). Anchor timestamps are whole-second on the
wire and in-process so the signed bytes always commit to the compared
value, and a post-dated timestamp beyond a small skew is refused so
withholding gaps stay measurable. Witness sets validate uniqueness and
threshold bounds. The invariant tests now construct these attacks and
assert refusal.

Auths-Scope: sign_commit
Auths-Id: did:keri:EB5cPHY0t-ejNC_rUzPS1dclTvd6kG-R9mQzjozCuGgd
Auths-Device: did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
Auths-Anchor-Seq: 13
@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
179dde4e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
0796f087 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 2/2 commits verified

The node binary exists now: witness-node serve hosts the anchor role
behind the same hardening posture as the KEL witness server (body cap,
concurrency limit, timeout), resolves party keys from a local registry
copy with the delegator check, and fails closed on roles it cannot yet
serve. Every accepted anchor is CAS-stored durably (SQLite — a witness
that forgets its per-seed state will co-sign a fork after a restart),
appended to the witness's own signed log, and answered with the
cosignature plus the member-signed logged inclusion the strict verifier
demands — proven by a test that runs the service output back through
verify_finalized unchanged.

The producer leg lands too: export-attestation --anchor-to submits the
aggregate to declared witnesses (--witness name=<key>, where the key is
a CESR verkey or did:key so the curve tag is in-band from first
ingestion — never a bare hex flag), collects cosignatures to the
threshold, re-verifies the finalized anchor locally, and embeds it in
activity.json outside the document signature. Attestation verification
now also checks an embedded anchor: finalization, tuple equality with
the document's aggregate, and that the party key is a current agent key.

Witness-set members carry an explicit curve tag on the wire and in the
SAID preimage; verification dispatches on the tag and refuses non-note
curves as a routing error. The deploy artifacts stop describing fiction:
a Dockerfile builds the real binary, compose uses a named volume (never
tmpfs) and the real flags, and the node ships a dependency-free
healthcheck subcommand the container manifests invoke.

Auths-Scope: sign_commit
Auths-Id: did:keri:EB5cPHY0t-ejNC_rUzPS1dclTvd6kG-R9mQzjozCuGgd
Auths-Device: did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
Auths-Anchor-Seq: 13
@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
8672bd23 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
179dde4e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
0796f087 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 3/3 commits verified

Both fit the existing confinement categories: the node joins the axum
service-binary wrapper set beside the other witness servers, and the
gateway joins the reqwest binary-layer client set for its witness
submissions.

Auths-Scope: sign_commit
Auths-Id: did:keri:EB5cPHY0t-ejNC_rUzPS1dclTvd6kG-R9mQzjozCuGgd
Auths-Device: did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
Auths-Anchor-Seq: 13
@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
de3e03ed ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
8672bd23 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
179dde4e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
0796f087 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 4/4 commits verified

Auths-Scope: sign_commit
Auths-Id: did:keri:EB5cPHY0t-ejNC_rUzPS1dclTvd6kG-R9mQzjozCuGgd
Auths-Device: did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
Auths-Anchor-Seq: 13
@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
a77558a9 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
de3e03ed ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
8672bd23 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
179dde4e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
0796f087 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 5/5 commits verified

The KEL-receipt and checkpoint-cosign servers fold into witness-node
serve as roles beside the anchor service — one identity seed, one durable
data dir, one hardening envelope (the standalone binaries' own posture,
applied once at the top). Role logic stays in the platform crates; the
binary only composes their routers, with the shared health surface owned
by exactly one role. The two standalone server binaries are gone; their
crates remain as the libraries the node composes. Compose, Helm, and the
image manifest now declare all three roles for real.

Auths-Scope: sign_commit
Auths-Id: did:keri:EB5cPHY0t-ejNC_rUzPS1dclTvd6kG-R9mQzjozCuGgd
Auths-Device: did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
Auths-Anchor-Seq: 13
@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
9931ab65 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
a77558a9 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
de3e03ed ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
8672bd23 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
179dde4e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
0796f087 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 6/6 commits verified

The monitor's spend-anchor detection gets its missing input: a fetch
loop pulling each watched seed's latest co-signed anchor from every
watched witness (partial visibility tolerated), feeding the duplicity
scan — a found fork is logged whole as the publishable proof — and the
withholding-gap alerts, all inside the existing verification cycle
behind three environment knobs.

witness-conformance gains --url: a dependency-free driver that takes a
live node through the black-box transport checks (health answers,
malformed and unknown-party submissions refused fail-closed, unknown
seed reads absent). Acceptance vectors still require the node's registry
to hold the conformance identity; the emitted vector document is how an
operator provisions that, and the tool says so instead of implying full
coverage.

Auths-Scope: sign_commit
Auths-Id: did:keri:EB5cPHY0t-ejNC_rUzPS1dclTvd6kG-R9mQzjozCuGgd
Auths-Device: did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
Auths-Anchor-Seq: 13
@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
9b692d3e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
9931ab65 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
a77558a9 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
de3e03ed ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
8672bd23 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
179dde4e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
0796f087 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 7/7 commits verified

claude-release added 2 commits July 19, 2026 22:42
auths-witness and auths-checkpoint-cosigner are deleted, completing the
consolidation the node started: the receipt server's hardening envelope
lives in witness-node::hardening (over auths-core's router, as before)
and the checkpoint-cosign protocol in witness-node::cosign_role, inline
tests moved with them (the cosign config drops its bind address — the
node owns binding). Workspace members, dependency entries, the deny
wrapper lists, the honesty-surface test path, the CLI's install hint,
and the deployment kit all now name the one artifact an operator runs.

Auths-Scope: sign_commit
Auths-Id: did:keri:EB5cPHY0t-ejNC_rUzPS1dclTvd6kG-R9mQzjozCuGgd
Auths-Device: did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
Auths-Anchor-Seq: 13
The folded crate's integration tests carried coverage the inline tests
lack — cosignature verifiability under the pinned key, witness-name and
pubkey binding, growth with a valid consistency proof, restart-restore
with rollback still refused, and the signing-key rejection cases. They
move into the node's own integration battery unchanged apart from the
module path and the retired bind address.

Auths-Scope: sign_commit
Auths-Id: did:keri:EB5cPHY0t-ejNC_rUzPS1dclTvd6kG-R9mQzjozCuGgd
Auths-Device: did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
Auths-Anchor-Seq: 13
@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
70320f1a ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
9b692d3e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
9931ab65 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
a77558a9 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
de3e03ed ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
8672bd23 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
179dde4e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
0796f087 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 8/8 commits verified

@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
52821499 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
70320f1a ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
9b692d3e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
9931ab65 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
a77558a9 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
de3e03ed ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
8672bd23 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
179dde4e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
0796f087 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 9/9 commits verified

Auths-Scope: sign_commit
Auths-Id: did:keri:EB5cPHY0t-ejNC_rUzPS1dclTvd6kG-R9mQzjozCuGgd
Auths-Device: did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
Auths-Anchor-Seq: 13
@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
f38e7016 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
52821499 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
70320f1a ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
9b692d3e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
9931ab65 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
a77558a9 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
de3e03ed ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
8672bd23 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
179dde4e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
0796f087 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 10/10 commits verified

claude-release and others added 2 commits July 19, 2026 23:43
A bare -p auths-witness-node build only compiled when another workspace
member happened to unify auths-core's witness-server feature in. Declare
it on the dependency that uses it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Auths-Scope: sign_commit
Auths-Id: did:keri:EB5cPHY0t-ejNC_rUzPS1dclTvd6kG-R9mQzjozCuGgd
Auths-Device: did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
Auths-Anchor-Seq: 13
The result gains anchor: null | {tier, threshold, witnesses, cosigners,
seedId, witnessSetSaid}, emitted only after verify_embedded_anchor
re-checked the finalization — so a relying party (the market's receipts
worker) derives the witness tier from proven facts, never from a seller
claim. Additive; older consumers unaffected.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Auths-Scope: sign_commit
Auths-Id: did:keri:EB5cPHY0t-ejNC_rUzPS1dclTvd6kG-R9mQzjozCuGgd
Auths-Device: did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
Auths-Anchor-Seq: 13
@bordumb
bordumb merged commit 0f94f43 into main Jul 20, 2026
@github-actions

Copy link
Copy Markdown

Auths Commit Verification

Commit Status Details
0f94f437 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
800586e1 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
f38e7016 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
52821499 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
70320f1a ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
9b692d3e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
9931ab65 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
a77558a9 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
de3e03ed ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
8672bd23 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
179dde4e ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp
0796f087 ✅ Verified Signed by did:keri:EO1cBsYoV5izKvdIL6TstN5TOQl1hYN3WnhtAOh1lwAp

Result: ✅ 12/12 commits verified

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant