Repository navigation
feat(graph): pepper graph entity and graph catalog - #264
Merged
Merged
Conversation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QNDeh973CCmhrDbk68xBDz
…atalog Allow the entity and catalog verbs, mark both leaves as not room-scoped, give them JSON-mode fixtures, and drop the word 'grouped' from the entity help. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QNDeh973CCmhrDbk68xBDz
Vycari ReviewRound 1 on abc8af1. The verdict is the Vycari Review check run, and each open finding is an inline thread. Reply on every P0 and P1 thread: Open: P0 0 · P1 0 · P2 0 · disputed 0 · confirmed fixed 0 · withdrawn 0 Hand-off: Greptile requested on abc8af1. No open findings this round. P2s, judge's notes and closed findingsJudge's notes No candidate findings were raised. |
|
@greptileai review |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Human overview
Adds
pepper graph entity ID(an entity's page: edges by type, follows included, and its catalog entry) andpepper graph catalog ID | --scheme S --value V(a catalog entry plus your entities that link to it), both with--historyand--json. Read-only; needs Vycari/pepper#6407 deployed for live use (merged, deploying). Refs Vycari/pepper#6365.Human required (optional)
AI reviewer
Details for agents: what the diff does, invariants, verification, checklist
What the diff does.
api_client.py:graph_entity,graph_catalog,graph_catalog_lookupoverGET /api/v1/graph/entities/{id},/catalog/{id},/catalog?scheme=&value=, each sendinghistory=true|false. Ids are percent-quoted into the path. No new# MIRROR:dataclasses: the bodies are passed as dicts like the existing graph reads, sotests/test_api_contract.pyis unaffected.cli.py:graph entityandgraph catalogparsers and handlers.catalogtakes an ID or--schemewith--value(parser-checked against the server's scheme list), never both; blank or missing arguments exit 2 before any request. A 200 whosestatusistimeoutorerror(or whose page is null) prints a plain message and exits 1; with--jsonthe body is printed first. A 404 gets one message covering unknown id, not yours, and rollout off (the server answers all three identically). Other errors go through_fail_api(a non-UUID id is a server 422).graph_view.py:entity_pageandcatalog_pagerendering. Edges are grouped by type in server order; a follow shows itsfollow_ref;--historymarks closed edges with their close time and open ones "open". A merged-away id shows "merged: X is now this entity". Timestamps are rendered from the data; nothing reads the clock.tests/test_cli_conformance.py):entityandcatalogadded to the verb allowlist, both leaves listed as not room-scoped, and JSON-mode fixtures added; the entity help says "listed by type" because the wording check bans "group".help/cli.md(inside the existingentity-graphrollout block), bundledSKILL.md.Invariants.
graph show(event detail) is untouched. The CLI holds no gating of its own; the server's 404 is the gate./api/v1use is additive. No token is printed.Where to look hardest.
_graph_page(fail-soft exit codes) and the 404 wording shared by all graph commands (it now also covers "unknown or not yours").Verification (actual, run in the worktree).
uv run ruff format --check,uv run ruff check,uv run ty check src/pepper_cli/clean;uv run pytest -n auto: 3360 passed, 2 skipped. The WIP commit had never been run; four conformance tests failed on it and are fixed in the second commit.Deferred. None.
Checklist (repo-specific)
uv run ruff format --checkanduv run ruff checkclean (no new lint ignores)uv run ty check src/pepper_cli/cleanuv run pytestpasses; coverage floor in.claude/maintainerd.jsonnot lowered/api/v1usage stays additive-only,# MIRROR:comments updated (none needed), unknown fields and frames still toleratedSKILL.mdupdated if commands or output changedhelp/cli.mdupdated for a new or changed command🤖 Generated with Claude Code
https://claude.ai/code/session_01QNDeh973CCmhrDbk68xBDz


Confidence Score: 5/5
The PR appears safe to merge.Summary
Adds
pepper graph entityandpepper graph catalogwith--historyand--json.Reviews (1) · Last reviewed commit: "fix(graph): satisfy the CLI conformance ..." · Reviewed by Greptile