Skip to content

v0.1.16

Choose a tag to compare

@Daniel-Robbins Daniel-Robbins released this 21 Feb 13:45
· 40 commits to main since this release

What's Changed

Bug Fixes

  • Fix agent image display: AES-CTR (stream cipher) silently corrupted agent images by "decrypting" unencrypted data into garbage bytes. Now uses explicit mediaEncrypted flag to determine whether media needs E2E decryption.
  • Fix WebSocket reconnection storm: Health-monitor repeatedly killed healthy connections via startAccount. Now skips restart when existing client is already connected.

Features

  • E2E encrypt agent media: Agent-sent images are now end-to-end encrypted. Plugin downloads external images, encrypts with AES-CTR, and uploads via new /api/plugin-upload endpoint with pairing token auth.
  • Backward-compatible bitmask storage: encrypted column uses bitmask (bit0=text, bit1=media) so old unencrypted agent media continues to display correctly.

Files Changed

  • packages/api/src/index.ts — new /api/plugin-upload route
  • packages/api/src/do/connection-do.ts — bitmask persistence + mediaEncrypted derivation
  • packages/plugin/src/channel.ts — E2E media encryption + upload + reconnect fix
  • packages/plugin/src/types.tsmediaEncrypted field on agent.media
  • packages/web/src/mediaEncrypted support across store, API types, ChatWindow, ThreadPanel