New
API Rate Limiting: API keys now have per-tier rate limits — Stream: 20 req/min, River: 60 req/min, Alpheus: 200 req/min. Limits are tracked per key, not per IP.
Bulk actions: Select multiple tasks using the new checkbox column and apply changes to all of them at once — set status, change priority, or delete with a confirmation prompt. A floating action bar appears at the bottom of the screen whenever tasks are selected.
Improved
API Access on All Plans: API access is now available on Stream, River, and Alpheus. Previously it was restricted to River and above.
Attachments: Tasks now accept a much wider range of file types — including video (mp4, webm, mov, avi), vector and raster images (svg, bmp, tiff, ico), LibreOffice documents (odt, ods, odp), and code or config files (json, yaml, xml, html, css, js, ts, sql, sh, log). Applies to both the dashboard and the public API.
Table view: The task table no longer renders inside a nested card — it now sits flat and full-width against the app background, reducing visual clutter.
Sorting: The table's Status and Assignee columns are now sortable. Kanban columns gain two new sort options: Due Date (earliest or latest first) and Assignee (A–Z or Z–A).
Clear filters: A "Clear ×" button now appears directly in the toolbar whenever filters or search are active, without needing to open the filter popover. When no tasks match the current filters, a clear button also appears inline in the empty state.
Fixed
Workspace owner role management: Only the workspace creator can invite members as owner, assign the owner role, or remove other owners. Other owners can no longer bypass this by using the invite flow. The workspace creator cannot be removed or have their role changed by anyone.

