feat: typing indicators, inspect-invite, and version bump#23
Merged
Conversation
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 typing indicator support
feat: add conversations inspect-invite command
…feature/read-receipts
ApprovabilityVerdict: 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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Merges the remaining stacked PRs into main:
convos.org/typing_indicator:1.0)convos conversations inspect-invitecommand(#18 read receipts was already merged to main.)
Typing indicators
convos conversation send-typing-indicator <id>/--stop{"type":"typing"}/{"type":"typing","isTyping":false}typingevents when other members start/stop typingInspect invite
convos conversations inspect-invite <slug-or-url>Version
0.5.4
Note
Add typing indicators and
inspect-invitecommand to convos CLITypingIndicatorCodecinsrc/utils/typingIndicator.tswith helpers to encode/decode silent, non-pushed typing indicator messages.convos conversation send-typing-indicatorcommand to send typing indicators to a conversation, defaulting toisTyping=trueunless--stopis passed.convos conversations inspect-invitecommand to decode, verify, and display invite metadata (signature validity, expiration, creator) without joining a conversation.agent servecommand to emit atypingevent on incoming typing indicator messages and accept atypingstdin command to send them.src/index.tsfor external consumers.Macroscope summarized 48e55a9.