This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+4 more
Affected surfaces
Summary
AI summaryWebhooks now support HTTP POST notifications with HMAC‑SHA256 signatures and automatic retries.
Full changelog
v1.32.0 Release Notes
New features:
-
Webhooks - receive HTTP POST notifications when events happen in your projects. Configure webhook URLs, select events (
task.created,task.updated,task.deleted,task.assigneesChanged), and verify payloads with HMAC-SHA256 signatures. Includes automatic retries (3 attempts with exponential backoff), delivery history with payload viewer, status filtering, manual retry for failed deliveries, secret rotation, and test delivery. Webhooks auto-deactivate after 10 consecutive failures. -
Kanban & Graph filters - filter tasks by lists and assignees on both Kanban board and Graph views. Multiple lists and multiple users can be selected simultaneously. Filters are applied server-side for Kanban (query params on API) and client-side for Graph. Filter toolbar with reset button, responsive layout (inline on desktop, separate row on mobile).
-
Markdown rendering in notes - task notes from GitHub/GitLab integrations now render as formatted markdown instead of plain text with raw symbols. Uses Nuxt UI Editor with
content-type="markdown"when task has asourceUrl. -
Centrifugo v6 support - updated real-time notification configuration for Centrifugo v6 nested config format. Replaced
CENTRIFUGO_PUBLIC_PORTwithCENTRIFUGO_PUBLIC_URLfor flexible WebSocket URL configuration, enabling nginx proxy setup without exposing separate ports.
Fixes:
-
Kanban order conflict on task move - fixed unique constraint violation
(goal_id, kanban_order)when moving tasks between columns from the task detail panel. The server now assigns a new uniquekanbanOrderwhenstatusIdchanges. -
Kanban order conflict on drag to filtered empty column - when filters made a column appear empty, dragging a task into it could assign a conflicting
kanbanOrder. Fixed by calculating order based on the entire project scope, not just the visible column. -
Task not moving between kanban columns - when changing a task's column from the task detail overlay, the kanban board didn't reflect the change until page reload.
syncTasknow detects column changes and moves the task between columns in the local store. -
Subtask description reverting on completion - toggling a subtask's completion checkbox could revert its description to the original text from creation. Fixed by updating the full subtask object from server response instead of only the
completefield, and by correctly updating subtask descriptions in the parent task'ssubtasksarray. -
Goal lists not loading on kanban page - the list filter dropdown was empty on kanban because
useProjectDataLoaderdidn't fetch goal lists. AddedgoalListsStore.fetchLists()to the shared data loader. -
Centrifugo connection token crash -
CentrifugoClient.generateConnectionToken()used dynamicrequire('jsonwebtoken')which wasn't included in the production bundle. Replaced with static import.
Infrastructure:
-
Added
Dispatcherinterface for event dispatchers - standardizedregister()andregisterWorkers()contract. BothNotificationDispatcherandWebhooksDispatcherimplement it. New dispatchers are registered via a single array inall-events.ts. -
Added
goalIdtotask.deletedevent in EventBus for webhook delivery routing. -
Docker Compose configuration for Centrifugo with nginx WebSocket proxy setup.
Documentation:
-
Added webhooks documentation (
/docs/features/webhooks) - setup, payload format, signature verification with code example, retry behavior, auto-deactivation, secret rotation, local testing script. -
Updated notifications documentation with
CENTRIFUGO_PUBLIC_URLand Centrifugo v6 config format. -
Updated environment variables documentation with Centrifugo v6 config example and nginx proxy setup.
Migration notes:
- Run database migration
1.32.0- createstasks.webhooksandtasks.webhook_deliveriestables. - Replace
CENTRIFUGO_PUBLIC_PORTwithCENTRIFUGO_PUBLIC_URLin.env.taskview(e.g.wss://api.example.com/centrifugo/connection/websocket). - If using Centrifugo, update config to v6 format (nested keys:
client.token.hmac_secret_key,http_api.key,client.allowed_origins).
Breaking Changes
- Replace `CENTRIFUGO_PUBLIC_PORT` with `CENTRIFUGO_PUBLIC_URL` in environment configuration.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Beta — feedback welcome: [email protected]