mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-06-24 02:38:06 +02:00
test(cli): the embedded/remote parity matrix (RFC-009 Phase 1)
The referee before any unification moves: every forked verb runs once against the local graph and once against a spawned server on a twin copy of the same fixture, with the SAME actor (--as locally; bearer-resolved remotely) and the SAME Cedar bundle on both arms — like-for-like enforcement is part of the harness (a tokens-only server is default-deny by design; comparing that against a bare local arm measures configuration, not the fork). Declared-volatile fields (ids, wall-clock, transport locations) scrub to placeholders; everything else must match exactly, and exit codes must match for shared failures. Headline result: 11 rows green with an EMPTY divergence ledger — the arms agree on every verb today. The ledger (KNOWN_DIVERGENCES) exists so any future divergence is pinned or filed, never silently repaired; repairs are Phase 3's job, gated by this referee staying green. One engine observation surfaced and filed (#207): inline execution with a declared-but-unbound param matches ALL rows on both arms, while the stored-query invoke path hard-errors — a cross-path asymmetry the matrix pins as agreeing behavior pending a deliberate fix. Documented exclusions (graphs list, ingest/load-over-/ingest, storage-plane verbs) map to RFC-009 Phases 4-5. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
e0d80c0062
commit
08c9b03d40
4 changed files with 433 additions and 2 deletions
|
|
@ -68,7 +68,7 @@ anything moves — mirroring the storage collapse, where the pinned contract
|
|||
tests gated the swap, and the test-monolith modularization (#192/#193), which
|
||||
makes Phase 3 tractable: the CLI dispatch is 1,184 lines today, not 4,200.
|
||||
|
||||
### Phase 1 — Parity matrix (the referee; do first, no refactor)
|
||||
### Phase 1 — Parity matrix (the referee; do first, no refactor) *(landed)*
|
||||
|
||||
A CLI integration test (extend the `system_local.rs` harness, which already
|
||||
spawns both binaries): one fixture graph; for every forked verb, run the
|
||||
|
|
@ -81,6 +81,15 @@ This pins today's behavior so Phase 3 can't silently change it, and catches
|
|||
every future fork drift. It also incidentally covers utoipa annotation↔route
|
||||
mismatches (a lying `#[utoipa::path]` makes the remote leg 404).
|
||||
|
||||
**Phase 1 outcome (landed):** `crates/omnigraph-cli/tests/parity_matrix.rs`
|
||||
— 11 rows green with an **empty divergence ledger**: with matched Cedar
|
||||
policy on both arms, embedded and remote agree on every forked verb's
|
||||
scrubbed JSON and exit codes. Two findings along the way: like-for-like
|
||||
requires the same policy bundle on both arms (a tokens-only server is
|
||||
default-deny by design — the harness encodes this), and inline execution's
|
||||
unbound-param matches-all vs the invoke path's hard error is a cross-path
|
||||
asymmetry, filed as #207 and pinned (not repaired) by the matrix.
|
||||
|
||||
### Phase 2 — One wire-DTO crate
|
||||
|
||||
Move the HTTP request/response types and the single `engine result → DTO`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue