# Reported issues for GrayMatter Desktop Extension

Pod holds 5 of 5 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to [GrayMatter Desktop Extension](/mcp/graymatter-desktop-extension).

## Most discussed

### setup: mcp vs hooks

[docs](https://github.com/angelnicolasc/graymatter#hooks-claude-code-opt-in) on hooks state:
> graymatter hooks install writes the hook block into .claude/settings.json and **after that memory runs itself — the model never has to remember to call a tool**

Does this mean when hooks are installed, mcp configuration should be avoided not to duplicate model interaction with GM?

---

Somewhat related -- if user has configured GM via `graymatter init --global`, then is there any need to run any…

[Read the thread](https://github.com/angelnicolasc/graymatter/issues/81) · 2026-09-02 · closed · external user · 4 comments

### MCP: make checkpoint_resume absence an opt-in structured result

## Problem

For a fresh agent, no saved checkpoint is an ordinary session-start state. On current `main` / v0.19.1, `checkpoint_resume` reports that state as the historical text-only `isError` result. That is schema-safe after #117, but clients such as OpenChamber render it as a failure even though no backend operation failed.

Real daemon, storage, and decode failures must remain errors; #118 established that distinction.

## Goal

Preserve the default wire contract while allowing an MCP…

[Read the thread](https://github.com/angelnicolasc/graymatter/issues/123) · 2026-09-12 · closed · external user · 0 comments

### checkpoint_resume maps every backend error to not_found, hiding storage/daemon failures

## Summary

`handleCheckpointResume` converts **every** non-nil backend error into the typed `{error: "not_found", agent_id}` payload. Real storage, daemon, and internal failures are therefore indistinguishable from "no checkpoint exists", which hides genuine operational problems from agents and operators.

## Observed behavior

Any error from `s.backend.CheckpointResume(agentID)` — including "memory store not initialised", daemon RPC failure, or bbolt read/corruption errors — is reported to…

[Read the thread](https://github.com/angelnicolasc/graymatter/issues/118) · 2026-09-07 · closed · external user · 0 comments

### checkpoint_resume not_found structuredContent violates declared outputSchema; MCP clients reject with -32602

## Summary

`checkpoint_resume` with no checkpoint returns `isError=true` with `structuredContent` shaped `{"error":"not_found","agent_id":...}`, but the tool's declared `outputSchema` describes only the success shape (`id`, `created_at` required; `additionalProperties: false`). MCP clients that validate `structuredContent` against `outputSchema` regardless of `isError` (e.g. the OpenCode client) reject the result with JSON-RPC `-32602` before the intended `not_found` error can be consumed.

##…

[Read the thread](https://github.com/angelnicolasc/graymatter/issues/117) · 2026-09-07 · closed · external user · 0 comments

### mcp serve does not exit at stdin EOF when stdin is file-redirected (Windows)

## Symptom (Windows, found during lifecycle verification)

`graymatter mcp serve` with stdin redirected from a file (`cmd /c "gm.exe mcp serve < session.jsonl"`) **does not exit at EOF** — the process stays alive indefinitely holding the bbolt lock, which then blocks any other store access.

With a real pipe (Go `exec` + `StdinPipe().Close()`), the process exits at EOF correctly — which is why every MCP host is unaffected: hosts spawn the server on a pipe and kill it on session end.

## Likely…

[Read the thread](https://github.com/angelnicolasc/graymatter/issues/79) · 2026-08-27 · open · 0 comments

## Most recent

The remaining reports are on [the project's issue tracker](https://github.com/angelnicolasc/graymatter/issues).
