Repository navigation
Minor release. Fixes graph_prune execute so it keeps the rule edges its preview says it keeps, corrects four tool descriptions, and adds two opt-in features that use TypeSafe's Jev model.
Upgrade note: earlier prune runs may have removed edges on rules
Before this release, graph_prune with mode: "execute" didn't apply the rule-subtype exemption that the preview applies. An execute run could delete a weak edge touching a subtype: "rule" node, even when the preview had just listed that edge as kept. Rule nodes themselves were never pruned. If you have run prune in execute mode, including from the weekly maintenance job, check your rule nodes for missing edges. Restore any you need from a graph_export backup, or re-assert them with graph_relate.
To upgrade: docker compose pull && docker compose up -d, or pin MCP_IMAGE_TAG=v0.6.0.
Fixes
graph_pruneexecute spares rule edges (#50). The delete now uses the same predicate as the preview. A regression test covers it.- Tool descriptions (#50) now match what the tools return:
graph_decayreturns totals, and rules are exempt.graph_validatelists the checks it actually runs, including isolated entities.graph_searchreturns an error when the embedder is unavailable.graph_communitiesdocuments its real output shape and ordering.
New: optional Jev judgments (#51)
TypeSafe's Jev returns typed judgments (a choice, a probability, a score) instead of text, at $0.042 per million input tokens with free output. Both features are off by default. Each has its own cost cap, and anything that looks like a personal identifier (email address, SSN, date of birth, card number) is never sent.
- Verb selection (
JEV_VERB_SELECT=on). Whengraph_relateis about to store an edge asRELATED_TO, Jev picks a documented verb. It only does this when the writer asked forRELATED_TO, or for a verb outside the vocabulary. The answer is checked againstRELATIONSHIP_TYPES, andALIAS_OF,CONTRADICTSandSUPERSEDESare never chosen. Low confidence, a verb that doesn't fit the source node's type, a timeout, an error or a spent cap all keepRELATED_TO. Relabelled edges recordverb_selected_by,verb_selection_confidenceandverb_requested. Capped at $0.05 a day per server process by default. - Duplicate check (
JEV_DUPLICATE_CHECK=on). After each completed nightly API-runner dream, the runner judgesgraph_merge_suggestionscandidates using their descriptions, aliases and relationships. It appends each verdict tologs/jev-duplicates.jsonl. Log-only: nothing is merged or aliased. Capped at $0.02 per run by default. To run it on its own:docker compose run --rm graph-dream node dist/dream-runner/index.js --job duplicates.
Turning them on
- Put your TypeSafe key in a file outside the repo.
- In
.env, setJEV_API_KEY_HOST_FILEto that file's path. Compose mounts it read-only intograph-memory-mcpandgraph-dream, and setsJEV_API_KEY_FILEfor you. Outside compose, setJEV_API_KEY_FILEdirectly. - Add
JEV_VERB_SELECT=onand/orJEV_DUPLICATE_CHECK=on. - Run
docker compose up -d.
All settings are in .env.example and in docs/DREAM_PROCESS.md under "Jev judgments".