docs(user): split language/branching pages + front-door pages (Phase 2)#225
Conversation
…ase 2) Content build-out on top of the Phase 1 topic move. No behavior changes. Splits (existing content relocated, cross-linked): - queries/index.md → mutations/index.md (insert/update/delete + the inserts-vs-deletes rule) and search/index.md (the multi-modal search functions + a hybrid-ranking overview tying nearest/bm25/rrf together). queries/index.md now covers the read shape and points at both. - branching/index.md → branching/time-travel.md (snapshots/time travel) and branching/merge.md (three-way merge + the 7 conflict kinds, verified against error.rs MergeConflictKind). New pages (written from the code, user-facing): - quickstart.md — init → load → query → branch, with verified CLI flags. - concepts/index.md — what OmniGraph is + the L1/L2 (Lance/OmniGraph) framing. Expanded operations/audit.md from a 7-line struct dump into a real actor-tracking page (server token-resolved vs CLI --as chain; reading the trail; the omnigraph:recovery reserved actor). Index wiring: docs/user/index.md and AGENTS.md's topic table link every new page; also normalized AGENTS.md's docs/user link display text to match the Phase 1 retargeted paths. Verified: zero broken .md links; check-agents-md.sh green (57 links, 54 docs). Deferred to Phase 3: de-dev polish (grammar paths, IR internals still in queries/branching), guides/, and a possible reference/config.md split (the config schema is already coherent in cli/reference.md). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
||
| `people.jsonl` is newline-delimited JSON, one record per line. For finer-grained |
There was a problem hiding this comment.
omnigraph read is a deprecated alias that prints a warning
helpers.rs contains "read" => eprintln!("warning: \omnigraph read` is deprecated; use `omnigraph query` instead"), so every invocation emits this warning to stderr. A quickstart is the first thing users run; directing them to a deprecated form creates an immediate bad impression. Replace both omnigraph readcalls on lines 38 and 47 withomnigraph query`.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
|
|
||
| ```bash | ||
| # Read a query against a past snapshot | ||
| omnigraph read --query ./q.gq --name find --snapshot <snapshot-id> s3://bucket/graph.omni |
There was a problem hiding this comment.
omnigraph read prints warning: \omnigraph read` is deprecated; use `omnigraph query` instead(seecrates/omnigraph-cli/src/helpers.rs`). This time-travel page is new and should use the canonical command from the start.
| omnigraph read --query ./q.gq --name find --snapshot <snapshot-id> s3://bucket/graph.omni | |
| omnigraph query --query ./q.gq --name find --snapshot <snapshot-id> s3://bucket/graph.omni |
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
| ``` | ||
|
|
||
| Run it: |
There was a problem hiding this comment.
Graph URI must be
--uri for branch subcommands, not a trailing positional
BranchCommand::Create declares uri as #[arg(long)] (a --uri flag) with only name: String as the positional argument. Passing graph.omni as a second positional causes clap to error with "unexpected argument 'graph.omni' found". The same applies to branch merge on line 53. The correct forms are omnigraph branch create review/new-hires --uri graph.omni and omnigraph branch merge review/new-hires --into main --uri graph.omni. Note: AGENTS.md's Quick-reference flows section has the same pattern for branch merge (pre-existing) — that may need a companion fix.
| **one atomic commit** across the whole graph. | ||
|
|
||
| ```bash | ||
| omnigraph branch merge review/2026-04-25 --into main s3://bucket/graph.omni |
There was a problem hiding this comment.
Same URI-placement issue as in
quickstart.md: BranchCommand::Merge uses uri as a --uri long flag, not a positional. Passing the S3 path as a trailing positional will be rejected by clap.
| omnigraph branch merge review/2026-04-25 --into main s3://bucket/graph.omni | |
| omnigraph branch merge review/2026-04-25 --into main --uri s3://bucket/graph.omni |
| The restriction exists because inserts/updates and deletes commit through | ||
| different paths today, and mixing them in one query creates ordering hazards | ||
| (e.g. a same-row insert-then-delete, or a cascading delete of a just-inserted | ||
| edge). Keeping the two kinds in separate queries keeps each one atomic and | ||
| correct. |
There was a problem hiding this comment.
The original
queries/index.md framed the D₂ restriction as temporary: "This restriction lifts when Lance exposes a two-phase delete API (tracked: MR-793)." Dropping that context makes the limitation look permanent and may cause users to design around it unnecessarily rather than treating it as a known, tracked constraint.
| The restriction exists because inserts/updates and deletes commit through | |
| different paths today, and mixing them in one query creates ordering hazards | |
| (e.g. a same-row insert-then-delete, or a cascading delete of a just-inserted | |
| edge). Keeping the two kinds in separate queries keeps each one atomic and | |
| correct. | |
| The restriction exists because inserts/updates and deletes commit through | |
| different paths today, and mixing them in one query creates ordering hazards | |
| (e.g. a same-row insert-then-delete, or a cascading delete of a just-inserted | |
| edge). Keeping the two kinds in separate queries keeps each one atomic and | |
| correct. This restriction is tracked for removal once Lance exposes a two-phase | |
| delete API (MR-793). |
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
| 1. `--as <actor>` on the command, | ||
| 2. then `operator.actor` in `~/.omnigraph/config.yaml` (see the | ||
| [CLI reference](../cli/reference.md)), | ||
| 3. otherwise none. |
There was a problem hiding this comment.
The old stub included a legacy step in the CLI actor chain:
legacy \cli.actor` in `omnigraph.yaml`. AGENTS.md notes that omnigraph.yaml` "still loads with per-key deprecation warnings," so this step is still live. Omitting it means operators using the legacy config won't see why their actor is being applied.
| 1. `--as <actor>` on the command, | |
| 2. then `operator.actor` in `~/.omnigraph/config.yaml` (see the | |
| [CLI reference](../cli/reference.md)), | |
| 3. otherwise none. | |
| 1. `--as <actor>` on the command, | |
| 2. then `cli.actor` in the legacy `omnigraph.yaml` (if present; deprecated per RFC-008), | |
| 3. then `operator.actor` in `~/.omnigraph/config.yaml` (see the | |
| [CLI reference](../cli/reference.md)), | |
| 4. otherwise none. |
Phase 2 of the docs restructure (Phase 1 = #223, merged). Content build-out —
docs only, no behavior changes.
Splits (existing content relocated + cross-linked)
queries/index.md→mutations/index.md+search/index.md(with ahybrid-ranking overview tying
nearest/bm25/rrf).branching/index.md→branching/time-travel.md+branching/merge.md(three-way merge + the 7 conflict kinds, verified against
MergeConflictKindinerror.rs).New pages (written from the code)
quickstart.md— init → load → query → branch, verified CLI flags.concepts/index.md— what OmniGraph is + L1/L2 (Lance / OmniGraph) framing.Expanded
operations/audit.md— 7-line stub → real actor-tracking page.Wiring
docs/user/index.md+ AGENTS.md topic table link every new page; AGENTS.mddocs/userlink display text normalized to the Phase 1 paths.Verification
.mdlinks across docs.scripts/check-agents-md.shgreen (57 links, 54 docs).Deferred to Phase 3
De-dev polish (grammar paths / IR internals still in queries/branching),
guides/, and a possiblereference/config.mdsplit.🤖 Generated with Claude Code
Greptile Summary
Phase 2 docs restructure: splits the old
queries/index.mdinto separate mutations, search, and query pages; splitsbranching/index.mdinto time-travel and merge sub-pages; and adds three new front-door pages (quickstart, concepts/index, expanded audit).AGENTS.md's topic table is updated to use canonical Phase-1 paths throughout.quickstart.md,concepts/index.md,mutations/index.md,search/index.md,branching/time-travel.md,branching/merge.mdare written from source and cross-linked from bothdocs/user/index.mdandAGENTS.md.quickstart.mdandtime-travel.mduse theomnigraph readalias, which emits a runtime deprecation warning; the canonical command isomnigraph query. Additionally, thebranch createandbranch mergeexamples inquickstart.mdandmerge.mdpass the graph URI as a trailing positional argument, but those subcommands declareurias a--uriflag — clap will reject the commands as written.mutations/index.mddrops the "temporary until Lance two-phase delete lands" framing for the D₂ restriction, andaudit.md's actor-chain omits the still-active legacycli.actorstep.Confidence Score: 3/5
The docs are correct and well-linked overall, but two CLI examples in the new quickstart will fail at runtime and one will always print a deprecation warning — problems a user would hit on their very first interaction.
The quickstart is the first thing new users run. Two of its branch commands pass the graph URI as a trailing positional, which clap rejects outright — users get an error before completing step 5. The same broken form appears in merge.md. The read-query examples in quickstart.md and time-travel.md use omnigraph read, which emits a stderr deprecation warning on every invocation. These are verified against the actual CLI source.
docs/user/quickstart.md and docs/user/branching/merge.md need the branch-command URI fixes; docs/user/branching/time-travel.md needs the omnigraph query rename.
Important Files Changed
omnigraph readalias (prints a warning) and passes graph URI as positional tobranch create/branch merge(clap will reject it).omnigraph readalias instead of canonicalomnigraph query.Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD IDX[docs/user/index.md] --> QS[quickstart.md NEW] IDX --> CON[concepts/index.md NEW] IDX --> Q[queries/index.md TRIMMED] IDX --> MUT[mutations/index.md NEW] IDX --> SRCH[search/index.md NEW] IDX --> BR[branching/index.md TRIMMED] IDX --> TT[branching/time-travel.md NEW] IDX --> MRG[branching/merge.md NEW] IDX --> AUD[operations/audit.md EXPANDED] Q -- "pointers to" --> MUT Q -- "pointers to" --> SRCH BR -- "pointers to" --> TT BR -- "pointers to" --> MRG AGENTS[AGENTS.md] -- "topic table updated" --> IDXReviews (1): Last reviewed commit: "docs(user): split language/branching pag..." | Re-trigger Greptile