From de33cd589d37401dc4652b0094cc30dbefff78cf Mon Sep 17 00:00:00 2001 From: Timothy Wayne Gregg <5861166+CompleteDotTech@users.noreply.github.com> Date: Sun, 30 Aug 2026 15:45:01 +0000 Subject: [PATCH] docs: record issue 9 roadmap status and reset G2 evidence to candidate Add docs/2026-08-30-issue-9-roadmap-status.md: a dated status and decision record for OpenCoven/psyche#9 covering what exists on main at 1e47b40 (contract foundation, CI, retained evidence), the state of each 90-day phase and workstream outcome, a verdict against the nine global acceptance criteria, and the remaining critical path. Facts only, with evidence links. Reset docs/G2-EVIDENCE.md to the exact candidate placeholder state. The retained passed record pins tested commit f4f242f, a dangling squash of #8 that is not an ancestor of main, so check-g2-evidence.py rejects every content PR before it starts (observed on PR #15 across all three OSes). Candidate status is the repo's established rhythm for content PRs (see e12b059 'docs: reset G2 evidence after hardening'): the checker skips remote attestation for candidate, and a docs-only follow-up PR re-attests passed against the merged squash commit. This PR changes no contracts, no tests, no workflow, and no manifest. Refs OpenCoven/psyche#9 Signed-off-by: Timothy Wayne Gregg <5861166+CompleteDotTech@users.noreply.github.com> --- docs/2026-08-30-issue-9-roadmap-status.md | 78 +++++++++++++++++++++++ docs/G2-EVIDENCE.md | 76 +++++++++++----------- 2 files changed, 116 insertions(+), 38 deletions(-) create mode 100644 docs/2026-08-30-issue-9-roadmap-status.md diff --git a/docs/2026-08-30-issue-9-roadmap-status.md b/docs/2026-08-30-issue-9-roadmap-status.md new file mode 100644 index 0000000..1dc751d --- /dev/null +++ b/docs/2026-08-30-issue-9-roadmap-status.md @@ -0,0 +1,78 @@ +# Psyche Roadmap Status Record — Issue #9 (2026-08-30) + +**Record date:** 2026-08-30 +**Subject:** OpenCoven/psyche#9 — Roadmap: establish Psyche as OpenCoven's canonical orchestration protocol +**Observed state:** upstream `main` at `1e47b40dbbb9db21962b4884afe49763321f04b0` (authored 2026-08-12) +**Method:** REST-only inspection of the repository, issues, pull requests, check runs, and Actions runs on 2026-08-30; local run of the npm wrapper test suite and `npm pack --dry-run` against a clean clone of `1e47b40`. This record documents status; it does not decide ownership (that decision belongs to #12). + +## 1. What exists on `main` today + +### 1.1 Contract foundation (present, attested) + +- Rust workspace of 8 crates (`psyche-core`, `psyche-config`, `psyche-store`, `psyche-coven`, `psyche-surfaces`, `psyche-runtime`, `psyche-cli`, `psyche-test-support`); 33,805 lines of Rust; workspace version `0.0.0`, MSRV 1.88, edition 2024, MIT, `publish = false` (evidence: `Cargo.toml`). +- Closed v1 schema registry of 16 kinds (`psyche.identity_snapshot.v1` … `psyche.error.v1`) with strict decode: unknown kind, unknown major version, and unknown enum values fail closed into quarantinable documents, never dispatchable records (evidence: `docs/SCHEMAS.md`; enforced by `crates/psyche-core/tests/decode.rs` and checker-pinned in `scripts/check-g2-evidence.py`). +- Canonical identity vocabulary with owned prefixes (`att_`, `del_`, `dlg_`, `qua_`), RFC 8785 canonical JSON, and SHA-256 digest recomputation before authority or persistence accepts a claim (evidence: `docs/SCHEMAS.md`, `crates/psyche-core/src/contracts/`). +- Durable layer: append-only records, append-only transition history, migrations (v1), quarantine with idempotent resolution, retention exclusions, and crash recovery under fault injection (evidence: `crates/psyche-store/tests/{records,migrations,retention,crash}.rs`). +- Typed Coven adapter boundary with golden request digests (evidence: `crates/psyche-coven/tests/request_digest.rs`, fixtures `execution-request-launch.json` / `execution-request-input.json` with pinned SHA-256 values). +- Reusable deterministic conformance suites C-S1…C-S12, fixed-seed property/state-machine testing (2048 cases, seed 0), and a test manifest mapping every atomic evidence command (evidence: `crates/psyche-test-support/`, `scripts/g2-test-manifest.json`, `docs/TESTING.md`). +- CI on Linux/macOS/Windows running format, clippy (`-D warnings`), workspace tests, the fixed-seed G2 suites, plus supply-chain (cargo-deny) and secret guard (gitleaks) jobs; the workflow file is byte-pinned by the evidence checker (`REVIEWED_WORKFLOW_SHA256`, evidence: `.github/workflows/ci.yml`, `scripts/check-g2-evidence.py`). +- Retained G2 attestation record `docs/G2-EVIDENCE.md` (status `passed`, CI run `31565714638`, dated 2026-08-12) — see §4 for a defect in that record. +- npm distribution wrapper `@opencoven/psyche` `0.0.0` (Node ≥ 20, no dependencies, zeroed platform checksums — binary packages unpublished). Local verification 2026-08-30: `npm --prefix packages/psyche-npm test` 16/16 pass; `npm pack --dry-run` yields 5 files. + +### 1.2 Public productization surfaces (absent — the gap issue #9 names) + +The root of a clean checkout contains no `README.md`, no `AGENTS.md`, no `CONTRIBUTING.md`, no `SECURITY.md`, no `LICENSE` file, no roadmap document, no bootstrap script, and no standalone conformance runner. Compatibility/migration behavior is documented as decode semantics inside `docs/SCHEMAS.md`, but there is no written compatibility, downgrade, deprecation, or rollback policy, and no versioned consumer graduation path. Verification is documented (`docs/TESTING.md`) but there is no single fast/full verification entrypoint script. This matches the issue's "Current baseline" statement: the gap is public productization and ownership clarity, not contract work. + +## 2. Phase status against the 90-day plan (as of 2026-08-30) + +| Phase | Target window | Issue-exit gate | Current state | +|---|---|---|---| +| 0. Control and agent readiness | Aug 26–Sep 8 | Clean-clone onboarding, root agent contract, deterministic fast/full checks, explicit status/ownership | **In progress, not met on `main`.** Draft PR #15 (opened 2026-08-26, head `8a4ff6d`) adds the root README, `AGENTS.md`, active roadmap, proposed ownership matrix, `agent/manifest.yaml`, and `scripts/agent-bootstrap` / `scripts/agent-check fast\|full`. Its CI is red at the "G2 evidence relationships" step on all three OSes (Actions run `32956215259`); its other checks (dependency audit, secret guard, npm ×2) are green. | +| 1. Protocol v1 publication | Sep 9–Sep 29 | Versioned schemas, golden vectors, compatibility policy, standalone conformance runner, public and repeatable | **Not started on `main`.** Draft PR #17 (opened 2026-08-26, head `54eee3a`) is the prerequisite repair: it preserves the original G2 verifier as `scripts/check-g2-evidence-v1.py` and adds an `psyche.g2-attestation-scope/v1` policy that whitelists ten repository-readiness paths so publication work can land without violating the G2 attestation freeze. Draft, CI unstable. | +| 2. Reference-client canary | Sep 30–Oct 20 | Psyche Build consumes pinned Psyche artifacts and passes positive/denial/restart/downgrade canaries | **Mapping only.** OpenCoven/psyche-build#253 (outcome) is open; OpenCoven/psyche-build#254 (mapping draft PR) was closed unmerged on 2026-08-28. No pinned artifact consumption exists. | +| 3. Lifecycle completion | Oct 21–Nov 10 | Leases, approvals, receipts, cancellation, recovery, cross-surface continuity executable rather than inferred | **Not started.** Cancellation-state vocabulary, termination windows, and O5 acknowledgement evidence exist as G2 contracts (`docs/SCHEMAS.md`); executable lifecycle composition is future work. | +| 4. Release candidate | Nov 11–Nov 24 | Security/release governance, support policy, signed artifacts, migration guidance, retained reference flow | **Not started.** No release artifacts exist (`publish = false`; npm checksums are zero placeholders); the CI security floor (cargo-deny, gitleaks) is the only #14 item present on `main`. | + +## 3. Workstream status versus the issue's table + +| Outcome | Issue state on 2026-08-30 | Evidence | +|---|---|---| +| #10 repository/agent-readiness (P0, Ph0) | Open; initial implementation in PR #15 (draft, red CI at G2 evidence step) | PR #15, run `32956215259` | +| #11 protocol v1 publication (P0, Ph1) | Open; no publication artifacts on `main` | §2 Phase 1 | +| #12 cross-repo ownership/compatibility (P0, Ph0–1) | Open; ownership matrix only proposed (in PR #15), no approved ADR | PR #15 body | +| #13 Psyche Build conformance (P1, Ph2) | Open; mapping-only; downstream mapping PR closed unmerged | psyche-build#253, psyche-build#254 | +| #14 security/release/governance (P1, Ph0+4) | Open; minimum security floor (audit + secret guard) already green in CI | `.github/workflows/ci.yml` | +| #18 (new, not in the issue's table) adapter for automation-triggered orchestration | Opened 2026-08-30 (P1) | issue #18 | + +Issue #9 itself: open, assigned to BunsDev, one maintainer checkpoint comment dated 2026-08-26 recording the move from audit to tracked implementation and the pending conditions for Phase 0 (exact-head CI and clean-checkout execution for #15; ownership/security wording review; #10/#12/#14 evidence merge; ownership approval before #11). + +## 4. Control-plane finding: the G2 evidence freeze blocks all content PRs + +`docs/G2-EVIDENCE.md` is status `passed` and pins `Tested source commit: f4f242f…`. `scripts/check-g2-evidence.py` requires, for `passed` status, that the diff from the tested commit to a PR head be exactly one modified file (`docs/G2-EVIDENCE.md`) and that the tested commit be the merge-base ancestor of the PR head. On current `main` the pinned tested commit `f4f242f` is a dangling squash of PR #8 — it is not an ancestor of `1e47b40` (verified 2026-08-30: the object is absent from a full clone's history). Consequence, confirmed by PR #15's red runs: the "G2 evidence relationships" CI step cannot pass for any PR that carries content, regardless of author. The repo's own history shows the remedy rhythm (e.g. commit `e12b059` "docs: reset G2 evidence after hardening"): a content PR resets the evidence record to the exact `candidate` placeholder state so remote attestation is skipped, and a docs-only follow-up PR re-attests `passed` against the merged squash commit. PR #17 is the alternative, structural remedy (scope policy). Until one of these lands, every content PR — including any new roadmap or publication work — is red at this step. + +## 5. Verdict against issue #9's global acceptance criteria + +| Criterion | Verdict on `1e47b40` | Basis | +|---|---|---| +| Every protocol identity and transition has one canonical owner | **Partial** | In-repo ownership is explicit (`docs/ARCHITECTURE.md` dependency arrows; core owns contracts, store owns durable records); the cross-repository ownership matrix exists only as a proposal in draft PR #15; #12 is unresolved. | +| No stable identity depends on a Bead ID, GitHub issue, tmux pane, process, filesystem path, provider session, transport endpoint, or UI component | **Met (contract level)** | Closed owned ID vocabulary with its own prefixes, strict decode, and digest binding (`docs/SCHEMAS.md`, `crates/psyche-core`); no external planner/infra identifier appears in the record contracts. | +| A clean checkout exposes one documented bootstrap path and one fast/full verification interface | **Unmet** | No root README/AGENTS/bootstrap script; `docs/TESTING.md` documents commands but there is no single entrypoint. Draft PR #15 adds both. | +| Protocol schemas and golden vectors are versioned and consumable without copying internal Rust types by hand | **Partial** | Versioned registry and golden digest fixtures are in-tree (`docs/SCHEMAS.md`, `crates/psyche-coven/tests/fixtures/`); no published standalone schema/golden-vector artifact set exists. | +| Unknown major versions, unknown enums, widened authority, stale correlation, and ambiguous effects fail closed | **Met (contract level)** | Unknown kind/major/enum are quarantinable decode failures; request digests are recomputed and stale-digest mutations rejected; ambiguity fencing is asserted by C-S6 and the state-machine suite (`docs/SCHEMAS.md`, `docs/G2-EVIDENCE.md` matrix, `scripts/check-g2-evidence.py` pins). | +| Psyche Build passes a pinned cross-repository conformance canary as the first reference client | **Unmet** | Mapping-only state: psyche-build#253 open; psyche-build#254 closed unmerged 2026-08-28; no pinned artifact consumption. | +| Compatibility, migration, downgrade, deprecation, and rollback policies are explicit | **Partial** | Fail-closed decode and migrations v1 are documented; no written compatibility/deprecation/rollback policy document exists. | +| Release and support claims are tied to immutable artifacts and retained evidence | **Partial** | Retained evidence practice exists (`docs/G2-EVIDENCE.md`) but carries the §4 defect; no release artifacts or support claims exist yet (`publish = false`, zeroed npm checksums). | +| Active work, deferred work, and historical design records are clearly separated | **Unmet** | No root roadmap/status surface on `main`; program state lives in issue #9 and its checkpoint comment; draft PR #15 adds it. | + +Overall: the contract foundation named in the issue's baseline is real and CI-attested; none of the nine criteria is fully satisfied at the repository/productization level on `main` today, consistent with the issue's own "primary gap is public productization and ownership clarity." + +## 6. What remains, on the critical path + +1. Repair or scope the G2 evidence gate (land PR #17, or follow the established candidate-reset rhythm) so content PRs can reach green CI. This is the immediate blocker observable on PR #15. +2. Land #10/#15 — root entrypoint, agent contract, roadmap, bootstrap and fast/full check entrypoints — to close the Phase 0 gate. +3. Approve the #12 ownership/compatibility ADR; the issue's concurrency rules require this before #11 declares a stable consumer profile. +4. #11: publish versioned schemas, golden vectors, compatibility policy, and a standalone conformance runner. +5. #13: pin a Psyche artifact in Psyche Build and pass the four canary classes (only after #11). +6. #14: stable release governance, support policy, signed artifacts, migration guidance (after #11 and #13). + +Per the issue, dates are planning targets and do not weaken exit gates; the Phase 0 window (Aug 26–Sep 8) closes before the evidence-gate repair (#17) and the readiness PR (#15) have landed, so Phase 0 slips unless both merge. diff --git a/docs/G2-EVIDENCE.md b/docs/G2-EVIDENCE.md index 2ae215b..81bf23a 100644 --- a/docs/G2-EVIDENCE.md +++ b/docs/G2-EVIDENCE.md @@ -1,11 +1,11 @@ # G2 Contract Foundation Evidence -**Status:** passed -**Tested source commit:** `f4f242f88f41dcb8286c867ea1601dac2c14a80a` -**CI attestation:** `https://github.com/OpenCoven/psyche/actions/runs/31565714638` -**Coven plan source commit:** `5f22ebef1e23d045a10f2ec0a3c87be029446cf6` -**Coven plan URL:** `https://github.com/OpenCoven/coven/blob/5f22ebef1e23d045a10f2ec0a3c87be029446cf6/docs/superpowers/plans/2026-08-05-psyche-w2-g2-foundation.md` -**Coven plan SHA-256:** `sha256:4fba002ad9f969cd01866ea08f270654f82b53c7d90b73d28643a9abb12cba68` +**Status:** candidate +**Tested source commit:** not recorded before remote review +**CI attestation:** not recorded before remote review +**Coven plan source commit:** not recorded before plan approval +**Coven plan URL:** not recorded before plan approval +**Coven plan SHA-256:** not recorded before plan approval **Coven specification source commit:** `42dcbc43-34cb48ec-af63efb5-50345e3e-ea2fb7ad` | Coven source | Immutable URL | SHA-256 | @@ -18,35 +18,35 @@ | Criterion | Command | Result | Artifact | |---|---|---|---| -| Canonical ID prefixes and execution-binding identity | `cargo test -p psyche-core --test contracts -- --exact delivery_keeps_the_canonical_del_prefix && cargo test -p psyche-core --test contracts -- --exact delegation_uses_the_distinct_dlg_prefix && cargo test -p psyche-core --test contracts -- --exact execution_binding_uses_attempt_as_its_only_record_kind` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Complete canonical error enum | `cargo test -p psyche-core --test contracts -- --exact all_canonical_error_codes_decode` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Canonical delivery v1 shape | `cargo test -p psyche-core --test contracts -- --exact delivery_v1_fixture_round_trips_canonically && cargo test -p psyche-store --test records -- --exact delivery_direct_insert_round_trips_canonically` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Surface and quarantine owned types | `cargo test -p psyche-core --test contracts -- --exact surface_event_and_effect_fixtures_round_trip && cargo test -p psyche-store --test retention -- --exact quarantine_id_constructor_parser_and_serde_round_trip` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Package-local nullable-binding fixtures | `cargo test -p psyche-core --test contracts -- --exact graph_and_node_accept_only_the_two_frozen_nullable_bindings` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Exhaustive registered decode | `cargo test -p psyche-core --test decode -- --exact recognized_error_envelope_decodes_exhaustively` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Unknown kind/version/enum denial and quarantine | `cargo test -p psyche-core --test decode -- --exact unknown_typed_enum_is_a_quarantinable_decode_failure && cargo test -p psyche-store --test retention -- --exact unknown_enum_is_quarantined_without_dispatchable_record` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Quarantine resolution | `cargo test -p psyche-store --test retention -- --exact quarantine_resolution_is_durable_and_idempotent && cargo test -p psyche-store --test retention -- --exact concurrent_quarantine_resolution_has_one_durable_winner` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Direct typed insert validation | `cargo test -p psyche-store --test records -- --exact direct_insert_rejects_wrong_field_id_kind_without_writing && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_acknowledged_cancellation_without_evidence && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_acknowledged_state_without_termination_correlation && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_mismatched_cancellation_evidence && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_wrong_termination_request_id && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_termination_before_execution_request && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_acknowledgement_outside_termination_window && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_acknowledgement_before_termination_window && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_unresolved_outside_termination_window && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_unresolved_before_termination_window && cargo test -p psyche-store --test records -- --exact direct_insert_accepts_acknowledgement_at_termination_window_boundaries && cargo test -p psyche-store --test records -- --exact direct_insert_accepts_unresolved_at_termination_window_boundaries && cargo test -p psyche-store --test records -- --exact direct_insert_accepts_termination_window_after_execution_deadline && cargo test -p psyche-store --test records -- --exact direct_insert_accepts_termination_at_execution_creation_boundary` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Append-only execution-binding revisions | `cargo test -p psyche-store --test records -- --exact execution_binding_revision_appends_termination_outcomes_without_record_conflict && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_forks_gaps_and_changed_correlation && cargo test -p psyche-store --test records -- --exact execution_binding_revision_replay_is_idempotent && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_same_revision_changed_bytes && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_changed_reason_replay && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_every_frozen_execution_field_change && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_session_and_termination_rebinding && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_termination_correlation_removal && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_timestamp_regression && cargo test -p psyche-store --test retention -- --exact pruning_preserves_unresolved_quarantine_binding_revisions_and_transitions` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Transition contract and append-only rules | `cargo test -p psyche-store --test records -- --exact transition_versions_are_monotonic_and_append_only` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Checkpoint-failure shutdown | `cargo test -p psyche-runtime --lib -- --exact tests::checkpoint_failure_stops_and_releases_every_shutdown_waiter` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Migrations | `cargo test -p psyche-store --test migrations -- --exact fresh_store_applies_v1_once_and_reopens` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| State-machine/property | `cargo test -p psyche-test-support --test state_machine -- --exact model_and_store_agree_after_any_foundation_operation_sequence` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Crash/restart | `cargo test -p psyche-store --features test-fault-injection --test crash -- --exact killed_writer_exposes_only_committed_state_after_reopen` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Fake boundaries and durable termination ordering | `cargo test -p psyche-test-support --test fakes -- --exact advertised_adoption_requires_a_scripted_adoption_step && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_requires_durable_session_bound_revision && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_persists_acknowledged_outcome_before_success && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_persists_unresolved_outcome_before_success && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_exact_replay_is_idempotent && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_crash_after_response_leaves_recoverable_request && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_restart_recovers_missing_outcome && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_rejects_conflicting_replay_response && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_rejects_invalid_outcome_evidence && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_rejects_unresolved_outside_termination_window && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_reports_indeterminate_outcome_persistence && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_accepts_concurrent_exact_outcome_replay && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_rejects_concurrent_divergent_outcome && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_rejects_outcome_byte_attestation_mismatch` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Execution request RFC3339 golden bytes | `cargo test -p psyche-coven --test request_digest -- --exact execution_request_launch_matches_golden_bytes_and_digest && cargo test -p psyche-coven --test request_digest -- --exact execution_request_input_matches_golden_bytes_and_digest` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Validated termination dispatch | `cargo test -p psyche-coven --test bindings -- --exact termination_dispatch_rejects_invalid_request_before_persistence` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| G2 cancellation-state vocabulary | `cargo test -p psyche-core --test contracts -- --exact cancellation_state_vocabulary_requires_matching_o5_evidence` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| Full execution-request digest binding | `cargo test -p psyche-test-support --test state_machine -- --exact request_digest_binds_every_typed_field` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| C-S1 scripted contract negotiation | `cargo test -p psyche-test-support --test conformance -- --exact c_s1_contract_negotiation` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| C-S2 scripted session lifecycle | `cargo test -p psyche-test-support --test conformance -- --exact c_s2_session_lifecycle` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| C-S3 scripted snapshot/attempt binding | `cargo test -p psyche-test-support --test conformance -- --exact c_s3_snapshot_attempt_binding` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| C-S4 scripted stable adoption | `cargo test -p psyche-test-support --test conformance -- --exact c_s4_stable_adoption` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| C-S5 scripted non-adoption proof | `cargo test -p psyche-test-support --test conformance -- --exact c_s5_non_adoption_proof` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| C-S6 scripted ambiguity reconciliation/fence | `cargo test -p psyche-test-support --test state_machine -- --exact c_s6_model_never_redispatches_without_fence && cargo test -p psyche-test-support --test conformance -- --exact c_s6_ambiguity_fence` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| C-S7 scripted ordered cursor | `cargo test -p psyche-test-support --test conformance -- --exact c_s7_ordered_cursor` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| C-S8 scripted terminal authority | `cargo test -p psyche-test-support --test conformance -- --exact c_s8_terminal_authority` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| C-S9 scripted O5 cancellation acknowledgement | `cargo test -p psyche-test-support --test conformance -- --exact c_s9_cancellation_acknowledgement` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| C-S10 scripted result/artifact binding | `cargo test -p psyche-coven --test bindings -- --exact result_bundle_fixture_round_trips_complete_content_references && cargo test -p psyche-coven --test bindings -- --exact result_bundle_fixture_uses_launch_request_correlation && cargo test -p psyche-coven --test bindings -- --exact content_reference_rejects_digest_size_media_type_and_lifetime_mismatch && cargo test -p psyche-test-support --test conformance -- --exact c_s10_result_artifact_binding` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| C-S11 scripted restart persistence | `cargo test -p psyche-test-support --test conformance -- --exact c_s11_restart_persistence` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | -| C-S12 scripted structured denial | `cargo test -p psyche-test-support --test conformance -- --exact c_s12_structured_denial` | passed | https://github.com/OpenCoven/psyche/actions/runs/31565714638 | +| Canonical ID prefixes and execution-binding identity | `cargo test -p psyche-core --test contracts -- --exact delivery_keeps_the_canonical_del_prefix && cargo test -p psyche-core --test contracts -- --exact delegation_uses_the_distinct_dlg_prefix && cargo test -p psyche-core --test contracts -- --exact execution_binding_uses_attempt_as_its_only_record_kind` | not run remotely | none | +| Complete canonical error enum | `cargo test -p psyche-core --test contracts -- --exact all_canonical_error_codes_decode` | not run remotely | none | +| Canonical delivery v1 shape | `cargo test -p psyche-core --test contracts -- --exact delivery_v1_fixture_round_trips_canonically && cargo test -p psyche-store --test records -- --exact delivery_direct_insert_round_trips_canonically` | not run remotely | none | +| Surface and quarantine owned types | `cargo test -p psyche-core --test contracts -- --exact surface_event_and_effect_fixtures_round_trip && cargo test -p psyche-store --test retention -- --exact quarantine_id_constructor_parser_and_serde_round_trip` | not run remotely | none | +| Package-local nullable-binding fixtures | `cargo test -p psyche-core --test contracts -- --exact graph_and_node_accept_only_the_two_frozen_nullable_bindings` | not run remotely | none | +| Exhaustive registered decode | `cargo test -p psyche-core --test decode -- --exact recognized_error_envelope_decodes_exhaustively` | not run remotely | none | +| Unknown kind/version/enum denial and quarantine | `cargo test -p psyche-core --test decode -- --exact unknown_typed_enum_is_a_quarantinable_decode_failure && cargo test -p psyche-store --test retention -- --exact unknown_enum_is_quarantined_without_dispatchable_record` | not run remotely | none | +| Quarantine resolution | `cargo test -p psyche-store --test retention -- --exact quarantine_resolution_is_durable_and_idempotent && cargo test -p psyche-store --test retention -- --exact concurrent_quarantine_resolution_has_one_durable_winner` | not run remotely | none | +| Direct typed insert validation | `cargo test -p psyche-store --test records -- --exact direct_insert_rejects_wrong_field_id_kind_without_writing && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_acknowledged_cancellation_without_evidence && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_acknowledged_state_without_termination_correlation && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_mismatched_cancellation_evidence && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_wrong_termination_request_id && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_termination_before_execution_request && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_acknowledgement_outside_termination_window && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_acknowledgement_before_termination_window && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_unresolved_outside_termination_window && cargo test -p psyche-store --test records -- --exact direct_insert_rejects_unresolved_before_termination_window && cargo test -p psyche-store --test records -- --exact direct_insert_accepts_acknowledgement_at_termination_window_boundaries && cargo test -p psyche-store --test records -- --exact direct_insert_accepts_unresolved_at_termination_window_boundaries && cargo test -p psyche-store --test records -- --exact direct_insert_accepts_termination_window_after_execution_deadline && cargo test -p psyche-store --test records -- --exact direct_insert_accepts_termination_at_execution_creation_boundary` | not run remotely | none | +| Append-only execution-binding revisions | `cargo test -p psyche-store --test records -- --exact execution_binding_revision_appends_termination_outcomes_without_record_conflict && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_forks_gaps_and_changed_correlation && cargo test -p psyche-store --test records -- --exact execution_binding_revision_replay_is_idempotent && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_same_revision_changed_bytes && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_changed_reason_replay && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_every_frozen_execution_field_change && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_session_and_termination_rebinding && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_termination_correlation_removal && cargo test -p psyche-store --test records -- --exact execution_binding_revision_rejects_timestamp_regression && cargo test -p psyche-store --test retention -- --exact pruning_preserves_unresolved_quarantine_binding_revisions_and_transitions` | not run remotely | none | +| Transition contract and append-only rules | `cargo test -p psyche-store --test records -- --exact transition_versions_are_monotonic_and_append_only` | not run remotely | none | +| Checkpoint-failure shutdown | `cargo test -p psyche-runtime --lib -- --exact tests::checkpoint_failure_stops_and_releases_every_shutdown_waiter` | not run remotely | none | +| Migrations | `cargo test -p psyche-store --test migrations -- --exact fresh_store_applies_v1_once_and_reopens` | not run remotely | none | +| State-machine/property | `cargo test -p psyche-test-support --test state_machine -- --exact model_and_store_agree_after_any_foundation_operation_sequence` | not run remotely | none | +| Crash/restart | `cargo test -p psyche-store --features test-fault-injection --test crash -- --exact killed_writer_exposes_only_committed_state_after_reopen` | not run remotely | none | +| Fake boundaries and durable termination ordering | `cargo test -p psyche-test-support --test fakes -- --exact advertised_adoption_requires_a_scripted_adoption_step && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_requires_durable_session_bound_revision && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_persists_acknowledged_outcome_before_success && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_persists_unresolved_outcome_before_success && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_exact_replay_is_idempotent && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_crash_after_response_leaves_recoverable_request && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_restart_recovers_missing_outcome && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_rejects_conflicting_replay_response && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_rejects_invalid_outcome_evidence && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_rejects_unresolved_outside_termination_window && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_reports_indeterminate_outcome_persistence && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_accepts_concurrent_exact_outcome_replay && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_rejects_concurrent_divergent_outcome && cargo test -p psyche-test-support --test fakes -- --exact termination_dispatch_rejects_outcome_byte_attestation_mismatch` | not run remotely | none | +| Execution request RFC3339 golden bytes | `cargo test -p psyche-coven --test request_digest -- --exact execution_request_launch_matches_golden_bytes_and_digest && cargo test -p psyche-coven --test request_digest -- --exact execution_request_input_matches_golden_bytes_and_digest` | not run remotely | none | +| Validated termination dispatch | `cargo test -p psyche-coven --test bindings -- --exact termination_dispatch_rejects_invalid_request_before_persistence` | not run remotely | none | +| G2 cancellation-state vocabulary | `cargo test -p psyche-core --test contracts -- --exact cancellation_state_vocabulary_requires_matching_o5_evidence` | not run remotely | none | +| Full execution-request digest binding | `cargo test -p psyche-test-support --test state_machine -- --exact request_digest_binds_every_typed_field` | not run remotely | none | +| C-S1 scripted contract negotiation | `cargo test -p psyche-test-support --test conformance -- --exact c_s1_contract_negotiation` | not run remotely | none | +| C-S2 scripted session lifecycle | `cargo test -p psyche-test-support --test conformance -- --exact c_s2_session_lifecycle` | not run remotely | none | +| C-S3 scripted snapshot/attempt binding | `cargo test -p psyche-test-support --test conformance -- --exact c_s3_snapshot_attempt_binding` | not run remotely | none | +| C-S4 scripted stable adoption | `cargo test -p psyche-test-support --test conformance -- --exact c_s4_stable_adoption` | not run remotely | none | +| C-S5 scripted non-adoption proof | `cargo test -p psyche-test-support --test conformance -- --exact c_s5_non_adoption_proof` | not run remotely | none | +| C-S6 scripted ambiguity reconciliation/fence | `cargo test -p psyche-test-support --test state_machine -- --exact c_s6_model_never_redispatches_without_fence && cargo test -p psyche-test-support --test conformance -- --exact c_s6_ambiguity_fence` | not run remotely | none | +| C-S7 scripted ordered cursor | `cargo test -p psyche-test-support --test conformance -- --exact c_s7_ordered_cursor` | not run remotely | none | +| C-S8 scripted terminal authority | `cargo test -p psyche-test-support --test conformance -- --exact c_s8_terminal_authority` | not run remotely | none | +| C-S9 scripted O5 cancellation acknowledgement | `cargo test -p psyche-test-support --test conformance -- --exact c_s9_cancellation_acknowledgement` | not run remotely | none | +| C-S10 scripted result/artifact binding | `cargo test -p psyche-coven --test bindings -- --exact result_bundle_fixture_round_trips_complete_content_references && cargo test -p psyche-coven --test bindings -- --exact result_bundle_fixture_uses_launch_request_correlation && cargo test -p psyche-coven --test bindings -- --exact content_reference_rejects_digest_size_media_type_and_lifetime_mismatch && cargo test -p psyche-test-support --test conformance -- --exact c_s10_result_artifact_binding` | not run remotely | none | +| C-S11 scripted restart persistence | `cargo test -p psyche-test-support --test conformance -- --exact c_s11_restart_persistence` | not run remotely | none | +| C-S12 scripted structured denial | `cargo test -p psyche-test-support --test conformance -- --exact c_s12_structured_denial` | not run remotely | none |