-
Notifications
You must be signed in to change notification settings - Fork 4
Releases: xmtplabs/convos-cli
v0.10.10
d6d3d27 Patch Changes
- #82
1a4a74cThanks @saulmc! - FixnormalizeMessageContentso a reply that carries a non-text payload renders its display string instead of a raw JSON dump of the decoded content. A reply containing a remote attachment now rendersreply to "...": [remote attachment: photo.jpg (... bytes) https://...]rather than serializing the attachment envelope — which leaked the AES key material (secret/salt/nonce) into the message text. Inline attachments, reactions, and other nested content types render through the same path.
Assets 2
v0.10.9
74d480f Assets 2
v0.10.8
ea2c9fa Assets 2
v0.10.7
b1efa3b Assets 2
v0.10.6
6a1e499 Assets 2
v0.10.5
e65f66b Assets 2
v0.10.4
6775b5f Assets 2
v0.10.3
414d1fe Assets 2
v0.10.1
bcaaf6c Added: Thinking content type
New silent codec for ambient agent thinking-status indicators, anchored to
a specific message (like read receipts):
convos.org/thinking:1.0— JSON payload{state, targetMessageId, content, resultMessageId?}.
stateis"start"or"stop"— agents pair astartwith a matchingstop
on the sametargetMessageId.contentis a 3–5 word human-readable label
shown alongside the indicator (e.g."Designing your cycling guide").
resultMessageIdis optional and only meaningful onstop— the agent's own
reply message that closed the thought, so receivers can link "thought about X"
to "replied with Y".- Silent (
shouldPush: false), no fallback. Filtered from the chat stream by
isDisplayableMessage. agent serveevent surface: receive path emits athinkingevent; live and
catchup both surface, deduped by message id. Stdin command{"type":"thinking","state":"start|stop","targetMessageId":"...","content":"...","resultMessageId":"..."}sends a Thinking message.resultMessageIdonly valid withstate: "stop".
Exports: ThinkingCodec, ContentTypeThinking, isThinkingMessage,
getThinkingContent, Thinking, ThinkingState.
Added: Remote-attachment decode helpers
agent serve's message event now carries structured attachment metadata
when the content type is one of XMTP's native remote-attachment types:
xmtp.org/remoteStaticAttachment:1.0— emits aremoteAttachment
object alongsidecontent.xmtp.org/multiRemoteStaticAttachment:1.0— emits a
multiRemoteAttachment: { attachments: [...] }object.
Each entry has url, contentDigest, scheme, secret/salt/nonce
(base64-encoded), and optional contentLength/filename — enough for
an agent to fetch and decrypt the bytes with decryptAttachment. Bytes
were previously Uint8Array on message.content, which doesn't
serialize to JSON cleanly. Encoding matches the agent serve remote-attach
stdin command so agents send and receive attachments through one mental
model. Live and catchup message paths both populate the new fields.
New exports: extractRemoteAttachment, extractMultiRemoteAttachment,
RemoteAttachmentJson, RemoteAttachmentInfoJson, MultiRemoteAttachmentJson.
Full Changelog: v0.9.1...v0.10.1
Assets 2
v0.9.1
6ddfffa What's Changed
- feat: catch up to convos-ios#812 (multi-agent capability resolution) in #41
Full Changelog: v0.9.0...v0.9.1