omnigraph/crates/omnigraph-cli/tests
Andrew Altshuler d6cf5b298c
feat(cli): plane-grouped --help + clap 4.6.1 (RFC-010 Slice 2) (#220)
* chore(deps): bump clap to 4.6.1

Workspace constraint "4" → "4.6" so the resolver picks up the 4.6 line
(a plain `cargo update` stayed on 4.5.x). clap 4.5.58 → 4.6.1
(clap_builder 4.6.0, clap_derive 4.6.1). Minor bump, no API breakage; the
workspace builds and all CLI suites pass unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(cli): group --help by plane (RFC-010 Slice 2)

Slice 1 declared the planes (the command_plane table + the wrong-plane
guard); this makes them visible in `--help`. clap can't print labeled
heading rows between subcommand groups (verified against the source —
help_heading is args-only, {subcommands} is one flat block), so per the
chosen approach: cluster + legend.

- Reorder the `Command` enum into plane bands (clap lists subcommands in
  declaration order): data (query, mutate, load, branch, snapshot, export,
  commit, schema, graphs) → storage/local-graph ops (init, optimize,
  repair, cleanup, lint, queries) → control (cluster) → session (policy,
  embed, login, logout, config, version). No magic display_order numbers —
  the source order IS the help order, with band comments for readers. The
  band placement matches `command_plane` (lint/queries are storage-plane:
  they reject --server), so the help grouping and the guard agree.
- Add an `after_help` legend on `Cli` naming the planes. Written to
  describe the planes (not enumerate every command) so it doesn't drift.

Help-polish (post-review): hide the deprecated `ingest` from the list
(still a valid command); trim the long `login` and `--as` descriptions to
one line each so the columns don't blow up.

The behavioral source of truth for planes stays `planes::command_plane`;
this ordering is its cosmetic counterpart.

Test: `help_groups_commands_by_plane` pins the legend phrase + the cluster
ordering (query < optimize < cluster). Doc: a line under cli-reference's
*Command planes* section.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(cli): qualify mixed-plane commands in the --help legend

Addresses the Greptile P2 on #220: the legend placed `schema` entirely in
Data and `queries` entirely in Storage, but per `command_plane` the
subcommands differ — `schema plan` is storage-plane (rejects --server) and
`queries list` is session (no graph). A user reading the legend then running
`schema plan --server` would hit a rejection contradicting it. The Commands
list is one entry per top-level command (necessarily coarse), so the legend
carries the nuance: `schema [plan: storage]` and `queries [list: session]`.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 01:49:40 +03:00
..
support test(cli): the embedded/remote parity matrix (RFC-009 Phase 1) 2026-06-12 17:50:46 +03:00
cli_cluster.rs refactor(cli): drop cluster init — no replacement scaffold 2026-06-11 23:45:18 +03:00
cli_cluster_e2e.rs refactor(cli): split the test monolith into command-area suites 2026-06-11 15:16:51 +03:00
cli_data.rs fix(cli): align lint plane label + document the plane model (RFC-010 follow-up) (#218) 2026-06-13 22:58:51 +03:00
cli_queries.rs refactor(cli): split the test monolith into command-area suites 2026-06-11 15:16:51 +03:00
cli_schema_config.rs feat(cli): plane-grouped --help + clap 4.6.1 (RFC-010 Slice 2) (#220) 2026-06-14 01:49:40 +03:00
parity_matrix.rs refactor(cli): collapse export + graphs-list onto GraphClient (RFC-009 Phase 3c) (#213) 2026-06-13 21:03:45 +03:00
system_local.rs feat(cli): operator aliases — pure bindings invoking stored queries (RFC-007 PR 3, part 2) 2026-06-11 22:25:42 +03:00
system_remote.rs feat(cli)!: unified load command; deprecate ingest as an alias 2026-06-11 04:18:00 +03:00