Skip to content

fix: graph_prune execute spares rule edges; correct four tool descriptions - #50

Merged
stevepridemore merged 4 commits into
mainfrom
claude/project-thread-wjzqyt
Oct 27, 2026
Merged

stevepridemore merged 4 commits into
mainfrom
claude/project-thread-wjzqyt

Conversation

@stevepridemore

Copy link
Copy Markdown
Owner

graph_prune. prune() finds weak edges for the preview with the rule-subtype exemption (an edge touching a subtype: 'rule' node on either side is kept), but the execute-mode DELETE dropped that check. So execute could delete a permanent rule's anchor edge that the preview had just listed as kept. The delete now uses the same predicate. The new test (Prune keeps rule edges) fails on main with "expected 2 to be 1" and passes with the fix.

Tool descriptions (src/mcp-server/index.ts). These now match what the tools return, as docs/MCP_SERVER.md already describes:

  • graph_decay: returns totals (nodes_decayed, edges_decayed, nodes_flagged_for_pruning), not per-type counts. Rules are exempt.
  • graph_validate: drops "type mismatches" and "extreme confidence values", which aren't checked. Adds the isolated-entity check, which is, and the real output shape.
  • graph_search: returns an error when the embedder is unavailable rather than falling back to graph_query. Notes the 5-seed, 30-edge expansion cap.
  • graph_communities: real output shape ({communities: [{id, seed_name, seed_id, member_count, dominant_type, members}], coverage}), in seed order, not sorted by size.

Full suite: 221 passed against Neo4j 5.20 locally.


Generated by Claude Code

Tool count and list (graph_alias), the enforced vocabulary (19 types,
50 relationship types), the real slash-command list, the cloud-session
collector, the optional API-key runner, an Unreleased row, and BACKUP.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keeps the API-key runner notes in the architecture, privacy, ingestion and
tech-stack sections. Counts 50 edge verbs (the list the write path enforces)
and fixes the slash-command list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ect four tool descriptions

prune() previewed weak edges with the rule-subtype exemption but deleted
them without it, so execute could remove a permanent rule's anchor edge
that the preview listed as kept. The delete now uses the same predicate.
New test reproduces it (fails without the fix).

graph_decay, graph_validate, graph_search and graph_communities
descriptions now match what the tools actually return.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@stevepridemore
stevepridemore merged commit 836c9ff into main Oct 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants