Skip to content

feat: add XMTP read receipt support#18

Merged
saulmc merged 1 commit intomainfrom
feature/read-receipts
Mar 17, 2026
Merged

feat: add XMTP read receipt support#18
saulmc merged 1 commit intomainfrom
feature/read-receipts

Conversation

@yewreeka
Copy link
Copy Markdown
Collaborator

@yewreeka yewreeka commented Mar 13, 2026

Summary

Adds read receipt support to both the standalone CLI and the agent protocol.

New standalone command

convos conversation send-read-receipt <conversation-id>

Sends a silent read receipt to the conversation. No visible message, no push notification.

New agent stdin command

{"type":"read-receipt"}

Emits a sent event with type: "read-receipt" on success.

Test isolation fix

Updated test/helpers.ts to auto-inject --home <tmpdir> into all CLI test invocations, so tests no longer read/write ~/.convos. This fixes the pre-existing flaky failure in the identity lifecycle test where other identities in the real home dir could interfere with assertions.

Changes

  • src/commands/conversation/send-read-receipt.ts — new standalone command
  • src/commands/agent/serve.ts — added ReadReceiptCommand interface and handler
  • test/helpers.tsrunCommand() now injects --home pointing to an isolated temp dir; added getTestHome() / cleanupTestHome()
  • test/commands/identity.test.ts — uses isolated home, handles empty-list edge case
  • test/commands/init.test.ts — uses isolated home
  • SKILL.md — documented read receipt command and agent protocol

Version

0.5.2. All 226 tests pass.

Note

Add XMTP read receipt support to CLI and agent command processor

  • Adds a new CLI command convos conversation send-read-receipt <conversation-id> in send-read-receipt.ts that sends a read receipt to a group conversation and returns JSON with success, messageId, and conversationId.
  • Extends the agent's stdin command loop in serve.ts with a read-receipt case that calls conversation.sendReadReceipt() and emits a sent event with the resulting message ID.
  • Adds test isolation via a shared temporary home directory in test/helpers.ts, automatically injecting --home <tempDir> into all CLI test invocations.

Macroscope summarized c573a3e.

- Add 'convos conversation send-read-receipt <id>' standalone command
- Add 'read-receipt' stdin command to agent serve protocol
- Fix flaky identity test by using isolated --home test directory
- Update test helpers to auto-inject --home for test isolation
- Update SKILL.md with read receipt docs

Bumps version to 0.5.2.
@macroscopeapp
Copy link
Copy Markdown

macroscopeapp bot commented Mar 13, 2026

Approvability

Verdict: Needs human review

This PR introduces a new user-facing feature (read receipt CLI command and agent command type). While the implementation is clean, additive, and follows existing patterns, new features with new user-facing behavior warrant human review to confirm the desired functionality.

You can customize Macroscope's approvability policy. Learn more.

@saulmc saulmc merged commit 42a7f27 into main Mar 17, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants