Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
- Add a Noema-owned exact-claim evidence receipt contract whose execution and research producers serialize one canonical artifact that binds every receipt semantic field, including command/result/isolation/network or source revision/excerpt/retrieval policy. Admission accepts only a receipt ID from untrusted model output. The owner API first verifies the exact authenticated OpenCode-handoff manifest digest, canonical envelope bytes, reviewed producer-to-kind policy, and repository/head/workflow/run/attempt identity before it can construct an immutable typed index; admission then reconstructs each canonical artifact and verifies time/claim/artifact identity. The version-2 manifest now binds a separate producer-authenticated `ClaimEvidenceRequirement` containing the exact claim, independently required evidence kind, and `context` or `finding` publication authority. Raw current-head source lines are context only: they are withheld from finding-reference prompts and cannot publish a finding or `request_changes`; an explicitly producer-authorized source finding remains usable and retains exact path/line checks. Finding-free model `request_changes` and `blocked` verdicts cannot bypass receipt admission to publish a vacuous blocking review. Requirement/receipt kind mismatch, fixed-artifact semantic substitution, caller-supplied receipt dictionaries, model self-classification, stale identities, cross-kind receipts, marker-only sandbox output, noncanonical artifact bytes, and expired receipts fail closed before the GitHub publisher. This remains the owner prerequisite for ContextualWisdomLab/.github#1641 and issue #555. The reviewed `sandboxed_verify` adapter exists in owner source, but its actual central stdout/stderr/marker-to-manifest wiring and the trusted research producer are not yet integrated; exact-head hosted GREEN, immutable release, and the verified central consumer bump remain required.

## Unreleased
- Workflow / Task Execution의 기존 execution-scoped `NOEMA_WORKFLOW_STATE` private Durable Object command surface에 observation-only `read_operability`를 추가한다. Exact admitted execution/plan과 동일한 hashed object identity를 재사용하고 SQLite `databaseSize`를 `{ database_size_bytes }`로만 반환한다. Caller-only field는 private command transport projection에서 제거하고, 성공 응답에는 admitted plan·workflow/task payload·raw execution identity를 포함하지 않는다. Foreign object identity와 unavailable/throwing/negative/non-integer storage metadata는 실패-폐쇄한다. 이 값은 exact-object storage-growth 증거를 만들기 위한 source-level producer일 뿐 unit/fake bytes가 deployed transaction/restart/recovery, representative workload denominator, p95, PITR/rollback, deployment 또는 immutable release 증거가 되지는 않는다. issue #541, PR #605, ADR 0013.
- Noema Policy / Approval에 procedural graph **publication preflight**를 추가했다. PR #603에서 current State / Checkpoint history와 Policy / Approval snapshot을 stable double-read로 다시 읽어 moving authority와 current revoke를 실패-폐쇄하고 exact graph/history/evaluator handoff/signer/approval identity를 결합한다. 반환되는 process-local preflight receipt는 `publicationAuthorized:false`와 `activationAuthorized:false`를 유지한다. 실제 graph publication, current lifecycle/revocation, live Keyverse/owner trust, immutable released `context-graph-contracts`, canary/rollback 및 production outcome authority는 별도다.
- Policy / Approval에 procedural graph lineage의 독립 승인·취소 CAS 원장을 추가한다. 기존 Agent Runtime이 admit한 exact graph와 State / Checkpoint가 provenance-preserving read authority로 반환한 verified evaluation history를 exact candidate/history/evaluator handoff identity에 결합하고, monotonic approval-version CAS·exact decision replay·explicit revoke·bounded digest-chain integrity를 검증한다. structural clone history/approval snapshot, stale writer, malformed 또는 mismatched independent decision과 retained-byte integrity 위반은 실패-폐쇄하며 모든 event/snapshot은 `activationAuthorized:false`를 유지한다. Keyverse signer/key custody, graph publication, immutable release/deployment/canary, tool/model/provider routing과 product/domain truth는 이 경계 밖이다. issue #584, PR #601.
- State / Checkpoint의 durable procedural evaluation history에 provenance-preserving read authority를 추가한다. canonical repository가 retained bytes와 graph lineage를 검증해 반환한 immutable snapshot만 process-local admission으로 표시하고, structural clone·deserialized lookalike·append-return snapshot·caller-created object·null은 downstream Policy / Approval anti-corruption boundary에서 authority로 오인되지 않도록 실패-폐쇄한다. 이 표시는 읽은 시점의 verified provenance만 증명하며 이후 append에 대한 currentness, Policy / Approval decision, graph publication/promotion 또는 activation authority를 부여하지 않는다. issue #584, PR #599.
Expand Down
24 changes: 24 additions & 0 deletions docs/OPERABILITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
| Independent review | correct reviewer identity/model route가 exact head를 검토하는가 | workflow run, formal review, evidence manifest |
| Commercial maintenance | Maintainer App이 정확한 policy 아래 안전하게 dispatch/merge하는가 | governance audit, loop report, merge/downstream-run evidence |
| Product development | OpenCode proposal이 bounded/uncredentialed이고 publication이 분리되는가 | proposal artifact, verifier, publisher run evidence |
| Workflow / Task Execution | exact execution-scoped state authority가 claim/checkpoint/recovery와 같은 객체에서 관측 가능한가 | `NOEMA_WORKFLOW_STATE` exact-object state evidence, bounded `database_size_bytes`, deployed transaction/recovery/p95 receipts |
| External-extension lifecycle | exact admitted artifact의 Noema lifecycle authority가 restart/CAS/replay/rollback 뒤에도 보존되는가 | Durable Object current projection, append-only audit/recovery receipt, contention/storage-growth evidence |
| Procedural graph advisory | execution-local procedural context와 candidate screening이 activation authority로 오인되지 않는가 | exact source/tests, local graph/session admission evidence, explicit abstention/rejection reason, `activationAuthorized: false` |
| Release | protected integrated source에서 immutable artifact가 만들어졌는가 | package/SBOM/provenance/publication receipt |
Expand Down Expand Up @@ -47,6 +48,7 @@ Worker/runtime category:
- immutable allowed workflow SHA;
- rate-limiter and replay-guard Durable Object namespaces;
- configured request-rate policy;
- `NOEMA_WORKFLOW_STATE` Durable Object binding/namespace when Workflow / Task state is deployed for operational acceptance;
- external-extension lifecycle Durable Object binding/namespace when that slice is deployed for operational acceptance.

