Summary
LIFEOS/TOOLS/MemoryGraph.ts imports three packages that install/package.json does not declare, so it fails at import on a stock install. The Pulse memory-graph endpoint explicitly instructs the user to run it, which means the graph layer is unreachable out of the box and fails with no signal anywhere in the UI.
Evidence
MemoryGraph.ts imports:
graphology
graphology-communities-louvain
graphology-metrics/centrality/pagerank
install/package.json declares exactly one dependency: yaml.
Result on a stock install:
$ bun LIFEOS/TOOLS/MemoryGraph.ts build --all
error: Cannot find package 'graphology' from '.../LIFEOS/TOOLS/MemoryGraph.ts'
Why it stays invisible
/api/memory/graph returns an empty graph plus a remediation string:
{"nodes":[],"edges":[],"communities":[],"built":null,
"note":"run: bun LIFEOS/TOOLS/MemoryGraph.ts build --all"}
The UI renders that as "not built yet," which is indistinguishable from "you haven't run it." Following the instruction produces a module-resolution error in a terminal, not in Pulse — so unless the user runs it by hand and reads stderr, the graph simply never exists. KnowledgeGraph.ts (the superseded tool) has the same import.
Impact
This is the whole declared-edge graph layer: Louvain communities, PageRank god-nodes, betweenness bridges, orphan detection, MEMORY/GRAPH/graph.json and PATTERNS.md. On an install with a few hundred knowledge notes it is a substantial feature, and it is 100% local — no network, no model calls, sub-second.
For reference, after adding the three packages the first build on a real corpus took 0.1s and produced 497 nodes, 1306 edges, 23 communities, 2 orphans. The output is genuinely useful; it just cannot run as shipped.
Proposed fix
Add to install/package.json:
"graphology": "^0.26.0",
"graphology-communities-louvain": "^2.0.2",
"graphology-metrics": "^2.4.0"
Optionally, have the /api/memory/graph note distinguish "never built" from "build failed" by attempting a resolve and surfacing the error — the current wording sends the user to a command that cannot succeed.
Related
Same class as #1600 (documented remediation that cannot work as shipped): the instruction is present, the machinery behind it is not.
Summary
LIFEOS/TOOLS/MemoryGraph.tsimports three packages thatinstall/package.jsondoes not declare, so it fails at import on a stock install. The Pulse memory-graph endpoint explicitly instructs the user to run it, which means the graph layer is unreachable out of the box and fails with no signal anywhere in the UI.Evidence
MemoryGraph.tsimports:install/package.jsondeclares exactly one dependency:yaml.Result on a stock install:
Why it stays invisible
/api/memory/graphreturns an empty graph plus a remediation string:{"nodes":[],"edges":[],"communities":[],"built":null, "note":"run: bun LIFEOS/TOOLS/MemoryGraph.ts build --all"}The UI renders that as "not built yet," which is indistinguishable from "you haven't run it." Following the instruction produces a module-resolution error in a terminal, not in Pulse — so unless the user runs it by hand and reads stderr, the graph simply never exists.
KnowledgeGraph.ts(the superseded tool) has the same import.Impact
This is the whole declared-edge graph layer: Louvain communities, PageRank god-nodes, betweenness bridges, orphan detection,
MEMORY/GRAPH/graph.jsonandPATTERNS.md. On an install with a few hundred knowledge notes it is a substantial feature, and it is 100% local — no network, no model calls, sub-second.For reference, after adding the three packages the first build on a real corpus took 0.1s and produced 497 nodes, 1306 edges, 23 communities, 2 orphans. The output is genuinely useful; it just cannot run as shipped.
Proposed fix
Add to
install/package.json:Optionally, have the
/api/memory/graphnote distinguish "never built" from "build failed" by attempting a resolve and surfacing the error — the current wording sends the user to a command that cannot succeed.Related
Same class as #1600 (documented remediation that cannot work as shipped): the instruction is present, the machinery behind it is not.