Repository navigation
Releases
v0.7.0
v0.7.0
Highlights
- Board and Tickets now share one selected project. Pick a project on either view and the other follows. The selection lives in the URL (
?project=<id>), so a filtered view is linkable, survives a reload, and is remembered when you switch to another view and back. - The last opened board is remembered. Going to Projects, Teams, or Labels and returning to the Board brings you back to the board you were on — while All boards stays selectable at any time.
- Terminal panel releases its resources. Closing or unmounting the panel now tears down the WebSocket, the xterm instance, and the resize/drag listeners, and the socket's close handler no longer writes to a disposed terminal.
- No more stale board data. Switching projects quickly can no longer let a slower, older response overwrite the board with the wrong project's tickets.
Fixes
- "All boards" is selectable again when a board is remembered (regression in the remembered-board feature).
- Out-of-order board responses are ignored when switching projects.
- Terminal panel no longer leaks its WebSocket, xterm instance, or drag listeners on unmount.
Tooling and maintenance
- Building from source now requires Node 24 (was 22). Go remains 1.26+;
go.modkeeps1.26as the language floor while CI tracks the latest 1.26 patch. - GitHub Actions updated to current majors:
checkoutv7,setup-gov7,setup-nodev7,upload-artifactv7,download-artifactv8,action-gh-releasev3. - Frontend dependencies updated to their latest semver-compatible versions; dependency majors (Vite 8,
@vitejs/plugin-react6,lucide-react1,globals17) picked up as well. - Linting and formatting migrated to the Oxc toolchain (
oxlint+oxfmt), replacing ESLint and Prettier. Both checks run in CI; 144 transitive packages dropped. - TypeScript 7 (the native compiler) adopted — previously blocked by
typescript-eslint's peer range. - The release workflow no longer publishes to the upstream Homebrew tap.
- Version display and the MCP
serverInfo.versionbumped to 0.7.0.
Docs
- README documents realtime updates, image attachments, and URL-based board selection.
Full Changelog: v0.6.3...v0.7.0
v0.6.3
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/eventsSSE 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.
v0.6.2
This release refreshes the frontend packages and improves the web UI's initial load performance.
What's Changed
- Updated frontend dependencies and lockfile entries, including React Router and the Vite/Rollup/esbuild toolchain.
- Applied dependency and npm audit fixes.
- Lazy-loaded the embedded Terminal panel so xterm.js is downloaded only when Terminal is opened.
- Lazy-loaded the individual web pages so page-specific code is fetched as each section is visited.
- Reduced the initial JavaScript bundle below Vite's 500 kB warning threshold.
Upgrade
Download the latest taskboard binary for your platform, or build from source with:
git checkout v0.6.2
make buildv0.6.1
Labels — full label management UI.
- Label badges on tickets and the board view
- Label picker in the Create/Edit ticket modal (multi-select)
- Labels management page (/labels) — create, edit, delete labels with name + color
Full Changelog: v0.6.0...v0.6.1