Skip to main content

Conversation tools verification

Graphify is the selected context-graph tool. The owner confirmed this choice on 2026-10-27. The merged #57 adapter uses its existing build/export APIs and graphify path; there is no separate graph service to provision. Memory extraction uses AgentKit #496 and the existing MemoryKit CLI/MCP implementation. #495 and #497 retain the portable archive and host outbox as their authority.

Verified on 2026-10-27​

BoundaryFunctional resultScope
Context graphGraphify 0.9.91 build, directed parent/source queries, replay, correction, exclusion, removal and stale replay rejection passed.Disposable synthetic selection; no Notes discovery or model calls.
Reviewed extraction and memoryAgentKit main 20822b5 with MemoryKit 5834c49: 50 tests passed, two intentionally skipped large-volume real-CLI cases. Real candidate/accept/correction/extraction entry points ran.Isolated synthetic stores and branch archives; test fixtures include project scope and untrusted text checks.
Memory MCPBuilt MemoryKit 0.1.0, protocol 2026-07-28: discovery, create, operation replay, namespace filtering, read, correction and tombstone passed.Existing SDK client connected to the existing stdio server; disposable synthetic store removed after close. Namespace filtering is not an authorization test.
Local memory configurationCLI built; private local store initialized under private Notes; AgentKit recall succeeded with an empty project scope. Codex server named memory registered.capture: false, context: false; no automatic hooks installed. Store excluded locally from Notes Git.
Desktop host smokeAn authorized fresh Codex chat exposed no MemoryKit or memory-named MCP tools. No MCP handshake or record operation could run; protocol/version remain unknown at this boundary.Synthetic-only prompt; no records created or cleanup needed. Temporary chat archived afterward. Creating a fresh chat alone did not activate the registration.
Codex CLI app-server diagnosticInstalled CLI 0.158.0 timed out at its own initialize request in a separate diagnostic process (20-second bound).No chat created or record read/written; the MCP handshake was not reached. This is not evidence of a MemoryKit protocol failure.

These are separate from the read-only capability inventory, which deliberately never opens a store or executes configured code. A configured store/registered server remains unknown there for runtime access. A successful temporary smoke proves the tested implementation, not every future host session, namespace, extension or configuration.

Repeat the functional checks​

Use trusted existing checkouts and their installed runtimes. Do not download a new graph backend or install another SDK for these checks. From the Workspace root:

<graphify-python> -I setup-llm/ai-cluster/tests/smoke_conversation_projection_graphify.py
node setup-llm/ai-cluster/tests/smoke_conversation_memorykit.mjs <memorykit-checkout>

The MemoryKit smoke requires its existing dependencies and built dist/cli/main.js. It loads the client SDK from that checkout, runs only a fresh temporary synthetic store, closes the server and removes the temporary directory. It never reads AgentKit config, the registered host server or the personal store. Failure reports a fixed stage code; stdout contains no memory content, paths or raw server errors.

For the reviewed extraction boundary, run from the existing AgentKit checkout with MEMORYKIT_CLI set to the built MemoryKit CLI path:

node --test tools/memorykit.test.ts tools/conversation-memory.test.ts

This runs the real CLI cases as well as stand-ins; without that environment variable the real cases skip. Test hook behavior is confined to synthetic configuration and does not install machine hooks.

Local setup and private storage​

Use the current AgentKit checkout containing #495–#497; an older installed kit may not contain tools/conversation-memory.ts or tools/memorykit.ts. Updating the checkout does not update native skill registrations. Direct tools from that checkout are usable without changing unrelated machine-wide skills.

AgentKit reads AGENTKIT_MEMORYKIT_CONFIG or its default ~/.agent-kit-state/memorykit.json. Choose a private store inside the private Notes checkout and exclude its entire directory using that checkout's local .git/info/exclude before initializing it. Verify git check-ignore and keep Notes working status clean. MemoryKit history is part of that excluded directory. Local exclusion does not provide an off-device backup; protect that store using private storage/backup policy. Notes Markdown archives remain canonical, versioned and private.

{
"cli": "<absolute-existing-memorykit-checkout>/dist/cli/main.js",
"store": "<absolute-private-notes>/.memorykit",
"capture": false,
"context": false,
"contextBytes": 8192
}

Initialize the chosen store explicitly with node <cli> init <store> --json. Use node <agentkit>/tools/memorykit.ts --action recall --project <project> to verify access. Project scope derives from the repository remote. Keep personal extraction under Notes; do not feed personal transcripts into public project namespaces or select personal summaries for a public graph. Proposed memories remain candidates until explicitly accepted. Graph summaries and opaque memory references never trigger memory creation or acceptance.

Register the same local server using the host's existing MCP mechanism. For Codex:

codex mcp add memory -- <node> <cli> mcp --store <private-store>

This exposes MemoryKit's ordinary local tools to that user's host, including writes; it is not a namespace authorization boundary. Do not reuse the registration in a shared host or publish local config/store paths. Registration is reversible with codex mcp remove memory; removing registration does not delete the store or AgentKit config.

Remaining host limits​

Neither the current chat nor the authorized fresh-chat check exposed memory MCP tools. Registration and a fresh chat are insufficient evidence of activation. The standalone SDK smoke does not prove Codex's own protocol negotiation or tool routing, and the separate CLI app-server diagnostic timed out before its initialization completed. The direct AgentKit CLI works now.

The official MCP setup documentation includes Settings → MCP servers → Restart after configuring a desktop server. The app-server API also documents config/mcpServer/reload and mcpServerStatus/list. The local daemon control socket refused a connection during this verification, so that route could not refresh the running desktop host. On 2026-10-28 the desktop memory server was toggled off/on and Restart was selected; the desktop reopened. This chat still exposed no memory MCP tools afterward. The existing isolated SDK lifecycle passed again, but desktop discovery and routing remain unverified. A further explicitly authorized synthetic chat after the restart exposed neither MemoryKit nor Graphify tools in its native tool inventory. It stopped without accessing any store and was archived afterward. This rules out a stale inventory in this chat as the sole explanation; it does not identify the host's routing failure. Follow-up evidence is tracked in Workspace #64. Repeat an authorized synthetic record lifecycle only after tools are exposed. Do not infer a protocol incompatibility from the absence of tools.

No memory extension or memory command declaration was found in the inspected local VS Code extension directory. Use the existing CLI/MCP workflow; no invented VS Code command ID, extension installation or editor activation is claimed. Other profiles and remote extension hosts require their own inventory.

Keep selections, projections and any personal derived material private. No personal source text, Notes paths or store contents belong in public issues, PRs or this report.