omnigraph/crates
Ragnor Comerford c9e13f3707
Collect file-I/O and parse errors in QueryRegistry::load in one pass
load() early-returned on any unreadable .gq file, masking parse / identity /
tool-name-collision errors in the OTHER (readable) files — so an operator
fixed the missing file, restarted, and only then saw the next broken query.
Now it collects I/O errors but still runs from_specs on the readable specs
and returns the union, so every broken entry surfaces at once (matching the
collected-errors contract the rest of the registry already follows).

Safe: from_specs' tool-name collision check runs over loaded queries only, so
dropping an I/O-failed entry can only under-report a collision, never invent
one. I/O errors are ordered first (BTreeMap key order), then spec errors.

Adds a load-level test (tempdir: a valid, a missing, and a parse-broken .gq)
asserting all three surface in one Err — confirmed red before the fix.
2026-05-31 15:40:13 +02:00
..
omnigraph (feat): multi-graph server mode (#119) 2026-05-28 16:19:31 +02:00
omnigraph-cli Refuse duplicate MCP tool names across exposed stored queries 2026-05-30 22:05:18 +02:00
omnigraph-compiler (feat): multi-graph server mode (#119) 2026-05-28 16:19:31 +02:00
omnigraph-policy Add InvokeQuery Cedar action (coarse, graph-scoped) 2026-05-30 20:20:03 +02:00
omnigraph-server Collect file-I/O and parse errors in QueryRegistry::load in one pass 2026-05-31 15:40:13 +02:00