mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-06-09 01:35:18 +02:00
All eight comments verified against source and applied:
- AGENTS.md: pull @docs/{invariants,lance,testing}.md imports out of
the markdown blockquote. Claude Code's @-import parser expects @ at
column 0; the leading "> " of a blockquote silently broke
recognition, so the claimed auto-include did nothing. (Cursor,
Medium severity.)
- docs/cli-reference.md: command-family count 13 → 17. The current
enum Command in crates/omnigraph-cli/src/main.rs has 17 top-level
variants. (cubic P2.)
- docs/ci.md: Homebrew tap update is a regular `git push`, not a
force-push (release.yml:117 is `git push origin HEAD:main`). (cubic
P2.)
- docs/errors.md: add the Storage variant to the NanoError list — it
exists at error.rs:88-89 but the doc enumerated only 10 of 11.
(cubic P2.)
- docs/storage.md: clarify tombstone semantics. There is no
tombstone_version column; state.rs:180 reads the tombstone version
from the table_version column on rows where object_type =
table_tombstone. (cubic P2.)
- docs/branches-commits.md: split the GraphCommit pseudo-struct from
the underlying storage. actor_id is joined in-memory from
_graph_commit_actors.lance, not a column on _graph_commits.lance.
(cubic P2.)
- docs/schema-language.md: rename IR_VERSION to SCHEMA_IR_VERSION to
match the actual constant name in catalog/schema_ir.rs:11.
(cubic P3.)
- docs/testing.md: engine integration test count 16 → 15 (matches
`ls crates/omnigraph/tests/*.rs`). (cubic P3.)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
21 lines
965 B
Markdown
21 lines
965 B
Markdown
# Errors and Result Serialization
|
|
|
|
## Error taxonomy (`omnigraph::error::OmniError`)
|
|
|
|
- `Compiler(...)` — schema/query parse/typecheck errors
|
|
- `Lance(String)` — storage layer
|
|
- `DataFusion(String)` — execution layer
|
|
- `Io(io::Error)`
|
|
- `Manifest(ManifestError { kind: BadRequest|NotFound|Conflict|Internal, … })`
|
|
- `MergeConflicts(Vec<MergeConflict>)`
|
|
|
|
Compiler-side `NanoError` covers parse / catalog / type / storage / plan / execution / arrow / lance / IO / manifest / unique-constraint, each with structured spans (`SourceSpan { start, end }`) for ariadne-style diagnostics.
|
|
|
|
## Result serialization (`omnigraph_compiler::result::QueryResult`)
|
|
|
|
- `to_arrow_ipc()` — efficient binary
|
|
- `to_sdk_json()` — JS-safe JSON (large i64 wrapped in metadata)
|
|
- `to_rust_json()` — Rust-friendly JSON
|
|
- `batches()` — direct Arrow `RecordBatch` access
|
|
|
|
Mutation results: `{ affectedNodes: usize, affectedEdges: usize }` (also exposed as a tiny Arrow batch).
|