GitHub automation category:
Expand Down Expand Up @@ -161,6 +163,8 @@ Structured operational events use bounded fields such as:

Do not log bearer tokens, GitHub installation token, private key, raw body, raw `jti`, authorization header or provider secret.

Workflow / Task operability observation is execution-object-local. It may expose only bounded platform metadata such as `database_size_bytes` through the already-private `NOEMA_WORKFLOW_STATE` capability after exact execution/plan admission and object-name verification. It must not export workflow/task payloads, raw execution identity, claims, checkpoints, secrets, foreign-owner truth, or turn observation into mutation/retry/recovery authority.

External-extension lifecycle observability may expose bounded stream identity, version/state, transition ID, CAS/replay/conflict reason, digest/reference identities, latency and storage-growth metrics. It must not emit plugin prompt plaintext, raw product data, hidden reasoning, raw secrets, provider credentials, or editable copies of foreign-owner verdict/policy state.

Procedural graph diagnostics may retain bounded tenant/task/execution-safe identifiers, graph/structure digest, advisory availability, abstention/rejection reason and evaluation-case counts required for troubleshooting. They must not turn raw graph guidance/pitfall text, product payload, evaluator hidden reasoning, provider credentials or unauthenticated score material into durable operational evidence. `eligibleForApproval` and digest equality are not activation metrics.
Expand All @@ -175,6 +179,8 @@ Current operational materials define KPI/alert tooling for exchange failure and

A non-strict `SKIP` because no production log exists is not production SLO proof.

For Workflow / Task state, an object-local byte counter is only an evidence producer. Production storage-growth evidence must bind the exact immutable release, deployment, execution-scoped object, observation window, request/transition workload, retention behavior and before/after measurements. Unit/fake `database_size_bytes`, namespace/global aggregates, reduced samples, or warm-cache timing are not capacity, recovery or p95 evidence. Measure the real synchronous buyer/runtime path under representative concurrency and retain the transaction/restart/recovery context with the observation.

For external-extension lifecycle evidence, record current-projection and contended-append latency separately. The target is p95 ≤20 ms where that path is synchronous buyer/runtime authority. O(1) storage cardinality, unit timing, a reduced sample, or cache-only warmup is not that evidence. Record the actual Durable Object backend, request count/window, contention pattern, stream cardinality, storage size and exact source/deployment identity used for the measurement.

The protected procedural graph library source has no production p95 claim because it has no deployed synchronous buyer path. If procedural graph lookup later enters such a path, measure the real end-to-end path under representative graph sizes and concurrency rather than promoting unit timing to production latency evidence.
Expand Down Expand Up @@ -232,6 +238,8 @@ Queued/pending runs are not success. RCA should distinguish runner/billing/provi

Malformed/unavailable state decision fails credential issuance or lifecycle mutation. Before deleting state, distinguish current active claim/window from stale cleanup and preserve rollback implications.

