Releases: Gimanh/taskview-community
SSO, MCP, Organisations
SSO - SAML 2.0 & OpenID Connect - connect your identity provider (Okta, Azure AD, Google Workspace, Keycloak) and let your team sign in with existing corporate credentials. Supports metadata URL auto-sync, request signing, and email domain routing. One domain = one SSO config.
SCIM 2.0 provisioning - automatically add and remove users when they join or leave your identity provider. No manual user management needed. Bearer token authentication with SHA-256 hashed storage.
Organizations & multi-tenancy - create multiple organizations on a single TaskView instance. Each org has its own projects, members, and settings. Switch between orgs instantly. Three roles: Owner, Admin, Member.
MCP server - Model Context Protocol server for AI integration. Connect Claude Desktop, Cursor, or Claude Code to TaskView. Create tasks, list projects, manage work - all from your AI assistant using natural language. Ships as an npm package (taskview-mcp).
v1.41.0
Release Notes - v1.41
Real-time project sync
- Projects now update in real-time via Centrifugo when a user is added to, removed from, or has roles changed in a project
- Scalable event handler architecture (RealtimeDispatcher + typed frontend event map) for future real-time features
- Auto-redirect to home when navigating to a project the user no longer has access to
API tokens - project scoping
- Tokens can now be restricted to specific projects (UI + API)
- fetchGoals respects allowedGoalIds - tokens with project restrictions only see allowed projects
Session management: users can now view all active sessions with device name, IP and timestamps, revoke individual sessions, or sign out of all
other devices at once
Bug fixes
- #41
- Collaboration user lookup case mismatch: adding a user to a project by email failed if the registered email had uppercase characters collaboration.userAdded event now lowercases email before resolving the auth user
Documentation
- Added docs/2.features/8.api-tokens.md token format, auth, permission scoping, usage example with taskview-api
- Added docs/2.features/9.sessions.md session management, device listing, remote logout
v1.32.0
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).
v1.24.0
Release Notes
Integrations
Added integration with GitHub and GitLab.
Current synchronization capabilities:
- title and description are synchronized
- GitHub / GitLab are the source of truth
- the issue description is stored in TaskView note
Permissions
Server API now includes permission handling for operations with the graph.
Two new permissions were added for integrations:
integrations_can_manageintegrations_can_view
UI Improvements
- added date placeholders when selecting dates:
- "This week"
- current month
- fixed loader display issues
- date updates are now performed with a single request
- several general UI improvements
- fixed an issue with disabled checkbox on the main screen
Updates
- updated Web and Mobile versions
Integration Setup
To enable integrations you need to add the following environment variables:
GITHUB_INTEGRATION_CLIENT_ID=<your-client-id>
GITHUB_INTEGRATION_CLIENT_SECRET=<your-client-secret>
GITHUB_INTEGRATION_CALLBACK_URL=http://localhost:1401/module/integrations/oauth/github/callback
GITLAB_INTEGRATION_CLIENT_ID=<your-application-id>
GITLAB_INTEGRATION_CLIENT_SECRET=<your-secret>
GITLAB_INTEGRATION_CALLBACK_URL=http://localhost:1401/module/integrations/oauth/gitlab/callbackGenerate Encryption Key
Tokens are encrypted with AES-256-GCM. You need a 32-byte hex key (64 characters):
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Add it to .env.taskview:
ENCRYPTION_KEY=<your-64-char-hex-key>
v1.20.7
v1.20.4
TaskView v1.20.4
🚀 UI Rewrite (Nuxt UI)
Web and mobile applications have been fully rewritten using Nuxt UI.
This provides a more consistent design system, cleaner architecture, and a stronger foundation for future UI improvements.
🧹 Cleanup & Refactoring
- Removed legacy UI code
- Reduced technical debt
- Improved overall maintainability
⚡ Performance Improvements
- Reduced number of server requests
- Faster navigation between screens
🪟 Improved Task Experience
- Tasks can now be opened from almost any screen
- Task details open in a modal within the current view
- No route redirection required
This significantly improves workflow speed and usability.
📱 Mobile Update
- Updated CapacitorJS to the latest version
- Improved mobile stability and compatibility
v1.19.6
v1.19.6
Changes
Updated authentication flow to use HTTP-only cookies for JWT storage instead of client-side storage
Improved security and consistency of auth between web and Capacitor mobile apps
Refactored CORS configuration to allow explicit origin control
Environment
CORS_REMOVE_DEFAULT_ALLOWED_ORIGINS=true
CORS_ALLOWED_ORIGINS=https://taskview.handscream.com,https://app.taskview.tech,capacitor://taskview.handscream.com,capacitor://app.taskview.tech,http://localhost:3000