Changelog

v1.44.2

SSO (SAML 2.0 & OIDC), SCIM user provisioning, MCP server for AI integration, organizations with multi-tenancy, webhooks, and major security hardening.

New features:

  • 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).
  • Webhooks - get notified when tasks, projects, or lists change. Send events to Slack, Discord, or your own services. Webhook secrets are encrypted at rest.

Documentation:

  • Added SSO documentation (/docs/features/sso) - SAML 2.0 and OIDC setup guides, email domain routing, user provisioning, replay attack protection, API reference.
  • Added Organizations documentation (/docs/features/organizations) - creation, member management, roles, multi-tenancy.
  • Updated Environment Variables (/docs/configuration/environment-variables) - ENCRYPTION_KEY now required for SSO and integrations.

v1.41.0

Real-time project sync, API token project scoping, session management, login-by-code fix, and documentation.

New features:

  • API tokens - create tokens for programmatic API access with tvk_ prefix and SHA-256 hashed storage. Tokens support permission scoping (restrict which operations a token can perform), project scoping (restrict access to specific projects), and optional expiration. Manage tokens from Account Settings. The full token is shown only once at creation. Tokens cannot manage other tokens. Available as both UI and API (/module/api-tokens).
  • Session management - users can view all active sessions with device name, IP and timestamps, revoke individual sessions, or sign out of all other devices at once.
  • Real-time project sync - projects update instantly via Centrifugo when a user is added to, removed from, or has roles changed in a project. Built on a new RealtimeDispatcher with typed frontend event handler map, designed to scale for future real-time features. Auto-redirect to home when the current project becomes inaccessible.

Fixes:

Documentation:

  • Added API Tokens documentation (/docs/features/api-tokens) - token format, authentication, permission scoping, project restrictions, usage example with taskview-api package.
  • Added Sessions & Devices documentation (/docs/features/sessions) - session lifecycle, device listing, remote logout.

Migration notes:

  • Run database migration container.

v1.32.0

Webhooks, kanban & graph filters, markdown notes, Centrifugo v6 support, and bug fixes.

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 a sourceUrl.
  • Centrifugo v6 support - updated real-time notification configuration for Centrifugo v6 nested config format. Replaced CENTRIFUGO_PUBLIC_PORT with CENTRIFUGO_PUBLIC_URL for 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 unique kanbanOrder when statusId changes.
  • 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. syncTask now 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 complete field, and by correctly updating subtask descriptions in the parent task's subtasks array.
  • Goal lists not loading on kanban page - the list filter dropdown was empty on kanban because useProjectDataLoader didn't fetch goal lists. Added goalListsStore.fetchLists() to the shared data loader.
  • Centrifugo connection token crash - CentrifugoClient.generateConnectionToken() used dynamic require('jsonwebtoken') which wasn't included in the production bundle. Replaced with static import.

Infrastructure:

  • Added Dispatcher interface for event dispatchers - standardized register() and registerWorkers() contract. Both NotificationDispatcher and WebhooksDispatcher implement it. New dispatchers are registered via a single array in all-events.ts.
  • Added goalId to task.deleted event 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_URL and 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 - creates tasks.webhooks and tasks.webhook_deliveries tables.
  • Replace CENTRIFUGO_PUBLIC_PORT with CENTRIFUGO_PUBLIC_URL in .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

GitHub & GitLab integrations, graph permissions, and UI improvements.

New features:

  • GitHub & GitLab integrations — connect repositories to your projects and sync issues as tasks. Supports OAuth authorization, webhook-based updates, and issue-to-task mapping. Works with GitHub Enterprise and self-hosted GitLab instances.
  • Date quick actions — new "This week" and "This month" shortcuts when setting task deadlines
  • Server-side graph permissions — dependency graph operations are now checked on the server, not just in the UI

Fixes:

  • Fixed task completion checkbox being disabled on the main screen when no project is selected
  • Fixed task detail panel showing lists from the wrong project
  • Various UI improvements and polish

v1.20.7

Subtask and Kanban fixes.

Fixes:

  • Fixed subtask duplication when adding subtasks in certain scenarios
  • Fixed Kanban board not loading root tasks correctly for columns

v1.20.4

New UI, Apple login, and mobile improvements.

New features:

  • Login with Apple — sign in with your Apple ID
  • Redesigned web client — migrated to Nuxt UI for a modern, polished interface
  • Mobile app improvements — fixed build issues and updated iOS and Android versions

Fixes:

  • Fixed external auth redirect handling
  • Fixed locale not being saved between sessions
  • Fixed tag validation — tags and tasks now properly checked for same-project membership
  • Fixed start screen loading issues
  • Various type fixes and URL corrections

v1.19.6

Cookie-based auth fix and Docker build improvements.

Fixes and improvements:

  • Fixed cookie handling for authentication sessions
  • Added Docker build script for easier image management
  • Extended app internals for better customization support
  • Updated dependencies

v1.19.0

Login with Google and GitHub.

New features:

  • Login with Google — sign in with your Google account via OAuth
  • Login with GitHub — sign in with your GitHub account via OAuth

Both providers work alongside the existing email/password login. Configure them in your .env file — see the Authentication docs for setup instructions.

v1.18.2

Bug fix for history record deletion.

Bug fix: History records for related entities (goals, goal lists, tasks) are now properly deleted when an entity is removed. Previously, removing a goal or list could leave orphaned history entries in the database.

v1.18.0 — Public Launch

TaskView source code is now publicly available on GitHub.

TaskView is now publicly available. The source code has been published on GitHub, and Docker images are available on Docker Hub.

This is the first public release, and it includes everything you need to run a self-hosted task management platform:

  • Projects, lists, tasks, and subtasks
  • Kanban boards with custom statuses
  • Task dependency graphs
  • Role-based access control with granular permissions
  • Team collaboration with user invitations
  • Dashboard with smart widgets
  • Dark mode
  • Mobile apps for iOS and Android
  • Web app available at app.taskview.tech
  • Docker deployment with automated migrations