For Workflow / Task state, inability to read object-local operability metadata is a storage-unavailable observation, not permission to fabricate a zero or reuse another execution's metric. Preserve the exact execution/object/release identity and diagnose the storage/runtime boundary separately from retained-state conflicts. An operability read never authorizes state mutation, claim release, retry, checkpoint replacement, or recovery.

For external-extension lifecycle state, never “repair” corruption by editing/deleting prior events, copying current mutable owner truth into historical events, auto-rebasing a failed CAS, or truncating early history to recover capacity. Quarantine the affected stream from new activation/invocation as applicable, retain exact head/tail/version/storage evidence, run complete audit-chain verification, and recover only from a verified snapshot/event prefix or platform recovery point whose continuity can be proved. PITR can restore storage but does not become the canonical audit ledger.

## 11. Rollback
Expand Down Expand Up @@ -353,11 +361,14 @@ This canonical operability document does not duplicate every command. Use:

Runtime health/exchange, readiness/security state, maintenance/development workflows, external-extension admission/lifecycle, procedural graph advisory/session/screening and lifecycle-gated projection, authenticated procedural evaluator handoff, #597 State / Checkpoint evaluation/rejection history, #601 Policy / Approval CAS, and evidence scripts exist in protected source. Exact deployed revision is always live-verified rather than inferred from this document. Protected source does not by itself prove real-backend p95/recovery, live signer trust, current non-workflow lifecycle/revocation, publication-time cross-authority reconciliation, graph publication, immutable release, canary/rollback, product outcome, or deployment.

The `read_operability` source path adds a bounded Workflow / Task operability producer to the already-existing `NOEMA_WORKFLOW_STATE` adapter. Source integration establishes only this observation contract. `database_size_bytes` is not proof of deployed transaction compatibility, restart/recovery, representative storage growth, p95, PITR/rollback, or immutable release.

### External / not yet proven by source

- issue #27 enforced `main` governance;
- issue #29 Maintainer/Reviewer App provisioning and activation;
- production environment independent governance;
- actual Workflow / Task `NOEMA_WORKFLOW_STATE` deployment with representative transaction/restart/recovery behavior, exact-object storage-growth series and denominator, realistic synchronous-path p95, PITR/equivalent rollback and immutable release/deployment identity;
- actual Durable Object external-extension lifecycle deployment, realistic current-projection/contended-append p95, partition/storage-growth evidence, snapshot rebuild and recovery rehearsal;
- procedural graph released cross-service schema, live owner/Keyverse signer trust selection, non-workflow current-lifecycle/revocation authority, deployed State / Checkpoint and Policy / Approval compatibility/p95/recovery, fresh publication-time State / Checkpoint plus Policy / Approval reconciliation, graph publication, canary/rollback operation and product outcome improvement;
- current production KPI/deployment/release acceptance;
Expand Down Expand Up @@ -418,3 +429,16 @@ The protected procedural graph source has a deliberately short operating contrac
8. Before any graph publication or activation, require a released owner contract, live owner/Keyverse signer-trust selection, current non-workflow lifecycle/revocation evidence where applicable, deployed State / Checkpoint and Policy / Approval compatibility, a fresh publication-time read/reconciliation of both current authorities, and canary/rollback evidence. None of these may be inferred from a prior #601 CAS success.

There is therefore no current procedural-graph production traffic, rollback metric or durability SLO to claim. A future activation change must add those operational evidence classes rather than retrospectively interpreting source/unit-test integration as production acceptance.

## 20. Workflow / Task state operability acceptance

The Workflow / Task execution state is already owned by the execution-scoped `NOEMA_WORKFLOW_STATE` Durable Object. An operability observation must therefore reuse that exact authority rather than create a second metrics/state store or scan another execution's storage.

1. Re-admit the exact workflow plan before selecting the Durable Object and derive the same privacy-preserving execution-scoped object identity used by state mutations.
2. Treat `read_operability` as observation-only. Its success shape contains only `database_size_bytes`; caller-only fields and retained workflow/task payloads do not cross the private command boundary.
3. Reject an object-name mismatch before reading storage metadata. Do not reuse another execution object's byte count as a fallback.
4. Treat unavailable, throwing, negative, non-integer or otherwise non-canonical SQLite size metadata as storage unavailable. Do not manufacture zero or normalize malformed values into success.
5. Bind any production storage-growth claim to exact release/deployment/object identity, observation window and workload/retention denominator. A unit/fake byte count is source-semantic evidence only.
6. Verify deployed transaction behavior, restart/recovery, contention, synchronous-path p95, PITR/equivalent rollback and release provenance separately before ADR-0013 can become `Accepted`.

The `read_operability` path supplies the source-level bounded observation contract but does not itself satisfy steps 5–6. Source integration cannot be cited as deployment, recovery, SLO or release evidence.
Loading
Loading