Skip to content

Releases: Gimanh/taskview-community

SSO, MCP, Organisations

21 Apr 08:16
f5c3fe2

Choose a tag to compare

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

29 Mar 22:31
3aff4c7

Choose a tag to compare

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

22 Mar 22:42
4412ba1

Choose a tag to compare

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 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

08 Mar 21:49
b8b8481

Choose a tag to compare

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_manage
  • integrations_can_view

⚠️ These permissions must be enabled manually if you want other users to view or manage integrations.

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/callback

Generate 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

01 Mar 20:30
3020e41

Choose a tag to compare

Fixed subtask duplication.
Fixed subtask fetching in the Kanban board.

v1.20.4

22 Feb 20:42
b24ab9b

Choose a tag to compare

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

23 Jan 21:05
b3cc983

Choose a tag to compare

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

v1.19.0

12 Jan 20:40
9091d57

Choose a tag to compare

What’s new:

  • Login with Google
  • Login with GitHub

v1.18.2

08 Jan 21:16
0936f51

Choose a tag to compare

Bug fix: history records for related entities (goals, goal lists, tasks) are now properly deleted when an entity is removed.