Summary
MeMesh v4.8.2 can leave Claude Code in a state where the ordinary MeMesh MCP is connected but the separate memesh-channel live-notification path is broken. Durable exact-session messages still persist, which makes the failure look like the Claude agent ignored a message even though no live channel admitted it.
This was found by dogfooding the shared inbox. No message payload, private session identifier, credential, or owner-specific absolute path is included here.
Installed environment
- MeMesh:
4.8.2
- Claude Code:
2.1.251
- macOS
Minimal reproduction
- Keep the normal MeMesh plugin MCP enabled;
claude mcp list reports it connected.
- Leave a user-scoped
memesh-channel registration pointing at a deleted temporary claude.json, while the durable owner location has no current managed-host config.
- Confirm
memesh-channel reports CONNECTION_CLOSED.
- Confirm the Local router socket is absent with
MEMESH_DOCTOR_PROBE_MESSAGE_ROUTER=1 memesh doctor.
- Send an exact-session durable message to an active Claude recipient.
- Observe that send returns a durable message/delivery/event identity but receipt readback remains empty: no host acceptance, intake, ACK, or disposition is established.
- Run ordinary
memesh doctor: it reports Claude plugin hooks/MCP health but does not warn that the separate Claude Channel registration is missing or stale.
Expected
- Doctor reports ordinary MCP/hook availability and Claude Channel live-notification readiness as separate states.
- If the channel registration is missing, its config path is missing/stale, the router is unavailable, or the session was not launched with the required development-channel admission, ordinary diagnostics clearly say live Claude notification is inactive.
- The fix text gives explicit owner actions without auto-creating credentials, editing Claude user configuration, or claiming a session accepted a channel event.
- Release QA includes one controlled active Claude Channel journey: durable send -> metadata-only channel event -> scoped fetch of the same message -> separate host acceptance, intake, ACK, and disposition readback.
Actual
- Ordinary MeMesh MCP connectivity can be healthy while
memesh-channel is independently broken.
- Durable send success is easy to mistake for live Claude notification success.
- No default diagnostic row identifies the stale/missing Claude Channel setup.
Proposed bounded acceptance criteria
Why this matters
The current state passes durable storage but fails the user-visible collaboration promise: an active Claude agent is not automatically made aware of a new message. Human reminders remain necessary while the product appears installed and connected.
Summary
MeMesh v4.8.2 can leave Claude Code in a state where the ordinary MeMesh MCP is connected but the separate
memesh-channellive-notification path is broken. Durable exact-session messages still persist, which makes the failure look like the Claude agent ignored a message even though no live channel admitted it.This was found by dogfooding the shared inbox. No message payload, private session identifier, credential, or owner-specific absolute path is included here.
Installed environment
4.8.22.1.251Minimal reproduction
claude mcp listreports it connected.memesh-channelregistration pointing at a deleted temporaryclaude.json, while the durable owner location has no current managed-host config.memesh-channelreportsCONNECTION_CLOSED.MEMESH_DOCTOR_PROBE_MESSAGE_ROUTER=1 memesh doctor.memesh doctor: it reports Claude plugin hooks/MCP health but does not warn that the separate Claude Channel registration is missing or stale.Expected
Actual
memesh-channelis independently broken.Proposed bounded acceptance criteria
host_accept, fetch/intake, ACK, and disposition distinct.Why this matters
The current state passes durable storage but fails the user-visible collaboration promise: an active Claude agent is not automatically made aware of a new message. Human reminders remain necessary while the product appears installed and connected.