omnigraph/crates/omnigraph-cli/tests
Andrew Altshuler 3feb23af05
feat(cli): surface stored-query @description/@instruction in queries list (#280)
* test: e2e coverage for @description/@instruction surfaces

Add end-to-end tests pinning the two annotation surfaces as they exist
today, at their real boundaries:

- engine (lifecycle.rs): schema-level @description (node/edge/property)
  and @instruction (node/edge) persist verbatim into the on-disk
  _schema.ir.json through Omnigraph::init; property-level @instruction
  aborts init and writes no schema IR.
- server (stored_queries.rs): query-level @description/@instruction on a
  stored query surface as typed QueryCatalogEntry fields over
  GET /queries, and a query declaring neither omits both fields.

No behavior change — these document the current contract.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat(cli): surface stored-query @description/@instruction in `queries list`

A stored query's @description/@instruction are its catalog metadata —
what it does and how to invoke it. The HTTP GET /queries catalog already
carries them, but `omnigraph queries list` dropped both fields in human
and --json output even though they were available on the registry entry.

Carry description/instruction on QueriesListItem (Option, skipped when
None) and copy them from the query decl. Human output prints an indented
`description:` / `instruction:` line per query when present; --json
includes the fields when present and omits them otherwise — matching the
HTTP catalog shape documented in docs/user/operations/server.md.

Tests (cli_queries.rs): a query with both annotations surfaces them in
human + --json; a query with neither prints no annotation lines and omits
both JSON fields.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(cli): document `queries list` output incl. description/instruction

Per AGENTS.md maintenance Rule 1, document the user-visible `queries list`
output alongside the field addition. The `queries` command family had no
row in the CLI reference top-level table; add one covering `list` (human
+ --json shapes, with description/instruction shown only when declared,
matching the HTTP GET /queries catalog) and `validate`.

Addresses the Greptile P2 review finding on PR #280.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(cli): indent multiline stored-query annotations in `queries list`

A `@description`/`@instruction` value can be multiline (GQ string literals
admit newlines), which made the human `queries list` output break back to
the left margin on continuation lines. Indent continuation lines to align
under the first via a `print_query_annotation` helper. Addresses review
feedback from @martin-g on PR #280.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Ragnor Comerford <ragnor.comerford@gmail.com>
2026-06-19 14:26:50 +03:00
..
support feat(cli)!: excise omnigraph.yaml from the CLI; policy/queries tooling reads --cluster (#251) 2026-06-15 21:48:39 +03:00
cli_cluster.rs rename compiler NanoError and fix cluster config warnings 2026-06-17 23:44:24 +03:00
cli_cluster_e2e.rs feat(cli)!: schema apply refuses a cluster-managed graph (RFC-011 D10) (#253) 2026-06-15 23:11:42 +03:00
cli_data.rs [codex] fix RFC-011 follow-up regressions (#258) 2026-06-16 03:11:43 +03:00
cli_queries.rs feat(cli): surface stored-query @description/@instruction in queries list (#280) 2026-06-19 14:26:50 +03:00
cli_schema_config.rs fix: self-heal manifest-unreferenced branch forks (stop wedged branches) (#231) 2026-06-15 22:17:25 +02:00
parity_matrix.rs feat(cli)!: excise omnigraph.yaml from the CLI; policy/queries tooling reads --cluster (#251) 2026-06-15 21:48:39 +03:00
system_local.rs test(cli): pass --yes in the S3 e2e overwrite load (RFC-011 Decision 9) (#265) 2026-06-16 12:24:14 +03:00
system_remote.rs feat(cli)!: excise omnigraph.yaml from the CLI; policy/queries tooling reads --cluster (#251) 2026-06-15 21:48:39 +03:00