[codex] Make the CodeGraphy CLI self-explanatory for agents#313
Merged
Conversation
🦋 Changeset detectedLatest commit: 4f2a081 The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
…face # Conflicts: # README.md # docs/DIAGNOSTICS.md # docs/PLUGINS.md # docs/plans/2026-07-16-sqlite-cli-agent-skill.md
…face # Conflicts: # docs/adr/0002-sqlite-replaces-ladybug-without-moving-graph-query.md # docs/adr/0003-cli-and-agent-skill-replace-mcp.md # skills/codegraphy/SKILL.md
Plugin-contributed graph scope (node types, symbols, and edge kinds) now always defaults to hidden, even when the contributing plugin is enabled and even when the plugin declares defaultVisible: true. Scope stays hidden until the user manually toggles it on, matching how the built-in plugin scope rows already behave. Absent visibility keys for plugin-namespaced types no longer fall back to visible in the webview render filters or the core scope resolution. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The webview glob matcher escaped [ and ], so plugin default filters using character classes (Unity's **/[Pp]roject[Ss]ettings/** and friends) never matched. Discovery previously hid this by filtering with minimatch before files reached the webview; with the complete graph now filtered at projection time, those files leaked into the rendered graph. globToRegex now supports [abc] and [!abc] classes, bracket patterns skip the literal fast path, and small classes expand into fast-path variants to keep combined matching within budget. Also reverts the discovery-level NUL-byte skip: binary assets such as images are legitimate graph nodes, and the Markdown plugin's own binary guard already prevents garbage wikilink relations. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The webview bundle only uses type-level imports from @codegraphy-dev/core, so the runtime import of graph-scope helpers broke the standalone Vite build. Move the plugin-scope helpers into extension shared code. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
joesobo
marked this pull request as ready for review
July 21, 2026 23:11
joesobo
added a commit
that referenced
this pull request
Jul 22, 2026
[codex] Make the CodeGraphy CLI self-explanatory for agents
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.
Why
The CLI and extension share one model: configure graph contributors, index the complete workspace graph into SQLite, shape results through Filters and Graph Scope, then query the cache. The agent-facing CLI needs the same model with a compact database and a self-sufficient command contract.
What changed
File(id, path, mtime, size, contentHash)Node(id, key, type, label, fileId, parentId, pluginId, language)NodeView(nodeKey, color, x, y, favorite, shape, imageUrl, isCollapsed)Symbol(nodeId, name, kind, pluginId, language)Edge(id, key, sourceNodeId, targetNodeId, type)Symbol; non-symbol nodes do not carry symbol fields.mtimeto skip unchanged file reads and hashes. UsescontentHashwhen timestamps are ambiguous.--filter,--node-type, and--edge-typeoptions to every query command. Values may be repeated or comma-separated and never modifysettings.json.nodeType.{ ok: true, command, data }; failures return the exclusive{ ok: false, command, error }shape.doctoroutput with separate schema compatibility, SQLite integrity, foreign-key health, cache state, and File, Node, Symbol, and Edge counts. Unhealthy checks are returned inerror.details.Deliberate deferrals
--dry-runorresolvecommand without a concrete shared contract.Validation
git diff --check, stale-import search, test-file size check, and protected-worktree checks passed.