From 3e2502c35e83f88b7351bbd0d4a8b63d4b803aff Mon Sep 17 00:00:00 2001 From: aaltshuler Date: Sat, 13 Jun 2026 17:10:00 +0300 Subject: [PATCH] docs: omnigraph-api-types in the crate list; RFC-009 Phase 2 outcome Co-Authored-By: Claude Fable 5 --- AGENTS.md | 2 +- docs/dev/rfc-009-unify-access-paths.md | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index d9e0c45..ae6e744 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -17,7 +17,7 @@ Tools that support `@`-imports (Claude Code) auto-include all three files via th `CLAUDE.md` is a symlink to this file — there is exactly one source of truth. Edit `AGENTS.md`. **Version surveyed:** 0.7.0 -**Workspace crates:** `omnigraph-compiler`, `omnigraph` (engine), `omnigraph-policy`, `omnigraph-cluster`, `omnigraph-cli`, `omnigraph-server` +**Workspace crates:** `omnigraph-compiler`, `omnigraph` (engine), `omnigraph-policy`, `omnigraph-api-types` (shared HTTP wire DTOs), `omnigraph-cluster`, `omnigraph-cli`, `omnigraph-server` **Storage substrate:** Lance 6.x (columnar, versioned, branchable) **License:** MIT **Toolchain:** Rust stable, edition 2024 diff --git a/docs/dev/rfc-009-unify-access-paths.md b/docs/dev/rfc-009-unify-access-paths.md index cada723..8b8251b 100644 --- a/docs/dev/rfc-009-unify-access-paths.md +++ b/docs/dev/rfc-009-unify-access-paths.md @@ -90,7 +90,7 @@ 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 +### Phase 2 — One wire-DTO crate *(landed)* Move the HTTP request/response types and the single `engine result → DTO` mapping per verb into a shared crate (working name `omnigraph-api-types`), @@ -122,6 +122,15 @@ neither axum nor the engine's internals. The engine crate does not depend on it — the `engine result → DTO` mapping lives in the shared crate (or the CLI/ server side), taking engine result types as input. +**Phase 2 outcome (landed):** `crates/omnigraph-api-types` holds the wire +DTOs + their `engine-result → DTO` mappings; `omnigraph-server::api` is a +`pub use` re-export (so `openapi.json` is byte-identical — the referee +passed with zero diff), and the CLI consumes the crate directly. One +deliberate refinement of the original sketch: `LoadOutput` is a rendered +CLI output type, not a wire DTO, so it stayed CLI-side — both its mappings +(local `LoadResult`, remote `IngestOutput`) now sit together in +`output.rs`. The parity matrix passed textually unchanged. + ### Phase 3 — `GraphClient` trait, two implementations ```text