v1.3.0 — Image attachments
Issues can now carry screenshots.
- Attach images in the browser GUI — drag-and-drop or paste straight from the clipboard
- Images are compressed in the browser (downscaled, webp) and capped at 500 KB; tune with :config attachmentMaxKb
- Blobs are content-addressed and stored on the state branch, so they sync atomically with the events that reference them — a teammate's pull always delivers the image together with its issue
- TUI: new Attachments section in issue details — select an attachment and press enter to open it locally
- Attachment activity shows up properly in the issue history and in :replay
- Deleting an attachment removes the reference but keeps the blob, so :peek/:replay still render history faithfully
- Only the uploader can delete their own attachments
- Strict validation on everything synced: magic-byte sniffing, png/jpg/gif/webp only, content-hash verification before serving
Also in this release:
- Older epiq versions now skip events they don't understand instead of failing replay — upgrade-friendly going forward (older versions can handle unknown (new) events in a non disruptive way)
- Refs render without the # prefix everywhere, matching what :filter, :yank, and URLs actually accept
- GUI polish: description panel gets a subtle inset, darker input fields, and sync failures no longer spill raw error output across the topbar