Skip to content

feat: typing indicators, inspect-invite, and version bump#23

Merged
yewreeka merged 7 commits intomainfrom
feature/read-receipts
Mar 18, 2026
Merged

feat: typing indicators, inspect-invite, and version bump#23
yewreeka merged 7 commits intomainfrom
feature/read-receipts

Conversation

@yewreeka
Copy link
Copy Markdown
Collaborator

@yewreeka yewreeka commented Mar 17, 2026

Summary

Merges the remaining stacked PRs into main:

(#18 read receipts was already merged to main.)

Typing indicators

  • Standalone: convos conversation send-typing-indicator <id> / --stop
  • Agent stdin: {"type":"typing"} / {"type":"typing","isTyping":false}
  • Agent stdout: typing events when other members start/stop typing
  • Matches iOS implementation (convos-ios#590)

Inspect invite

  • convos conversations inspect-invite <slug-or-url>
  • Offline decode + signature verification
  • No identities created, no network connection

Version

0.5.4

Note

Add typing indicators and inspect-invite command to convos CLI

  • Adds a new TypingIndicatorCodec in src/utils/typingIndicator.ts with helpers to encode/decode silent, non-pushed typing indicator messages.
  • Adds convos conversation send-typing-indicator command to send typing indicators to a conversation, defaulting to isTyping=true unless --stop is passed.
  • Adds convos conversations inspect-invite command to decode, verify, and display invite metadata (signature validity, expiration, creator) without joining a conversation.
  • Updates the agent serve command to emit a typing event on incoming typing indicator messages and accept a typing stdin command to send them.
  • Exports typing indicator utilities from src/index.ts for external consumers.

Macroscope summarized 48e55a9.

yewreeka and others added 5 commits March 13, 2026 10:00
Implements the convos.org/typing_indicator:1.0 content type matching
the iOS implementation (convos-ios#590).

Standalone command:
- 'convos conversation send-typing-indicator <id>' sends isTyping=true
- 'convos conversation send-typing-indicator <id> --stop' sends isTyping=false

Agent protocol:
- Stdin: {"type":"typing"} and {"type":"typing","isTyping":false}
- Stdout: 'typing' events emitted when other members start/stop typing
  with senderInboxId, isTyping, conversationId, and timestamp

Infrastructure:
- TypingIndicatorCodec registered with XMTP client
- Typing indicators intercepted in agent message stream before the
  isDisplayableMessage filter (they are not stored messages)
- Codec, helpers, and types exported from index.ts

Bumps version to 0.5.3.
Decodes and inspects an invite slug or URL without joining the
conversation. Displays all embedded metadata including:

- Invite tag and creator inbox ID
- Conversation name, description, and image URL
- Expiration dates (invite and conversation)
- Single-use flag
- Cryptographic signature validity
- Whether the invite or conversation has expired

Purely offline — does not create identities, send join requests,
or connect to XMTP. Useful for debugging invite issues.

Bumps version to 0.5.4.
feat: add conversations inspect-invite command
@macroscopeapp
Copy link
Copy Markdown

macroscopeapp bot commented Mar 17, 2026

Approvability

Verdict: Needs human review

This PR introduces new features: typing indicator support (new codec, new CLI command, agent protocol integration) and a new inspect-invite command. While the implementation appears clean and the changes are self-contained, new user-facing capabilities and protocol additions warrant human review.

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

@yewreeka yewreeka merged commit c7d2469 into main Mar 18, 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