Skip to content

Doctor does not expose broken Claude Channel live notifications #272

Description

@kevintseng

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

  1. Keep the normal MeMesh plugin MCP enabled; claude mcp list reports it connected.
  2. 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.
  3. Confirm memesh-channel reports CONNECTION_CLOSED.
  4. Confirm the Local router socket is absent with MEMESH_DOCTOR_PROBE_MESSAGE_ROUTER=1 memesh doctor.
  5. Send an exact-session durable message to an active Claude recipient.
  6. Observe that send returns a durable message/delivery/event identity but receipt readback remains empty: no host acceptance, intake, ACK, or disposition is established.
  7. 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

  • Default doctor detects configured or installed Claude support separately from live Claude Channel readiness.
  • Missing/stale channel config and absent channel admission produce a warning with safe owner-controlled remediation.
  • Documentation states that ordinary MeMesh MCP connectivity does not prove channel admission or agent awareness.
  • Exact-candidate QA exercises a real active Claude Channel and keeps host_accept, fetch/intake, ACK, and disposition distinct.
  • No credential, private session identity, payload, or owner absolute path is emitted in diagnostics or test evidence.

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions