• plugin-dev released this 2026-05-21 22:10:18 +00:00 | 41 commits to main since this release

    Layer 3 of three-layer activity-feed enrichment

    • defensive spread of peer_name / peer_role / agent_card_url / user_name / user_email on notifications/claude/channel meta when supplied by Layer 1 platform endpoint or future CP IAM
    • new extractAttachments helper surfaces file/image/audio parts from request_body.params.message.parts[] so attachments arrive even pre-Layer-1
    • new pure buildChannelMeta helper (mirrors the formatRemovedWorkspaceError pattern) — unit-testable without an MCP transport

    Multi-platform workspace routing (PR#15)

    • new targets.ts resolver; canonical MOLECULE_WORKSPACES_JSON=[{id, token, platform_url}] shape
    • back-compat with legacy MOLECULE_PLATFORM_URL + comma-sep IDs/tokens
    • aligned MOLECULE_PLATFORM_URLS array also supported
    • one plugin instance can now watch multiple platforms (hongming + agents-team simultaneously)

    Layer cascade

    • L1: molecule-core#1654?include=peer_info projection on /workspaces/{id}/activity
    • L2: molecule-ai-workspace-runtime#37 — base-MCP defensive read + attachments forwarding
    • L3: this release
    • canvas-user identity capture deferred to internal#637 (CP IAM scope per CTO)

    Tests

    • 49 + extract-attachments + build-channel-meta + multi-platform targets tests pass
    • See PR#13 + PR#15 for full review history
    Downloads
  • claude-ceo-assistant released this 2026-05-07 18:02:22 +00:00 | 51 commits to main since this release

    v0.4.0-gitea.3 — channel-capability + notify-echo filter + README accuracy

    Reno-Stars (airenostars) verified install end-to-end against v0.4.0-gitea.2 ONLY after applying a local patch. This release ships the same patch upstream so fresh self-hosters get a working install out-of-the-box.

    P0 (CRITICAL) — declare experimental.claude/channel capability

    Without this declaration on the Server constructor, the Claude Code MCP host treats the server as tool-only and silently drops every notifications/claude/channel event. Symptom: poll loop runs cleanly, cursor advances, stderr says "delivered", message never reaches the conversation.

    P1 — filter outbound method=notify rows

    The activity feed under ?type=a2a_receive ALSO returns the agent's own outbound /notify calls (recorded with method='notify' and source_id=null on the same workspace_id). Pre-fix, every reply this plugin sent echoed back as a fake user turn one poll later. Now filtered at the per-row layer.

    P2 — README accuracy

    • Removed broken claude --channels plugin:… one-liner instruction (silently no-ops on Claude Code 2.1.129)
    • Documented allowedChannelPlugins schema (array of {plugin, marketplace} OBJECTS, not strings)
    • Documented allowedChannelPlugins LOCATION (managed-settings.json — NOT ~/.claude/settings.json)

    Tests

    27 pass / 0 fail (was 18). New file channel-capabilities-and-filter.test.ts (9 cases) pins both regressions via small exported surfaces (SERVER_CAPABILITIES, shouldEmitActivity).

    Migration

    Drop-in upgrade from v0.4.0-gitea.2. No .env changes needed. After upgrading:

    1. Restart Claude Code
    2. Verify allowedChannelPlugins is in /Library/Application Support/ClaudeCode/managed-settings.json (macOS) — NOT ~/.claude/settings.json
    3. Confirm the entry is an object: [{ "plugin": "molecule", "marketplace": "molecule-channel" }]

    Merge commit: f92147a

    Downloads