Skip to content

v0.6.3

Choose a tag to compare

@w33ble w33ble released this 06 Sep 23:37
· 11 commits to dev since this release

Features

Realtime board updates (SSE)

The board now updates in realtime — no more stale views when changes happen in
another tab, the CLI, or the API.

  • New GET /api/events SSE endpoint. A lightweight hub broadcasts coarse change events (tickets.updated, projects.updated, teams.updated, labels.updated) after every successful mutation.
  • The board automatically refetches when it receives an event, including a 15s heartbeat to keep connections alive through proxies.
  • Drag-and-drop now refetches the board on successful moves so client state always converges with the server; events arriving mid-drag are deferred until the drag completes.

Board selection persists in the URL

The selected project is now stored in the URL (?project=<id>), so board selection survives reloads, can be bookmarked/shared, and works with browser back/forward.

Image attachments

Tickets now support image attachments, stored as SQLite BLOBs — still a single database file.

  • Upload via the ticket panel ("Add image…" input) or POST /api/tickets/{id}/attachments.
  • Attachments display as a preview grid in the ticket panel, and the first image shows as a cover thumbnail on the kanban card.
  • Images only: uploads are validated by content sniffing (png/jpeg/webp/gif); non-images are rejected with 415.
  • 8MB per-file cap; larger uploads are rejected with 413.
  • Served via GET /api/attachments/{id} (Content-Disposition: inline).
  • Deleting an attachment asks for confirmation first.
  • Attachment changes broadcast on the realtime channel like everything else.

Upgrades

  • Go 1.26 (minimum now 1.26+).

API changes

Endpoint Method Notes
/api/events GET New — SSE change events
/api/tickets/{id}/attachments POST New — multipart image upload (8MB cap)
/api/attachments/{id} GET New — fetch attachment bytes
/api/attachments/{id} DELETE New — remove attachment

All pre-existing endpoints are unchanged. Ticket responses now include an optional attachments array.

Upgrading

No manual steps required — the new attachments table is created by an automatic database migration on first start. Your database remains a single file.