Update dependency kaneo to v2.20.0 #397

Merged
Lumpiasty merged 1 commits from renovate/kaneo into fresh-start 2026-08-22 22:14:53 +00:00
Collaborator

This PR contains the following updates:

Package Update Change
kaneo minor v2.12.1v2.20.0

Release Notes

usekaneo/kaneo (kaneo)

v2.20.0

Compare Source

What's Changed

Full Changelog: https://github.com/usekaneo/kaneo/compare/v2.19.1...v2.20.0

v2.19.1

Compare Source

Bug Fixes
  • apply CodeRabbit auto-fixes (b25a644)
  • apply CodeRabbit auto-fixes (6c088da)
  • ci: failing test (46c5f9b)
  • ci: failing test and code review recommendations (1de8146)
  • review: qodo/coderabbit suggestions (270bc04)
  • review: qodo/coderabbit suggestions (9656036)
  • review: qodo/coderabbit suggestions (089d2a2)
  • scripts: inject datasetSource + conditions fields Sentry requires (8f662ba)
  • scripts: surface Sentry API errors in provision-sentry-alerts (3f55456)
  • seer: removed throw (2a023c4)
  • sentry/alerts: add missing API fields and URL-encode GET params (e43550f)
  • sentry/alerts: add resolution condition + drop tokenized query params (45c4ab2)
  • sentry/alerts: declare cron SLUGS as an array (a922c91)
  • sentry/alerts: drop /projects/ prefix from detector endpoint (97a27a5)
  • sentry/alerts: migrate to span dataset, add triggers to metric workflows (884de66)
  • sentry/alerts: propagate detector lookup failures (2012b6d)
  • sentry/dashboards: add limit:10 to every query (5eb66a3)
  • sentry/dashboards: inject limit:10 on time-series widgets (cba033a)
  • sentry: ignore Safari extension runtime.sendMessage() errors (3b04cc2)
  • sentry: Qodo review-batch (issue projects, cron coverage, region) (c367d4f), closes #​2 #​4 #​1 #​3 #​6
  • sentry: review-batch fixes across provision scripts and specs (a6792e6)
  • test: stop integration test hook and case timeouts (71dfe19)
  • web,sentry: handle authClient.getSession() network errors in workspace settings (08059ba)
  • web,sentry: ignore Facebook in-app browser postMessage errors (37d13fa)
  • web,sentry: reduce noise from auth fetch errors and validate API URL (f59194e)
  • web,sentry: remove unnecessary Sentry capture for auth fetch errors (92693ab)
  • web: handle shiki initializer rejection in comment editor (7a7120e)
  • web: prevent Shiki highlighter crash on dynamic module load failure (f48f4a4)
  • web: track session-fetch failure and skip setActive fallback (6d8d2a6)
Features
  • api: drop workspace identifiers from Sentry integration breadcrumbs (92f67ad)
  • design: replace Cal Sans and Paper Mono with Geist (017efe2)
  • provision Sentry alert rules from sentry/alerts.json (eb00753)
  • provision Sentry dashboards from sentry/dashboards.json (2d91232)
  • scripts: update existing alerts instead of skipping (7690073)
  • web: emit source maps, switch to captureReactException, mount a safe root crash fallback (01004a3)

2.19.1 (2026-08-15)

Bug Fixes

v2.19.0

Compare Source

Bug Fixes
  • apply CodeRabbit auto-fixes (b25a644)
  • apply CodeRabbit auto-fixes (6c088da)
  • ci: failing test (46c5f9b)
  • ci: failing test and code review recommendations (1de8146)
  • review: qodo/coderabbit suggestions (270bc04)
  • review: qodo/coderabbit suggestions (9656036)
  • review: qodo/coderabbit suggestions (089d2a2)
  • scripts: inject datasetSource + conditions fields Sentry requires (8f662ba)
  • scripts: surface Sentry API errors in provision-sentry-alerts (3f55456)
  • seer: removed throw (2a023c4)
  • sentry/alerts: add missing API fields and URL-encode GET params (e43550f)
  • sentry/alerts: add resolution condition + drop tokenized query params (45c4ab2)
  • sentry/alerts: declare cron SLUGS as an array (a922c91)
  • sentry/alerts: drop /projects/ prefix from detector endpoint (97a27a5)
  • sentry/alerts: migrate to span dataset, add triggers to metric workflows (884de66)
  • sentry/alerts: propagate detector lookup failures (2012b6d)
  • sentry/dashboards: add limit:10 to every query (5eb66a3)
  • sentry/dashboards: inject limit:10 on time-series widgets (cba033a)
  • sentry: ignore Safari extension runtime.sendMessage() errors (3b04cc2)
  • sentry: Qodo review-batch (issue projects, cron coverage, region) (c367d4f), closes #​2 #​4 #​1 #​3 #​6
  • sentry: review-batch fixes across provision scripts and specs (a6792e6)
  • test: stop integration test hook and case timeouts (71dfe19)
  • web,sentry: handle authClient.getSession() network errors in workspace settings (08059ba)
  • web,sentry: ignore Facebook in-app browser postMessage errors (37d13fa)
  • web,sentry: reduce noise from auth fetch errors and validate API URL (f59194e)
  • web,sentry: remove unnecessary Sentry capture for auth fetch errors (92693ab)
  • web: handle shiki initializer rejection in comment editor (7a7120e)
  • web: prevent Shiki highlighter crash on dynamic module load failure (f48f4a4)
  • web: track session-fetch failure and skip setActive fallback (6d8d2a6)
Features
  • api: drop workspace identifiers from Sentry integration breadcrumbs (92f67ad)
  • design: replace Cal Sans and Paper Mono with Geist (017efe2)
  • provision Sentry alert rules from sentry/alerts.json (eb00753)
  • provision Sentry dashboards from sentry/dashboards.json (2d91232)
  • scripts: update existing alerts instead of skipping (7690073)
  • web: emit source maps, switch to captureReactException, mount a safe root crash fallback (01004a3)

2.19.1 (2026-08-15)

Bug Fixes

v2.18.0

Compare Source

Full Changelog: https://github.com/usekaneo/kaneo/compare/v2.17.6...v2.18.0

v2.17.6

Compare Source

Bug Fixes
  • web: restore the backdrop behind settings modals (71e429e)
Features
  • account: change avatar and delete account (384eb00)

2.17.6 (2026-08-11)

Bug Fixes
  • planka-import: explain unmatched assignees, keep dependencies, attribute comments (15f6868)

2.17.5 (2026-08-11)

Bug Fixes
  • billing: send one trial reminder per owner, not per workspace (ae2e579)

2.17.4 (2026-08-11)

Bug Fixes
  • billing: throttle trial reminders so they cannot exhaust the quota (c4150a8)

2.17.3 (2026-08-11)

Bug Fixes
  • planka-import: default to the real Kaneo Cloud host (3863eb6)
Features
  • billing: email trial reminders before and after expiry (0e481a9)

2.17.2 (2026-08-11)

Bug Fixes
  • auth: resolve the client IP behind multiple proxy hops (9e8a448)
  • billing: grant the trial once per owner, not per workspace (14adb9d)
  • use internal URL for MCP tool requests (#​1556) (7d9d9d2)
Features
  • planka-import: add PLANKA to Kaneo migration CLI (5c91feb)
  • planka-import: authenticate with a PLANKA API key (ff5e3fc)
  • site: add PLANKA comparison page (579a975)

2.17.1 (2026-08-10)

Bug Fixes

v2.17.5

Compare Source

Bug Fixes
  • web: restore the backdrop behind settings modals (71e429e)
Features
  • account: change avatar and delete account (384eb00)

2.17.6 (2026-08-11)

Bug Fixes
  • planka-import: explain unmatched assignees, keep dependencies, attribute comments (15f6868)

2.17.5 (2026-08-11)

Bug Fixes
  • billing: send one trial reminder per owner, not per workspace (ae2e579)

2.17.4 (2026-08-11)

Bug Fixes
  • billing: throttle trial reminders so they cannot exhaust the quota (c4150a8)

2.17.3 (2026-08-11)

Bug Fixes
  • planka-import: default to the real Kaneo Cloud host (3863eb6)
Features
  • billing: email trial reminders before and after expiry (0e481a9)

2.17.2 (2026-08-11)

Bug Fixes
  • auth: resolve the client IP behind multiple proxy hops (9e8a448)
  • billing: grant the trial once per owner, not per workspace (14adb9d)
  • use internal URL for MCP tool requests (#​1556) (7d9d9d2)
Features
  • planka-import: add PLANKA to Kaneo migration CLI (5c91feb)
  • planka-import: authenticate with a PLANKA API key (ff5e3fc)
  • site: add PLANKA comparison page (579a975)

2.17.1 (2026-08-10)

Bug Fixes

v2.17.4

Compare Source

Bug Fixes
  • web: restore the backdrop behind settings modals (71e429e)
Features
  • account: change avatar and delete account (384eb00)

2.17.6 (2026-08-11)

Bug Fixes
  • planka-import: explain unmatched assignees, keep dependencies, attribute comments (15f6868)

2.17.5 (2026-08-11)

Bug Fixes
  • billing: send one trial reminder per owner, not per workspace (ae2e579)

2.17.4 (2026-08-11)

Bug Fixes
  • billing: throttle trial reminders so they cannot exhaust the quota (c4150a8)

2.17.3 (2026-08-11)

Bug Fixes
  • planka-import: default to the real Kaneo Cloud host (3863eb6)
Features
  • billing: email trial reminders before and after expiry (0e481a9)

2.17.2 (2026-08-11)

Bug Fixes
  • auth: resolve the client IP behind multiple proxy hops (9e8a448)
  • billing: grant the trial once per owner, not per workspace (14adb9d)
  • use internal URL for MCP tool requests (#​1556) (7d9d9d2)
Features
  • planka-import: add PLANKA to Kaneo migration CLI (5c91feb)
  • planka-import: authenticate with a PLANKA API key (ff5e3fc)
  • site: add PLANKA comparison page (579a975)

2.17.1 (2026-08-10)

Bug Fixes

v2.17.3

Compare Source

Bug Fixes
  • web: restore the backdrop behind settings modals (71e429e)
Features
  • account: change avatar and delete account (384eb00)

2.17.6 (2026-08-11)

Bug Fixes
  • planka-import: explain unmatched assignees, keep dependencies, attribute comments (15f6868)

2.17.5 (2026-08-11)

Bug Fixes
  • billing: send one trial reminder per owner, not per workspace (ae2e579)

2.17.4 (2026-08-11)

Bug Fixes
  • billing: throttle trial reminders so they cannot exhaust the quota (c4150a8)

2.17.3 (2026-08-11)

Bug Fixes
  • planka-import: default to the real Kaneo Cloud host (3863eb6)
Features
  • billing: email trial reminders before and after expiry (0e481a9)

2.17.2 (2026-08-11)

Bug Fixes
  • auth: resolve the client IP behind multiple proxy hops (9e8a448)
  • billing: grant the trial once per owner, not per workspace (14adb9d)
  • use internal URL for MCP tool requests (#​1556) (7d9d9d2)
Features
  • planka-import: add PLANKA to Kaneo migration CLI (5c91feb)
  • planka-import: authenticate with a PLANKA API key (ff5e3fc)
  • site: add PLANKA comparison page (579a975)

2.17.1 (2026-08-10)

Bug Fixes

v2.17.2

Compare Source

Bug Fixes
  • web: restore the backdrop behind settings modals (71e429e)
Features
  • account: change avatar and delete account (384eb00)

2.17.6 (2026-08-11)

Bug Fixes
  • planka-import: explain unmatched assignees, keep dependencies, attribute comments (15f6868)

2.17.5 (2026-08-11)

Bug Fixes
  • billing: send one trial reminder per owner, not per workspace (ae2e579)

2.17.4 (2026-08-11)

Bug Fixes
  • billing: throttle trial reminders so they cannot exhaust the quota (c4150a8)

2.17.3 (2026-08-11)

Bug Fixes
  • planka-import: default to the real Kaneo Cloud host (3863eb6)
Features
  • billing: email trial reminders before and after expiry (0e481a9)

2.17.2 (2026-08-11)

Bug Fixes
  • auth: resolve the client IP behind multiple proxy hops (9e8a448)
  • billing: grant the trial once per owner, not per workspace (14adb9d)
  • use internal URL for MCP tool requests (#​1556) (7d9d9d2)
Features
  • planka-import: add PLANKA to Kaneo migration CLI (5c91feb)
  • planka-import: authenticate with a PLANKA API key (ff5e3fc)
  • site: add PLANKA comparison page (579a975)

2.17.1 (2026-08-10)

Bug Fixes

v2.17.1

Compare Source

Bug Fixes
  • web: restore the backdrop behind settings modals (71e429e)
Features
  • account: change avatar and delete account (384eb00)

2.17.6 (2026-08-11)

Bug Fixes
  • planka-import: explain unmatched assignees, keep dependencies, attribute comments (15f6868)

2.17.5 (2026-08-11)

Bug Fixes
  • billing: send one trial reminder per owner, not per workspace (ae2e579)

2.17.4 (2026-08-11)

Bug Fixes
  • billing: throttle trial reminders so they cannot exhaust the quota (c4150a8)

2.17.3 (2026-08-11)

Bug Fixes
  • planka-import: default to the real Kaneo Cloud host (3863eb6)
Features
  • billing: email trial reminders before and after expiry (0e481a9)

2.17.2 (2026-08-11)

Bug Fixes
  • auth: resolve the client IP behind multiple proxy hops (9e8a448)
  • billing: grant the trial once per owner, not per workspace (14adb9d)
  • use internal URL for MCP tool requests (#​1556) (7d9d9d2)
Features
  • planka-import: add PLANKA to Kaneo migration CLI (5c91feb)
  • planka-import: authenticate with a PLANKA API key (ff5e3fc)
  • site: add PLANKA comparison page (579a975)

2.17.1 (2026-08-10)

Bug Fixes

v2.17.0

Compare Source

Bug Fixes
  • web: restore the backdrop behind settings modals (71e429e)
Features
  • account: change avatar and delete account (384eb00)

2.17.6 (2026-08-11)

Bug Fixes
  • planka-import: explain unmatched assignees, keep dependencies, attribute comments (15f6868)

2.17.5 (2026-08-11)

Bug Fixes
  • billing: send one trial reminder per owner, not per workspace (ae2e579)

2.17.4 (2026-08-11)

Bug Fixes
  • billing: throttle trial reminders so they cannot exhaust the quota (c4150a8)

2.17.3 (2026-08-11)

Bug Fixes
  • planka-import: default to the real Kaneo Cloud host (3863eb6)
Features
  • billing: email trial reminders before and after expiry (0e481a9)

2.17.2 (2026-08-11)

Bug Fixes
  • auth: resolve the client IP behind multiple proxy hops (9e8a448)
  • billing: grant the trial once per owner, not per workspace (14adb9d)
  • use internal URL for MCP tool requests (#​1556) (7d9d9d2)
Features
  • planka-import: add PLANKA to Kaneo migration CLI (5c91feb)
  • planka-import: authenticate with a PLANKA API key (ff5e3fc)
  • site: add PLANKA comparison page (579a975)

2.17.1 (2026-08-10)

Bug Fixes

v2.16.4

Compare Source

Bug Fixes
  • mcp: guard media type and share the tool registrar (1167ec6)
  • web: omit unassigned userId when creating tasks (#​1552) (b69fae3)
Features
  • mcp: expose members, search, columns, time and activity tools (37b2fc3)
  • mcp: support stateless 2026 protocol (#​1540) (7fe3610)

2.16.4 (2026-08-10)

Bug Fixes
  • auth: let invited users sign up with OAuth in invite-only mode (737ec6e), closes #​1551

2.16.3 (2026-08-10)

Bug Fixes
  • task: treat blank assignee id as unassigned on task creation (f5b3717), closes #​1543

2.16.2 (2026-08-10)

Bug Fixes
  • ci: failure in ci after fix (4a24d74)
  • gitea-integration: handle invalid JSON from non-Gitea URLs (097aedd)
  • gitea-integration: structured failure response and test coverage (49eac38)
  • gitea: classify /user 404 as not-a-gitea-instance (364f5e3)
  • pr: responding to AI pr reviews (cb2f333)
  • task: validate assignee existence on task creation (b0133ee)
  • web: avoid nested buttons in alert dialog footers (16481e3)
  • web: handle unhandled promise rejection from authClient.getSession() (494f1fb)
  • web: preserve full location in auth redirect (a277274)
  • web: prevent TypeError when relatedTarget is not an Element (51131c1)

2.16.1 (2026-08-09)

Bug Fixes
  • address placeholder cleanup reviews (dee61c1)
  • strip quoted runtime placeholders (f983f34)

v2.16.3

Compare Source

Bug Fixes
  • mcp: guard media type and share the tool registrar (1167ec6)
  • web: omit unassigned userId when creating tasks (#​1552) (b69fae3)
Features
  • mcp: expose members, search, columns, time and activity tools (37b2fc3)
  • mcp: support stateless 2026 protocol (#​1540) (7fe3610)

2.16.4 (2026-08-10)

Bug Fixes
  • auth: let invited users sign up with OAuth in invite-only mode (737ec6e), closes #​1551

2.16.3 (2026-08-10)

Bug Fixes
  • task: treat blank assignee id as unassigned on task creation (f5b3717), closes #​1543

2.16.2 (2026-08-10)

Bug Fixes
  • ci: failure in ci after fix (4a24d74)
  • gitea-integration: handle invalid JSON from non-Gitea URLs (097aedd)
  • gitea-integration: structured failure response and test coverage (49eac38)
  • gitea: classify /user 404 as not-a-gitea-instance (364f5e3)
  • pr: responding to AI pr reviews (cb2f333)
  • task: validate assignee existence on task creation (b0133ee)
  • web: avoid nested buttons in alert dialog footers (16481e3)
  • web: handle unhandled promise rejection from authClient.getSession() (494f1fb)
  • web: preserve full location in auth redirect (a277274)
  • web: prevent TypeError when relatedTarget is not an Element (51131c1)

2.16.1 (2026-08-09)

Bug Fixes
  • address placeholder cleanup reviews (dee61c1)
  • strip quoted runtime placeholders (f983f34)

v2.16.2

Compare Source

Bug Fixes
  • mcp: guard media type and share the tool registrar (1167ec6)
  • web: omit unassigned userId when creating tasks (#​1552) (b69fae3)
Features
  • mcp: expose members, search, columns, time and activity tools (37b2fc3)
  • mcp: support stateless 2026 protocol (#​1540) (7fe3610)

2.16.4 (2026-08-10)

Bug Fixes
  • auth: let invited users sign up with OAuth in invite-only mode (737ec6e), closes #​1551

2.16.3 (2026-08-10)

Bug Fixes
  • task: treat blank assignee id as unassigned on task creation (f5b3717), closes #​1543

2.16.2 (2026-08-10)

Bug Fixes
  • ci: failure in ci after fix (4a24d74)
  • gitea-integration: handle invalid JSON from non-Gitea URLs (097aedd)
  • gitea-integration: structured failure response and test coverage (49eac38)
  • gitea: classify /user 404 as not-a-gitea-instance (364f5e3)
  • pr: responding to AI pr reviews (cb2f333)
  • task: validate assignee existence on task creation (b0133ee)
  • web: avoid nested buttons in alert dialog footers (16481e3)
  • web: handle unhandled promise rejection from authClient.getSession() (494f1fb)
  • web: preserve full location in auth redirect (a277274)
  • web: prevent TypeError when relatedTarget is not an Element (51131c1)

2.16.1 (2026-08-09)

Bug Fixes
  • address placeholder cleanup reviews (dee61c1)
  • strip quoted runtime placeholders (f983f34)

v2.16.1

Compare Source

Bug Fixes
  • mcp: guard media type and share the tool registrar (1167ec6)
  • web: omit unassigned userId when creating tasks (#​1552) (b69fae3)
Features
  • mcp: expose members, search, columns, time and activity tools (37b2fc3)
  • mcp: support stateless 2026 protocol (#​1540) (7fe3610)

2.16.4 (2026-08-10)

Bug Fixes
  • auth: let invited users sign up with OAuth in invite-only mode (737ec6e), closes #​1551

2.16.3 (2026-08-10)

Bug Fixes
  • task: treat blank assignee id as unassigned on task creation (f5b3717), closes #​1543

2.16.2 (2026-08-10)

Bug Fixes
  • ci: failure in ci after fix (4a24d74)
  • gitea-integration: handle invalid JSON from non-Gitea URLs (097aedd)
  • gitea-integration: structured failure response and test coverage (49eac38)
  • gitea: classify /user 404 as not-a-gitea-instance (364f5e3)
  • pr: responding to AI pr reviews (cb2f333)
  • task: validate assignee existence on task creation (b0133ee)
  • web: avoid nested buttons in alert dialog footers (16481e3)
  • web: handle unhandled promise rejection from authClient.getSession() (494f1fb)
  • web: preserve full location in auth redirect (a277274)
  • web: prevent TypeError when relatedTarget is not an Element (51131c1)

2.16.1 (2026-08-09)

Bug Fixes
  • address placeholder cleanup reviews (dee61c1)
  • strip quoted runtime placeholders (f983f34)

v2.16.0

Compare Source

Bug Fixes
  • mcp: guard media type and share the tool registrar (1167ec6)
  • web: omit unassigned userId when creating tasks (#​1552) (b69fae3)
Features
  • mcp: expose members, search, columns, time and activity tools (37b2fc3)
  • mcp: support stateless 2026 protocol (#​1540) (7fe3610)

2.16.4 (2026-08-10)

Bug Fixes
  • auth: let invited users sign up with OAuth in invite-only mode (737ec6e), closes #​1551

2.16.3 (2026-08-10)

Bug Fixes
  • task: treat blank assignee id as unassigned on task creation (f5b3717), closes #​1543

2.16.2 (2026-08-10)

Bug Fixes
  • ci: failure in ci after fix (4a24d74)
  • gitea-integration: handle invalid JSON from non-Gitea URLs (097aedd)
  • gitea-integration: structured failure response and test coverage (49eac38)
  • gitea: classify /user 404 as not-a-gitea-instance (364f5e3)
  • pr: responding to AI pr reviews (cb2f333)
  • task: validate assignee existence on task creation (b0133ee)
  • web: avoid nested buttons in alert dialog footers (16481e3)
  • web: handle unhandled promise rejection from authClient.getSession() (494f1fb)
  • web: preserve full location in auth redirect (a277274)
  • web: prevent TypeError when relatedTarget is not an Element (51131c1)

2.16.1 (2026-08-09)

Bug Fixes
  • address placeholder cleanup reviews (dee61c1)
  • strip quoted runtime placeholders (f983f34)

v2.15.0

Compare Source

Full Changelog: https://github.com/usekaneo/kaneo/compare/v2.14.0...v2.15.0

v2.14.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/usekaneo/kaneo/compare/v2.13.2...v2.14.0

v2.13.2

Compare Source

Bug Fixes
  • helm: set postgresql Deployment update strategy to Recreate (01511cd)
  • i18n: complete translations for all locales (bea10b2)
  • i18n: use pt-BR copy for workspace invitation emails (804817d)
Features
  • i18n: add Brazilian Portuguese (pt-BR) locale (fb656d4)

2.13.2 (2026-08-07)

Features
  • api: tag Sentry events with the app release (33270e3)

2.13.1 (2026-08-07)

Bug Fixes
  • deps: drop the next override so the site really gets next 16 (a3ee7ad)
  • deps: patch 16 disclosed advisories through the overrides (39fc9fc)
  • deps: sync lockfile with the babel override (c5e74f0)
  • mcp: cap pending OAuth authorization requests (3da2ac5)
  • mcp: correct the docs URL in package metadata (c4427a6)
  • web: correct link to the API reference in the nav menu (e8f8f8a)
  • web: stop warning about due dates on completed tasks (3f3dd13), closes #​1465
  • web: use Shiki's JavaScript regex engine to avoid WebAssembly (09fb5d4)
Features
  • add web Sentry SDK with session replay and opt-in API tracing (284d78b)

v2.13.1

Compare Source

Bug Fixes
  • helm: set postgresql Deployment update strategy to Recreate (01511cd)
  • i18n: complete translations for all locales (bea10b2)
  • i18n: use pt-BR copy for workspace invitation emails (804817d)
Features
  • i18n: add Brazilian Portuguese (pt-BR) locale (fb656d4)

2.13.2 (2026-08-07)

Features
  • api: tag Sentry events with the app release (33270e3)

2.13.1 (2026-08-07)

Bug Fixes
  • deps: drop the next override so the site really gets next 16 (a3ee7ad)
  • deps: patch 16 disclosed advisories through the overrides (39fc9fc)
  • deps: sync lockfile with the babel override (c5e74f0)
  • mcp: cap pending OAuth authorization requests (3da2ac5)
  • mcp: correct the docs URL in package metadata (c4427a6)
  • web: correct link to the API reference in the nav menu (e8f8f8a)
  • web: stop warning about due dates on completed tasks (3f3dd13), closes #​1465
  • web: use Shiki's JavaScript regex engine to avoid WebAssembly (09fb5d4)
Features
  • add web Sentry SDK with session replay and opt-in API tracing (284d78b)

v2.13.0

Compare Source

Bug Fixes
  • helm: set postgresql Deployment update strategy to Recreate (01511cd)
  • i18n: complete translations for all locales (bea10b2)
  • i18n: use pt-BR copy for workspace invitation emails (804817d)
Features
  • i18n: add Brazilian Portuguese (pt-BR) locale (fb656d4)

2.13.2 (2026-08-07)

Features
  • api: tag Sentry events with the app release (33270e3)

2.13.1 (2026-08-07)

Bug Fixes
  • deps: drop the next override so the site really gets next 16 (a3ee7ad)
  • deps: patch 16 disclosed advisories through the overrides (39fc9fc)
  • deps: sync lockfile with the babel override (c5e74f0)
  • mcp: cap pending OAuth authorization requests (3da2ac5)
  • mcp: correct the docs URL in package metadata (c4427a6)
  • web: correct link to the API reference in the nav menu (e8f8f8a)
  • web: stop warning about due dates on completed tasks (3f3dd13), closes #​1465
  • web: use Shiki's JavaScript regex engine to avoid WebAssembly (09fb5d4)
Features
  • add web Sentry SDK with session replay and opt-in API tracing (284d78b)

v2.12.2

Compare Source

Bug Fixes
  • api: block SSRF through the Gitea integration endpoints (26ae20f)
  • api: reject traversal in finalized task image keys (704daeb)
  • api: stop reflecting arbitrary origins in production (99571c9)
  • api: stop returning integration secrets from the external-link route (3ac5aa9)
  • gitea: record the external link before publishing task.created (2d5447a), closes #​1393
  • github: comment the task link on issues created from Kaneo (dc31480), closes #​1406
  • mcp: bind streamable sessions to the user that created them (86ee7fc)
  • mcp: store OAuth state in Postgres so multiple replicas work (18ad8f5), closes #​1484
  • web: reject non-http URLs in attachment and issue-link nodes (700da1b)
  • web: show language names without region in the locale picker (5540043)
Features
  • web: pick a project in the create-task modal when none is in scope (7d20a3f), closes #​1418
Performance Improvements

2.12.2 (2026-08-04)

Bug Fixes
  • add date validation for task create/update to prevent Invalid Date in DB (e968adf)
  • address code review feedback for date validation (1236ab9)
  • api: coderabbit nitpick (019ac9e)
  • api: coderabbit/qodo reviews (22f6f8f)
  • api: github install and label detachment bug (6cb3748)
  • api: resolve bugs in api tests (f62789c)
  • api: scope task aggregates by workspace join instead of project ID list (ffb6bc6)
  • api: stop embedding task rows in the project list response (7771d46), closes #​1037
  • apply triage follow-ups for #​1461, #​1464 and #​1470 (a41e38d)
  • auth: let invited users without an account register (1e55596), closes #​1474
  • ci: registry description limit and idempotent MCP Registry publish (1dea775)
  • complete all 1598 translation keys for Hindi locale (134317e)
  • CVE-2026-69192 security vulnerability (d3aef28)
  • deps: align the better-auth override with 1.6.25 (7db4dbb)
  • deps: bump next to 15.5.21 to patch 8 disclosed advisories (1eb3e51)
  • deps: raise next override floor to 15.5.21 so the bump actually resolves (702483d)
  • email: fix Biome formatting in password-reset template (aeb23d9)
  • email: stop forcing SMTP auth when no credentials are set (e048fb4), closes #​1419
  • enforce bulk task permissions (79872a3)
  • fail closed for mixed-workspace bulk tasks (67827c4)
  • i18n: translate invite-flow strings and language labels across locales (4a82dd8)
  • include labels in task export to prevent data loss on round-trip (6545527)
  • keep planned subtasks in backlog (1f20eb9)
  • move overrides to workspace config (0c86e83)
  • persist task title activity atomically (6a0210c)
  • preserve bulk task validation responses (a2a7672)
  • prevent task number gaps during partial import failures (dc45f26)
  • project: allow one-character names and keys (5c8390e)
  • resolve all TypeScript errors across api and web (b49fb25)
  • resolve workspace access from the id the handler acts on (d0570ee)
  • serve public-project assets to anonymous callers (a483bd4)
  • tests: update label test (92f5aa7)
  • translate remaining externalLinks.issue and branch keys to Hindi (82f8883)
  • wait for subtask status columns (3a61705)
  • web: guard nullable task identifiers (1c7366b)
  • web: restore ResizeObserver stub and correct invite-flow comment (e473a41)
  • web: search tasks by issue identifier (4c4ccf1)
Features
  • add Hindi (hi-IN) locale translation (f837beb)
  • add zh-CN locale (8c210b9)
  • i18n: add Italian (it-IT) translation (9d7d327)
  • i18n: add Vietnamese (vi-VN) locale (c698c6c)
  • mcp: publish to the official MCP Registry (a34711e)
  • web: add invitation link and clipboard helpers (8b7d01e)
  • web: surface the workspace invitation link in the UI (e81c1c7)
Performance Improvements
  • web: avoid per-task kanban metadata requests (990d70e)

2.12.1 (2026-07-30)

Features
  • site: add Jira, Trello, and Linear comparison pages for SEO (f282e1f)
  • switch Cloud pricing to USD and replace Product Hunt button with Pricing (3db23c9)

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [kaneo](https://github.com/usekaneo/kaneo) | minor | `v2.12.1` → `v2.20.0` | --- ### Release Notes <details> <summary>usekaneo/kaneo (kaneo)</summary> ### [`v2.20.0`](https://github.com/usekaneo/kaneo/releases/tag/v2.20.0) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.19.1...v2.20.0) #### What's Changed - chore(ci): pass Sentry auth token via BuildKit secret, not image env by [@&#8203;randoneering](https://github.com/randoneering) in [#&#8203;1603](https://github.com/usekaneo/kaneo/pull/1603) - feat(api,web): runtime Sentry instrumentation by [@&#8203;randoneering](https://github.com/randoneering) in [#&#8203;1604](https://github.com/usekaneo/kaneo/pull/1604) - feat(web): source maps + root error boundary for Sentry by [@&#8203;randoneering](https://github.com/randoneering) in [#&#8203;1602](https://github.com/usekaneo/kaneo/pull/1602) - feat(sentry): provision alerts and dashboards as code by [@&#8203;randoneering](https://github.com/randoneering) in [#&#8203;1610](https://github.com/usekaneo/kaneo/pull/1610) - fix(web,sentry): remove unnecessary Sentry capture for auth fetch errors by [@&#8203;sentry](https://github.com/sentry)\[bot] in [#&#8203;1615](https://github.com/usekaneo/kaneo/pull/1615) - fix(sentry): ignore Safari extension runtime.sendMessage() errors by [@&#8203;sentry](https://github.com/sentry)\[bot] in [#&#8203;1616](https://github.com/usekaneo/kaneo/pull/1616) - fix(web,sentry): ignore Facebook in-app browser postMessage errors by [@&#8203;sentry](https://github.com/sentry)\[bot] in [#&#8203;1617](https://github.com/usekaneo/kaneo/pull/1617) - fix(web,sentry): reduce noise from auth fetch errors and validate API URL by [@&#8203;sentry](https://github.com/sentry)\[bot] in [#&#8203;1618](https://github.com/usekaneo/kaneo/pull/1618) - fix(test): stop integration test hook and case timeouts by [@&#8203;randoneering](https://github.com/randoneering) in [#&#8203;1619](https://github.com/usekaneo/kaneo/pull/1619) - fix(web): prevent Shiki highlighter crash on dynamic module load failure by [@&#8203;sentry](https://github.com/sentry)\[bot] in [#&#8203;1622](https://github.com/usekaneo/kaneo/pull/1622) - fix(web,sentry): handle authClient.getSession() network errors in workspace settings by [@&#8203;sentry](https://github.com/sentry)\[bot] in [#&#8203;1621](https://github.com/usekaneo/kaneo/pull/1621) **Full Changelog**: <https://github.com/usekaneo/kaneo/compare/v2.19.1...v2.20.0> ### [`v2.19.1`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2200-2026-08-19) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.19.0...v2.19.1) ##### Bug Fixes - apply CodeRabbit auto-fixes ([b25a644](https://github.com/usekaneo/kaneo/commit/b25a64486c625c4a5e57b6a8eb925422ddf08283)) - apply CodeRabbit auto-fixes ([6c088da](https://github.com/usekaneo/kaneo/commit/6c088dad2cdf3378e029948586731ad658662fee)) - **ci:** failing test ([46c5f9b](https://github.com/usekaneo/kaneo/commit/46c5f9bff043a0fa59d0f5332eba90f8216e6b6b)) - **ci:** failing test and code review recommendations ([1de8146](https://github.com/usekaneo/kaneo/commit/1de8146306266b0149daae1c4fec6c290a0000c8)) - **review:** qodo/coderabbit suggestions ([270bc04](https://github.com/usekaneo/kaneo/commit/270bc047615716d61c0e9cfe9ef562ee91c38dfe)) - **review:** qodo/coderabbit suggestions ([9656036](https://github.com/usekaneo/kaneo/commit/965603628284239f77a0d23b9123fe5f3680ed9f)) - **review:** qodo/coderabbit suggestions ([089d2a2](https://github.com/usekaneo/kaneo/commit/089d2a201ffdb2936db48b1b49dd0c1b6cb29e0a)) - **scripts:** inject datasetSource + conditions fields Sentry requires ([8f662ba](https://github.com/usekaneo/kaneo/commit/8f662bafbf44f7ac4b41dc70e0e0da31a07d3fac)) - **scripts:** surface Sentry API errors in provision-sentry-alerts ([3f55456](https://github.com/usekaneo/kaneo/commit/3f55456b1837238a50c43cdf9d8b85ff162af082)) - **seer:** removed throw ([2a023c4](https://github.com/usekaneo/kaneo/commit/2a023c456a5fc345514a7e7033021e46f0d06443)) - **sentry/alerts:** add missing API fields and URL-encode GET params ([e43550f](https://github.com/usekaneo/kaneo/commit/e43550ffff0e051c9284ad59ed3428e5634c0f93)) - **sentry/alerts:** add resolution condition + drop tokenized query params ([45c4ab2](https://github.com/usekaneo/kaneo/commit/45c4ab25e55f5e710f22ca7f2ff3216ac8df750a)) - **sentry/alerts:** declare cron SLUGS as an array ([a922c91](https://github.com/usekaneo/kaneo/commit/a922c91e3e7276695e127a1f60cafd08adb7c0e2)) - **sentry/alerts:** drop /projects/ prefix from detector endpoint ([97a27a5](https://github.com/usekaneo/kaneo/commit/97a27a53098db1b66b038064ae3039872a9284cf)) - **sentry/alerts:** migrate to span dataset, add triggers to metric workflows ([884de66](https://github.com/usekaneo/kaneo/commit/884de66cae2c10012f3130be3a40288ea37cd8a4)) - **sentry/alerts:** propagate detector lookup failures ([2012b6d](https://github.com/usekaneo/kaneo/commit/2012b6d7b14c2e2a077ca9afb6f0700cd38e8441)) - **sentry/dashboards:** add limit:10 to every query ([5eb66a3](https://github.com/usekaneo/kaneo/commit/5eb66a3c229f1d607134481ed339a00f8e9a8b17)) - **sentry/dashboards:** inject limit:10 on time-series widgets ([cba033a](https://github.com/usekaneo/kaneo/commit/cba033a4a053c539aed2f35e161ce9a7d26f6e56)) - **sentry:** ignore Safari extension runtime.sendMessage() errors ([3b04cc2](https://github.com/usekaneo/kaneo/commit/3b04cc2f8b937e9f90d3307dcfef5575ede88b55)) - **sentry:** Qodo review-batch (issue projects, cron coverage, region) ([c367d4f](https://github.com/usekaneo/kaneo/commit/c367d4f685b7ee8a5b528af1d38ee8c832786009)), closes [#&#8203;2](https://github.com/usekaneo/kaneo/issues/2) [#&#8203;4](https://github.com/usekaneo/kaneo/issues/4) [#&#8203;1](https://github.com/usekaneo/kaneo/issues/1) [#&#8203;3](https://github.com/usekaneo/kaneo/issues/3) [#&#8203;6](https://github.com/usekaneo/kaneo/issues/6) - **sentry:** review-batch fixes across provision scripts and specs ([a6792e6](https://github.com/usekaneo/kaneo/commit/a6792e6b1b4f4884abdf16815211e7702f171b5b)) - **test:** stop integration test hook and case timeouts ([71dfe19](https://github.com/usekaneo/kaneo/commit/71dfe19669ee726927f87d791752e2968464f526)) - **web,sentry:** handle authClient.getSession() network errors in workspace settings ([08059ba](https://github.com/usekaneo/kaneo/commit/08059ba7002afd0ce5225b9d5ee8d96612ca843a)) - **web,sentry:** ignore Facebook in-app browser postMessage errors ([37d13fa](https://github.com/usekaneo/kaneo/commit/37d13face441c57511c6a090335419fdb79e4697)) - **web,sentry:** reduce noise from auth fetch errors and validate API URL ([f59194e](https://github.com/usekaneo/kaneo/commit/f59194e3623cc8f3ebd6e5379a0e21533b83bb40)) - **web,sentry:** remove unnecessary Sentry capture for auth fetch errors ([92693ab](https://github.com/usekaneo/kaneo/commit/92693abfcb834670955e7c83e510edac203d07b5)) - **web:** handle shiki initializer rejection in comment editor ([7a7120e](https://github.com/usekaneo/kaneo/commit/7a7120ed37d9ddd062926b92e061b7be389ad519)) - **web:** prevent Shiki highlighter crash on dynamic module load failure ([f48f4a4](https://github.com/usekaneo/kaneo/commit/f48f4a478170a0dc552c5b8c51255113cd8c028f)) - **web:** track session-fetch failure and skip setActive fallback ([6d8d2a6](https://github.com/usekaneo/kaneo/commit/6d8d2a6ae76852bf4d1cceb77a6fec6b097e295b)) ##### Features - **api:** drop workspace identifiers from Sentry integration breadcrumbs ([92f67ad](https://github.com/usekaneo/kaneo/commit/92f67ad846c177ddb82e828e3f82bf29717b3435)) - **design:** replace Cal Sans and Paper Mono with Geist ([017efe2](https://github.com/usekaneo/kaneo/commit/017efe215c1dad8a10053b82a5f902d0e30bd5ce)) - provision Sentry alert rules from sentry/alerts.json ([eb00753](https://github.com/usekaneo/kaneo/commit/eb00753888d537a5386aca8a9c18cfe5c214a553)) - provision Sentry dashboards from sentry/dashboards.json ([2d91232](https://github.com/usekaneo/kaneo/commit/2d912320365c058f72841aac28c1c22eb55465ef)) - **scripts:** update existing alerts instead of skipping ([7690073](https://github.com/usekaneo/kaneo/commit/7690073f03e2a7fec8f5258340b32cded0a9ab56)) - **web:** emit source maps, switch to captureReactException, mount a safe root crash fallback ([01004a3](https://github.com/usekaneo/kaneo/commit/01004a33d559a430fb58e86a1fc6dc80d8cb4c6a)) #### [2.19.1](https://github.com/usekaneo/kaneo/compare/v2.19.0...v2.19.1) (2026-08-15) ##### Bug Fixes - **web:** save a description to the task it was typed in ([#&#8203;1600](https://github.com/usekaneo/kaneo/issues/1600)) ([b11dc07](https://github.com/usekaneo/kaneo/commit/b11dc07f15b7142b67196af8db4d8ca035e7055a)) ### [`v2.19.0`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2200-2026-08-19) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.18.0...v2.19.0) ##### Bug Fixes - apply CodeRabbit auto-fixes ([b25a644](https://github.com/usekaneo/kaneo/commit/b25a64486c625c4a5e57b6a8eb925422ddf08283)) - apply CodeRabbit auto-fixes ([6c088da](https://github.com/usekaneo/kaneo/commit/6c088dad2cdf3378e029948586731ad658662fee)) - **ci:** failing test ([46c5f9b](https://github.com/usekaneo/kaneo/commit/46c5f9bff043a0fa59d0f5332eba90f8216e6b6b)) - **ci:** failing test and code review recommendations ([1de8146](https://github.com/usekaneo/kaneo/commit/1de8146306266b0149daae1c4fec6c290a0000c8)) - **review:** qodo/coderabbit suggestions ([270bc04](https://github.com/usekaneo/kaneo/commit/270bc047615716d61c0e9cfe9ef562ee91c38dfe)) - **review:** qodo/coderabbit suggestions ([9656036](https://github.com/usekaneo/kaneo/commit/965603628284239f77a0d23b9123fe5f3680ed9f)) - **review:** qodo/coderabbit suggestions ([089d2a2](https://github.com/usekaneo/kaneo/commit/089d2a201ffdb2936db48b1b49dd0c1b6cb29e0a)) - **scripts:** inject datasetSource + conditions fields Sentry requires ([8f662ba](https://github.com/usekaneo/kaneo/commit/8f662bafbf44f7ac4b41dc70e0e0da31a07d3fac)) - **scripts:** surface Sentry API errors in provision-sentry-alerts ([3f55456](https://github.com/usekaneo/kaneo/commit/3f55456b1837238a50c43cdf9d8b85ff162af082)) - **seer:** removed throw ([2a023c4](https://github.com/usekaneo/kaneo/commit/2a023c456a5fc345514a7e7033021e46f0d06443)) - **sentry/alerts:** add missing API fields and URL-encode GET params ([e43550f](https://github.com/usekaneo/kaneo/commit/e43550ffff0e051c9284ad59ed3428e5634c0f93)) - **sentry/alerts:** add resolution condition + drop tokenized query params ([45c4ab2](https://github.com/usekaneo/kaneo/commit/45c4ab25e55f5e710f22ca7f2ff3216ac8df750a)) - **sentry/alerts:** declare cron SLUGS as an array ([a922c91](https://github.com/usekaneo/kaneo/commit/a922c91e3e7276695e127a1f60cafd08adb7c0e2)) - **sentry/alerts:** drop /projects/ prefix from detector endpoint ([97a27a5](https://github.com/usekaneo/kaneo/commit/97a27a53098db1b66b038064ae3039872a9284cf)) - **sentry/alerts:** migrate to span dataset, add triggers to metric workflows ([884de66](https://github.com/usekaneo/kaneo/commit/884de66cae2c10012f3130be3a40288ea37cd8a4)) - **sentry/alerts:** propagate detector lookup failures ([2012b6d](https://github.com/usekaneo/kaneo/commit/2012b6d7b14c2e2a077ca9afb6f0700cd38e8441)) - **sentry/dashboards:** add limit:10 to every query ([5eb66a3](https://github.com/usekaneo/kaneo/commit/5eb66a3c229f1d607134481ed339a00f8e9a8b17)) - **sentry/dashboards:** inject limit:10 on time-series widgets ([cba033a](https://github.com/usekaneo/kaneo/commit/cba033a4a053c539aed2f35e161ce9a7d26f6e56)) - **sentry:** ignore Safari extension runtime.sendMessage() errors ([3b04cc2](https://github.com/usekaneo/kaneo/commit/3b04cc2f8b937e9f90d3307dcfef5575ede88b55)) - **sentry:** Qodo review-batch (issue projects, cron coverage, region) ([c367d4f](https://github.com/usekaneo/kaneo/commit/c367d4f685b7ee8a5b528af1d38ee8c832786009)), closes [#&#8203;2](https://github.com/usekaneo/kaneo/issues/2) [#&#8203;4](https://github.com/usekaneo/kaneo/issues/4) [#&#8203;1](https://github.com/usekaneo/kaneo/issues/1) [#&#8203;3](https://github.com/usekaneo/kaneo/issues/3) [#&#8203;6](https://github.com/usekaneo/kaneo/issues/6) - **sentry:** review-batch fixes across provision scripts and specs ([a6792e6](https://github.com/usekaneo/kaneo/commit/a6792e6b1b4f4884abdf16815211e7702f171b5b)) - **test:** stop integration test hook and case timeouts ([71dfe19](https://github.com/usekaneo/kaneo/commit/71dfe19669ee726927f87d791752e2968464f526)) - **web,sentry:** handle authClient.getSession() network errors in workspace settings ([08059ba](https://github.com/usekaneo/kaneo/commit/08059ba7002afd0ce5225b9d5ee8d96612ca843a)) - **web,sentry:** ignore Facebook in-app browser postMessage errors ([37d13fa](https://github.com/usekaneo/kaneo/commit/37d13face441c57511c6a090335419fdb79e4697)) - **web,sentry:** reduce noise from auth fetch errors and validate API URL ([f59194e](https://github.com/usekaneo/kaneo/commit/f59194e3623cc8f3ebd6e5379a0e21533b83bb40)) - **web,sentry:** remove unnecessary Sentry capture for auth fetch errors ([92693ab](https://github.com/usekaneo/kaneo/commit/92693abfcb834670955e7c83e510edac203d07b5)) - **web:** handle shiki initializer rejection in comment editor ([7a7120e](https://github.com/usekaneo/kaneo/commit/7a7120ed37d9ddd062926b92e061b7be389ad519)) - **web:** prevent Shiki highlighter crash on dynamic module load failure ([f48f4a4](https://github.com/usekaneo/kaneo/commit/f48f4a478170a0dc552c5b8c51255113cd8c028f)) - **web:** track session-fetch failure and skip setActive fallback ([6d8d2a6](https://github.com/usekaneo/kaneo/commit/6d8d2a6ae76852bf4d1cceb77a6fec6b097e295b)) ##### Features - **api:** drop workspace identifiers from Sentry integration breadcrumbs ([92f67ad](https://github.com/usekaneo/kaneo/commit/92f67ad846c177ddb82e828e3f82bf29717b3435)) - **design:** replace Cal Sans and Paper Mono with Geist ([017efe2](https://github.com/usekaneo/kaneo/commit/017efe215c1dad8a10053b82a5f902d0e30bd5ce)) - provision Sentry alert rules from sentry/alerts.json ([eb00753](https://github.com/usekaneo/kaneo/commit/eb00753888d537a5386aca8a9c18cfe5c214a553)) - provision Sentry dashboards from sentry/dashboards.json ([2d91232](https://github.com/usekaneo/kaneo/commit/2d912320365c058f72841aac28c1c22eb55465ef)) - **scripts:** update existing alerts instead of skipping ([7690073](https://github.com/usekaneo/kaneo/commit/7690073f03e2a7fec8f5258340b32cded0a9ab56)) - **web:** emit source maps, switch to captureReactException, mount a safe root crash fallback ([01004a3](https://github.com/usekaneo/kaneo/commit/01004a33d559a430fb58e86a1fc6dc80d8cb4c6a)) #### [2.19.1](https://github.com/usekaneo/kaneo/compare/v2.19.0...v2.19.1) (2026-08-15) ##### Bug Fixes - **web:** save a description to the task it was typed in ([#&#8203;1600](https://github.com/usekaneo/kaneo/issues/1600)) ([b11dc07](https://github.com/usekaneo/kaneo/commit/b11dc07f15b7142b67196af8db4d8ca035e7055a)) ### [`v2.18.0`](https://github.com/usekaneo/kaneo/releases/tag/v2.18.0) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.17.6...v2.18.0) **Full Changelog**: <https://github.com/usekaneo/kaneo/compare/v2.17.6...v2.18.0> ### [`v2.17.6`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2180-2026-08-12) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.17.5...v2.17.6) ##### Bug Fixes - **web:** restore the backdrop behind settings modals ([71e429e](https://github.com/usekaneo/kaneo/commit/71e429e3482e4473508f170018057313b2d658a5)) ##### Features - **account:** change avatar and delete account ([384eb00](https://github.com/usekaneo/kaneo/commit/384eb005c71fe6e9b99875556b370b033cd4d151)) #### [2.17.6](https://github.com/usekaneo/kaneo/compare/v2.17.5...v2.17.6) (2026-08-11) ##### Bug Fixes - **planka-import:** explain unmatched assignees, keep dependencies, attribute comments ([15f6868](https://github.com/usekaneo/kaneo/commit/15f68683620b5fcfbed7970b77210b7cc706f74b)) #### [2.17.5](https://github.com/usekaneo/kaneo/compare/v2.17.4...v2.17.5) (2026-08-11) ##### Bug Fixes - **billing:** send one trial reminder per owner, not per workspace ([ae2e579](https://github.com/usekaneo/kaneo/commit/ae2e57919d4703b4fcb2e4452b2c7b171abedd97)) #### [2.17.4](https://github.com/usekaneo/kaneo/compare/v2.17.3...v2.17.4) (2026-08-11) ##### Bug Fixes - **billing:** throttle trial reminders so they cannot exhaust the quota ([c4150a8](https://github.com/usekaneo/kaneo/commit/c4150a89f826ce5a4f7bbf24346c313b7fd2c5d4)) #### [2.17.3](https://github.com/usekaneo/kaneo/compare/v2.17.2...v2.17.3) (2026-08-11) ##### Bug Fixes - **planka-import:** default to the real Kaneo Cloud host ([3863eb6](https://github.com/usekaneo/kaneo/commit/3863eb6ba1d5a6ec9833e4b4a383cffc3fa10fff)) ##### Features - **billing:** email trial reminders before and after expiry ([0e481a9](https://github.com/usekaneo/kaneo/commit/0e481a9c8223f36b03a35ad0cbb7456af99466d9)) #### [2.17.2](https://github.com/usekaneo/kaneo/compare/v2.17.1...v2.17.2) (2026-08-11) ##### Bug Fixes - **auth:** resolve the client IP behind multiple proxy hops ([9e8a448](https://github.com/usekaneo/kaneo/commit/9e8a44835768a70d6d2f68dc3e1add53e90bbc10)) - **billing:** grant the trial once per owner, not per workspace ([14adb9d](https://github.com/usekaneo/kaneo/commit/14adb9dfd8af0d0dbe5951d0994d1bcf0fcdf8b1)) - use internal URL for MCP tool requests ([#&#8203;1556](https://github.com/usekaneo/kaneo/issues/1556)) ([7d9d9d2](https://github.com/usekaneo/kaneo/commit/7d9d9d212d13e98e9aa3d84c0179f4a49384b9fc)) ##### Features - **planka-import:** add PLANKA to Kaneo migration CLI ([5c91feb](https://github.com/usekaneo/kaneo/commit/5c91febedf4e2cbb356c451676d4df3ae2acc6fa)) - **planka-import:** authenticate with a PLANKA API key ([ff5e3fc](https://github.com/usekaneo/kaneo/commit/ff5e3fc6b91ae351c6002fb358d75265a0435dbd)) - **site:** add PLANKA comparison page ([579a975](https://github.com/usekaneo/kaneo/commit/579a9752f7775e9239680053a6ed68d437d90e36)) #### [2.17.1](https://github.com/usekaneo/kaneo/compare/v2.17.0...v2.17.1) (2026-08-10) ##### Bug Fixes - **github:** match a branch whose title segment is empty ([#&#8203;1522](https://github.com/usekaneo/kaneo/issues/1522)) ([829f5ad](https://github.com/usekaneo/kaneo/commit/829f5addf2759bd0bfc10e0c231a8a0762f85262)) - preserve time entry end time ([#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554)) ([5e02130](https://github.com/usekaneo/kaneo/commit/5e0213009a6a35659a69543e6708b56c4d5593be)) - **security:** block the shared address space in webhook destinations ([#&#8203;1523](https://github.com/usekaneo/kaneo/issues/1523)) ([028c905](https://github.com/usekaneo/kaneo/commit/028c905fd505c7f2bc787c529d156088dd118d8b)) - **time-entry:** reject a start time later than the end time ([99e41ad](https://github.com/usekaneo/kaneo/commit/99e41ad8efcd12b06f17dab8096ef39902596130)), closes [#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554) ### [`v2.17.5`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2180-2026-08-12) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.17.4...v2.17.5) ##### Bug Fixes - **web:** restore the backdrop behind settings modals ([71e429e](https://github.com/usekaneo/kaneo/commit/71e429e3482e4473508f170018057313b2d658a5)) ##### Features - **account:** change avatar and delete account ([384eb00](https://github.com/usekaneo/kaneo/commit/384eb005c71fe6e9b99875556b370b033cd4d151)) #### [2.17.6](https://github.com/usekaneo/kaneo/compare/v2.17.5...v2.17.6) (2026-08-11) ##### Bug Fixes - **planka-import:** explain unmatched assignees, keep dependencies, attribute comments ([15f6868](https://github.com/usekaneo/kaneo/commit/15f68683620b5fcfbed7970b77210b7cc706f74b)) #### [2.17.5](https://github.com/usekaneo/kaneo/compare/v2.17.4...v2.17.5) (2026-08-11) ##### Bug Fixes - **billing:** send one trial reminder per owner, not per workspace ([ae2e579](https://github.com/usekaneo/kaneo/commit/ae2e57919d4703b4fcb2e4452b2c7b171abedd97)) #### [2.17.4](https://github.com/usekaneo/kaneo/compare/v2.17.3...v2.17.4) (2026-08-11) ##### Bug Fixes - **billing:** throttle trial reminders so they cannot exhaust the quota ([c4150a8](https://github.com/usekaneo/kaneo/commit/c4150a89f826ce5a4f7bbf24346c313b7fd2c5d4)) #### [2.17.3](https://github.com/usekaneo/kaneo/compare/v2.17.2...v2.17.3) (2026-08-11) ##### Bug Fixes - **planka-import:** default to the real Kaneo Cloud host ([3863eb6](https://github.com/usekaneo/kaneo/commit/3863eb6ba1d5a6ec9833e4b4a383cffc3fa10fff)) ##### Features - **billing:** email trial reminders before and after expiry ([0e481a9](https://github.com/usekaneo/kaneo/commit/0e481a9c8223f36b03a35ad0cbb7456af99466d9)) #### [2.17.2](https://github.com/usekaneo/kaneo/compare/v2.17.1...v2.17.2) (2026-08-11) ##### Bug Fixes - **auth:** resolve the client IP behind multiple proxy hops ([9e8a448](https://github.com/usekaneo/kaneo/commit/9e8a44835768a70d6d2f68dc3e1add53e90bbc10)) - **billing:** grant the trial once per owner, not per workspace ([14adb9d](https://github.com/usekaneo/kaneo/commit/14adb9dfd8af0d0dbe5951d0994d1bcf0fcdf8b1)) - use internal URL for MCP tool requests ([#&#8203;1556](https://github.com/usekaneo/kaneo/issues/1556)) ([7d9d9d2](https://github.com/usekaneo/kaneo/commit/7d9d9d212d13e98e9aa3d84c0179f4a49384b9fc)) ##### Features - **planka-import:** add PLANKA to Kaneo migration CLI ([5c91feb](https://github.com/usekaneo/kaneo/commit/5c91febedf4e2cbb356c451676d4df3ae2acc6fa)) - **planka-import:** authenticate with a PLANKA API key ([ff5e3fc](https://github.com/usekaneo/kaneo/commit/ff5e3fc6b91ae351c6002fb358d75265a0435dbd)) - **site:** add PLANKA comparison page ([579a975](https://github.com/usekaneo/kaneo/commit/579a9752f7775e9239680053a6ed68d437d90e36)) #### [2.17.1](https://github.com/usekaneo/kaneo/compare/v2.17.0...v2.17.1) (2026-08-10) ##### Bug Fixes - **github:** match a branch whose title segment is empty ([#&#8203;1522](https://github.com/usekaneo/kaneo/issues/1522)) ([829f5ad](https://github.com/usekaneo/kaneo/commit/829f5addf2759bd0bfc10e0c231a8a0762f85262)) - preserve time entry end time ([#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554)) ([5e02130](https://github.com/usekaneo/kaneo/commit/5e0213009a6a35659a69543e6708b56c4d5593be)) - **security:** block the shared address space in webhook destinations ([#&#8203;1523](https://github.com/usekaneo/kaneo/issues/1523)) ([028c905](https://github.com/usekaneo/kaneo/commit/028c905fd505c7f2bc787c529d156088dd118d8b)) - **time-entry:** reject a start time later than the end time ([99e41ad](https://github.com/usekaneo/kaneo/commit/99e41ad8efcd12b06f17dab8096ef39902596130)), closes [#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554) ### [`v2.17.4`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2180-2026-08-12) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.17.3...v2.17.4) ##### Bug Fixes - **web:** restore the backdrop behind settings modals ([71e429e](https://github.com/usekaneo/kaneo/commit/71e429e3482e4473508f170018057313b2d658a5)) ##### Features - **account:** change avatar and delete account ([384eb00](https://github.com/usekaneo/kaneo/commit/384eb005c71fe6e9b99875556b370b033cd4d151)) #### [2.17.6](https://github.com/usekaneo/kaneo/compare/v2.17.5...v2.17.6) (2026-08-11) ##### Bug Fixes - **planka-import:** explain unmatched assignees, keep dependencies, attribute comments ([15f6868](https://github.com/usekaneo/kaneo/commit/15f68683620b5fcfbed7970b77210b7cc706f74b)) #### [2.17.5](https://github.com/usekaneo/kaneo/compare/v2.17.4...v2.17.5) (2026-08-11) ##### Bug Fixes - **billing:** send one trial reminder per owner, not per workspace ([ae2e579](https://github.com/usekaneo/kaneo/commit/ae2e57919d4703b4fcb2e4452b2c7b171abedd97)) #### [2.17.4](https://github.com/usekaneo/kaneo/compare/v2.17.3...v2.17.4) (2026-08-11) ##### Bug Fixes - **billing:** throttle trial reminders so they cannot exhaust the quota ([c4150a8](https://github.com/usekaneo/kaneo/commit/c4150a89f826ce5a4f7bbf24346c313b7fd2c5d4)) #### [2.17.3](https://github.com/usekaneo/kaneo/compare/v2.17.2...v2.17.3) (2026-08-11) ##### Bug Fixes - **planka-import:** default to the real Kaneo Cloud host ([3863eb6](https://github.com/usekaneo/kaneo/commit/3863eb6ba1d5a6ec9833e4b4a383cffc3fa10fff)) ##### Features - **billing:** email trial reminders before and after expiry ([0e481a9](https://github.com/usekaneo/kaneo/commit/0e481a9c8223f36b03a35ad0cbb7456af99466d9)) #### [2.17.2](https://github.com/usekaneo/kaneo/compare/v2.17.1...v2.17.2) (2026-08-11) ##### Bug Fixes - **auth:** resolve the client IP behind multiple proxy hops ([9e8a448](https://github.com/usekaneo/kaneo/commit/9e8a44835768a70d6d2f68dc3e1add53e90bbc10)) - **billing:** grant the trial once per owner, not per workspace ([14adb9d](https://github.com/usekaneo/kaneo/commit/14adb9dfd8af0d0dbe5951d0994d1bcf0fcdf8b1)) - use internal URL for MCP tool requests ([#&#8203;1556](https://github.com/usekaneo/kaneo/issues/1556)) ([7d9d9d2](https://github.com/usekaneo/kaneo/commit/7d9d9d212d13e98e9aa3d84c0179f4a49384b9fc)) ##### Features - **planka-import:** add PLANKA to Kaneo migration CLI ([5c91feb](https://github.com/usekaneo/kaneo/commit/5c91febedf4e2cbb356c451676d4df3ae2acc6fa)) - **planka-import:** authenticate with a PLANKA API key ([ff5e3fc](https://github.com/usekaneo/kaneo/commit/ff5e3fc6b91ae351c6002fb358d75265a0435dbd)) - **site:** add PLANKA comparison page ([579a975](https://github.com/usekaneo/kaneo/commit/579a9752f7775e9239680053a6ed68d437d90e36)) #### [2.17.1](https://github.com/usekaneo/kaneo/compare/v2.17.0...v2.17.1) (2026-08-10) ##### Bug Fixes - **github:** match a branch whose title segment is empty ([#&#8203;1522](https://github.com/usekaneo/kaneo/issues/1522)) ([829f5ad](https://github.com/usekaneo/kaneo/commit/829f5addf2759bd0bfc10e0c231a8a0762f85262)) - preserve time entry end time ([#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554)) ([5e02130](https://github.com/usekaneo/kaneo/commit/5e0213009a6a35659a69543e6708b56c4d5593be)) - **security:** block the shared address space in webhook destinations ([#&#8203;1523](https://github.com/usekaneo/kaneo/issues/1523)) ([028c905](https://github.com/usekaneo/kaneo/commit/028c905fd505c7f2bc787c529d156088dd118d8b)) - **time-entry:** reject a start time later than the end time ([99e41ad](https://github.com/usekaneo/kaneo/commit/99e41ad8efcd12b06f17dab8096ef39902596130)), closes [#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554) ### [`v2.17.3`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2180-2026-08-12) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.17.2...v2.17.3) ##### Bug Fixes - **web:** restore the backdrop behind settings modals ([71e429e](https://github.com/usekaneo/kaneo/commit/71e429e3482e4473508f170018057313b2d658a5)) ##### Features - **account:** change avatar and delete account ([384eb00](https://github.com/usekaneo/kaneo/commit/384eb005c71fe6e9b99875556b370b033cd4d151)) #### [2.17.6](https://github.com/usekaneo/kaneo/compare/v2.17.5...v2.17.6) (2026-08-11) ##### Bug Fixes - **planka-import:** explain unmatched assignees, keep dependencies, attribute comments ([15f6868](https://github.com/usekaneo/kaneo/commit/15f68683620b5fcfbed7970b77210b7cc706f74b)) #### [2.17.5](https://github.com/usekaneo/kaneo/compare/v2.17.4...v2.17.5) (2026-08-11) ##### Bug Fixes - **billing:** send one trial reminder per owner, not per workspace ([ae2e579](https://github.com/usekaneo/kaneo/commit/ae2e57919d4703b4fcb2e4452b2c7b171abedd97)) #### [2.17.4](https://github.com/usekaneo/kaneo/compare/v2.17.3...v2.17.4) (2026-08-11) ##### Bug Fixes - **billing:** throttle trial reminders so they cannot exhaust the quota ([c4150a8](https://github.com/usekaneo/kaneo/commit/c4150a89f826ce5a4f7bbf24346c313b7fd2c5d4)) #### [2.17.3](https://github.com/usekaneo/kaneo/compare/v2.17.2...v2.17.3) (2026-08-11) ##### Bug Fixes - **planka-import:** default to the real Kaneo Cloud host ([3863eb6](https://github.com/usekaneo/kaneo/commit/3863eb6ba1d5a6ec9833e4b4a383cffc3fa10fff)) ##### Features - **billing:** email trial reminders before and after expiry ([0e481a9](https://github.com/usekaneo/kaneo/commit/0e481a9c8223f36b03a35ad0cbb7456af99466d9)) #### [2.17.2](https://github.com/usekaneo/kaneo/compare/v2.17.1...v2.17.2) (2026-08-11) ##### Bug Fixes - **auth:** resolve the client IP behind multiple proxy hops ([9e8a448](https://github.com/usekaneo/kaneo/commit/9e8a44835768a70d6d2f68dc3e1add53e90bbc10)) - **billing:** grant the trial once per owner, not per workspace ([14adb9d](https://github.com/usekaneo/kaneo/commit/14adb9dfd8af0d0dbe5951d0994d1bcf0fcdf8b1)) - use internal URL for MCP tool requests ([#&#8203;1556](https://github.com/usekaneo/kaneo/issues/1556)) ([7d9d9d2](https://github.com/usekaneo/kaneo/commit/7d9d9d212d13e98e9aa3d84c0179f4a49384b9fc)) ##### Features - **planka-import:** add PLANKA to Kaneo migration CLI ([5c91feb](https://github.com/usekaneo/kaneo/commit/5c91febedf4e2cbb356c451676d4df3ae2acc6fa)) - **planka-import:** authenticate with a PLANKA API key ([ff5e3fc](https://github.com/usekaneo/kaneo/commit/ff5e3fc6b91ae351c6002fb358d75265a0435dbd)) - **site:** add PLANKA comparison page ([579a975](https://github.com/usekaneo/kaneo/commit/579a9752f7775e9239680053a6ed68d437d90e36)) #### [2.17.1](https://github.com/usekaneo/kaneo/compare/v2.17.0...v2.17.1) (2026-08-10) ##### Bug Fixes - **github:** match a branch whose title segment is empty ([#&#8203;1522](https://github.com/usekaneo/kaneo/issues/1522)) ([829f5ad](https://github.com/usekaneo/kaneo/commit/829f5addf2759bd0bfc10e0c231a8a0762f85262)) - preserve time entry end time ([#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554)) ([5e02130](https://github.com/usekaneo/kaneo/commit/5e0213009a6a35659a69543e6708b56c4d5593be)) - **security:** block the shared address space in webhook destinations ([#&#8203;1523](https://github.com/usekaneo/kaneo/issues/1523)) ([028c905](https://github.com/usekaneo/kaneo/commit/028c905fd505c7f2bc787c529d156088dd118d8b)) - **time-entry:** reject a start time later than the end time ([99e41ad](https://github.com/usekaneo/kaneo/commit/99e41ad8efcd12b06f17dab8096ef39902596130)), closes [#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554) ### [`v2.17.2`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2180-2026-08-12) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.17.1...v2.17.2) ##### Bug Fixes - **web:** restore the backdrop behind settings modals ([71e429e](https://github.com/usekaneo/kaneo/commit/71e429e3482e4473508f170018057313b2d658a5)) ##### Features - **account:** change avatar and delete account ([384eb00](https://github.com/usekaneo/kaneo/commit/384eb005c71fe6e9b99875556b370b033cd4d151)) #### [2.17.6](https://github.com/usekaneo/kaneo/compare/v2.17.5...v2.17.6) (2026-08-11) ##### Bug Fixes - **planka-import:** explain unmatched assignees, keep dependencies, attribute comments ([15f6868](https://github.com/usekaneo/kaneo/commit/15f68683620b5fcfbed7970b77210b7cc706f74b)) #### [2.17.5](https://github.com/usekaneo/kaneo/compare/v2.17.4...v2.17.5) (2026-08-11) ##### Bug Fixes - **billing:** send one trial reminder per owner, not per workspace ([ae2e579](https://github.com/usekaneo/kaneo/commit/ae2e57919d4703b4fcb2e4452b2c7b171abedd97)) #### [2.17.4](https://github.com/usekaneo/kaneo/compare/v2.17.3...v2.17.4) (2026-08-11) ##### Bug Fixes - **billing:** throttle trial reminders so they cannot exhaust the quota ([c4150a8](https://github.com/usekaneo/kaneo/commit/c4150a89f826ce5a4f7bbf24346c313b7fd2c5d4)) #### [2.17.3](https://github.com/usekaneo/kaneo/compare/v2.17.2...v2.17.3) (2026-08-11) ##### Bug Fixes - **planka-import:** default to the real Kaneo Cloud host ([3863eb6](https://github.com/usekaneo/kaneo/commit/3863eb6ba1d5a6ec9833e4b4a383cffc3fa10fff)) ##### Features - **billing:** email trial reminders before and after expiry ([0e481a9](https://github.com/usekaneo/kaneo/commit/0e481a9c8223f36b03a35ad0cbb7456af99466d9)) #### [2.17.2](https://github.com/usekaneo/kaneo/compare/v2.17.1...v2.17.2) (2026-08-11) ##### Bug Fixes - **auth:** resolve the client IP behind multiple proxy hops ([9e8a448](https://github.com/usekaneo/kaneo/commit/9e8a44835768a70d6d2f68dc3e1add53e90bbc10)) - **billing:** grant the trial once per owner, not per workspace ([14adb9d](https://github.com/usekaneo/kaneo/commit/14adb9dfd8af0d0dbe5951d0994d1bcf0fcdf8b1)) - use internal URL for MCP tool requests ([#&#8203;1556](https://github.com/usekaneo/kaneo/issues/1556)) ([7d9d9d2](https://github.com/usekaneo/kaneo/commit/7d9d9d212d13e98e9aa3d84c0179f4a49384b9fc)) ##### Features - **planka-import:** add PLANKA to Kaneo migration CLI ([5c91feb](https://github.com/usekaneo/kaneo/commit/5c91febedf4e2cbb356c451676d4df3ae2acc6fa)) - **planka-import:** authenticate with a PLANKA API key ([ff5e3fc](https://github.com/usekaneo/kaneo/commit/ff5e3fc6b91ae351c6002fb358d75265a0435dbd)) - **site:** add PLANKA comparison page ([579a975](https://github.com/usekaneo/kaneo/commit/579a9752f7775e9239680053a6ed68d437d90e36)) #### [2.17.1](https://github.com/usekaneo/kaneo/compare/v2.17.0...v2.17.1) (2026-08-10) ##### Bug Fixes - **github:** match a branch whose title segment is empty ([#&#8203;1522](https://github.com/usekaneo/kaneo/issues/1522)) ([829f5ad](https://github.com/usekaneo/kaneo/commit/829f5addf2759bd0bfc10e0c231a8a0762f85262)) - preserve time entry end time ([#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554)) ([5e02130](https://github.com/usekaneo/kaneo/commit/5e0213009a6a35659a69543e6708b56c4d5593be)) - **security:** block the shared address space in webhook destinations ([#&#8203;1523](https://github.com/usekaneo/kaneo/issues/1523)) ([028c905](https://github.com/usekaneo/kaneo/commit/028c905fd505c7f2bc787c529d156088dd118d8b)) - **time-entry:** reject a start time later than the end time ([99e41ad](https://github.com/usekaneo/kaneo/commit/99e41ad8efcd12b06f17dab8096ef39902596130)), closes [#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554) ### [`v2.17.1`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2180-2026-08-12) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.17.0...v2.17.1) ##### Bug Fixes - **web:** restore the backdrop behind settings modals ([71e429e](https://github.com/usekaneo/kaneo/commit/71e429e3482e4473508f170018057313b2d658a5)) ##### Features - **account:** change avatar and delete account ([384eb00](https://github.com/usekaneo/kaneo/commit/384eb005c71fe6e9b99875556b370b033cd4d151)) #### [2.17.6](https://github.com/usekaneo/kaneo/compare/v2.17.5...v2.17.6) (2026-08-11) ##### Bug Fixes - **planka-import:** explain unmatched assignees, keep dependencies, attribute comments ([15f6868](https://github.com/usekaneo/kaneo/commit/15f68683620b5fcfbed7970b77210b7cc706f74b)) #### [2.17.5](https://github.com/usekaneo/kaneo/compare/v2.17.4...v2.17.5) (2026-08-11) ##### Bug Fixes - **billing:** send one trial reminder per owner, not per workspace ([ae2e579](https://github.com/usekaneo/kaneo/commit/ae2e57919d4703b4fcb2e4452b2c7b171abedd97)) #### [2.17.4](https://github.com/usekaneo/kaneo/compare/v2.17.3...v2.17.4) (2026-08-11) ##### Bug Fixes - **billing:** throttle trial reminders so they cannot exhaust the quota ([c4150a8](https://github.com/usekaneo/kaneo/commit/c4150a89f826ce5a4f7bbf24346c313b7fd2c5d4)) #### [2.17.3](https://github.com/usekaneo/kaneo/compare/v2.17.2...v2.17.3) (2026-08-11) ##### Bug Fixes - **planka-import:** default to the real Kaneo Cloud host ([3863eb6](https://github.com/usekaneo/kaneo/commit/3863eb6ba1d5a6ec9833e4b4a383cffc3fa10fff)) ##### Features - **billing:** email trial reminders before and after expiry ([0e481a9](https://github.com/usekaneo/kaneo/commit/0e481a9c8223f36b03a35ad0cbb7456af99466d9)) #### [2.17.2](https://github.com/usekaneo/kaneo/compare/v2.17.1...v2.17.2) (2026-08-11) ##### Bug Fixes - **auth:** resolve the client IP behind multiple proxy hops ([9e8a448](https://github.com/usekaneo/kaneo/commit/9e8a44835768a70d6d2f68dc3e1add53e90bbc10)) - **billing:** grant the trial once per owner, not per workspace ([14adb9d](https://github.com/usekaneo/kaneo/commit/14adb9dfd8af0d0dbe5951d0994d1bcf0fcdf8b1)) - use internal URL for MCP tool requests ([#&#8203;1556](https://github.com/usekaneo/kaneo/issues/1556)) ([7d9d9d2](https://github.com/usekaneo/kaneo/commit/7d9d9d212d13e98e9aa3d84c0179f4a49384b9fc)) ##### Features - **planka-import:** add PLANKA to Kaneo migration CLI ([5c91feb](https://github.com/usekaneo/kaneo/commit/5c91febedf4e2cbb356c451676d4df3ae2acc6fa)) - **planka-import:** authenticate with a PLANKA API key ([ff5e3fc](https://github.com/usekaneo/kaneo/commit/ff5e3fc6b91ae351c6002fb358d75265a0435dbd)) - **site:** add PLANKA comparison page ([579a975](https://github.com/usekaneo/kaneo/commit/579a9752f7775e9239680053a6ed68d437d90e36)) #### [2.17.1](https://github.com/usekaneo/kaneo/compare/v2.17.0...v2.17.1) (2026-08-10) ##### Bug Fixes - **github:** match a branch whose title segment is empty ([#&#8203;1522](https://github.com/usekaneo/kaneo/issues/1522)) ([829f5ad](https://github.com/usekaneo/kaneo/commit/829f5addf2759bd0bfc10e0c231a8a0762f85262)) - preserve time entry end time ([#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554)) ([5e02130](https://github.com/usekaneo/kaneo/commit/5e0213009a6a35659a69543e6708b56c4d5593be)) - **security:** block the shared address space in webhook destinations ([#&#8203;1523](https://github.com/usekaneo/kaneo/issues/1523)) ([028c905](https://github.com/usekaneo/kaneo/commit/028c905fd505c7f2bc787c529d156088dd118d8b)) - **time-entry:** reject a start time later than the end time ([99e41ad](https://github.com/usekaneo/kaneo/commit/99e41ad8efcd12b06f17dab8096ef39902596130)), closes [#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554) ### [`v2.17.0`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2180-2026-08-12) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.16.4...v2.17.0) ##### Bug Fixes - **web:** restore the backdrop behind settings modals ([71e429e](https://github.com/usekaneo/kaneo/commit/71e429e3482e4473508f170018057313b2d658a5)) ##### Features - **account:** change avatar and delete account ([384eb00](https://github.com/usekaneo/kaneo/commit/384eb005c71fe6e9b99875556b370b033cd4d151)) #### [2.17.6](https://github.com/usekaneo/kaneo/compare/v2.17.5...v2.17.6) (2026-08-11) ##### Bug Fixes - **planka-import:** explain unmatched assignees, keep dependencies, attribute comments ([15f6868](https://github.com/usekaneo/kaneo/commit/15f68683620b5fcfbed7970b77210b7cc706f74b)) #### [2.17.5](https://github.com/usekaneo/kaneo/compare/v2.17.4...v2.17.5) (2026-08-11) ##### Bug Fixes - **billing:** send one trial reminder per owner, not per workspace ([ae2e579](https://github.com/usekaneo/kaneo/commit/ae2e57919d4703b4fcb2e4452b2c7b171abedd97)) #### [2.17.4](https://github.com/usekaneo/kaneo/compare/v2.17.3...v2.17.4) (2026-08-11) ##### Bug Fixes - **billing:** throttle trial reminders so they cannot exhaust the quota ([c4150a8](https://github.com/usekaneo/kaneo/commit/c4150a89f826ce5a4f7bbf24346c313b7fd2c5d4)) #### [2.17.3](https://github.com/usekaneo/kaneo/compare/v2.17.2...v2.17.3) (2026-08-11) ##### Bug Fixes - **planka-import:** default to the real Kaneo Cloud host ([3863eb6](https://github.com/usekaneo/kaneo/commit/3863eb6ba1d5a6ec9833e4b4a383cffc3fa10fff)) ##### Features - **billing:** email trial reminders before and after expiry ([0e481a9](https://github.com/usekaneo/kaneo/commit/0e481a9c8223f36b03a35ad0cbb7456af99466d9)) #### [2.17.2](https://github.com/usekaneo/kaneo/compare/v2.17.1...v2.17.2) (2026-08-11) ##### Bug Fixes - **auth:** resolve the client IP behind multiple proxy hops ([9e8a448](https://github.com/usekaneo/kaneo/commit/9e8a44835768a70d6d2f68dc3e1add53e90bbc10)) - **billing:** grant the trial once per owner, not per workspace ([14adb9d](https://github.com/usekaneo/kaneo/commit/14adb9dfd8af0d0dbe5951d0994d1bcf0fcdf8b1)) - use internal URL for MCP tool requests ([#&#8203;1556](https://github.com/usekaneo/kaneo/issues/1556)) ([7d9d9d2](https://github.com/usekaneo/kaneo/commit/7d9d9d212d13e98e9aa3d84c0179f4a49384b9fc)) ##### Features - **planka-import:** add PLANKA to Kaneo migration CLI ([5c91feb](https://github.com/usekaneo/kaneo/commit/5c91febedf4e2cbb356c451676d4df3ae2acc6fa)) - **planka-import:** authenticate with a PLANKA API key ([ff5e3fc](https://github.com/usekaneo/kaneo/commit/ff5e3fc6b91ae351c6002fb358d75265a0435dbd)) - **site:** add PLANKA comparison page ([579a975](https://github.com/usekaneo/kaneo/commit/579a9752f7775e9239680053a6ed68d437d90e36)) #### [2.17.1](https://github.com/usekaneo/kaneo/compare/v2.17.0...v2.17.1) (2026-08-10) ##### Bug Fixes - **github:** match a branch whose title segment is empty ([#&#8203;1522](https://github.com/usekaneo/kaneo/issues/1522)) ([829f5ad](https://github.com/usekaneo/kaneo/commit/829f5addf2759bd0bfc10e0c231a8a0762f85262)) - preserve time entry end time ([#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554)) ([5e02130](https://github.com/usekaneo/kaneo/commit/5e0213009a6a35659a69543e6708b56c4d5593be)) - **security:** block the shared address space in webhook destinations ([#&#8203;1523](https://github.com/usekaneo/kaneo/issues/1523)) ([028c905](https://github.com/usekaneo/kaneo/commit/028c905fd505c7f2bc787c529d156088dd118d8b)) - **time-entry:** reject a start time later than the end time ([99e41ad](https://github.com/usekaneo/kaneo/commit/99e41ad8efcd12b06f17dab8096ef39902596130)), closes [#&#8203;1554](https://github.com/usekaneo/kaneo/issues/1554) ### [`v2.16.4`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2170-2026-08-10) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.16.3...v2.16.4) ##### Bug Fixes - **mcp:** guard media type and share the tool registrar ([1167ec6](https://github.com/usekaneo/kaneo/commit/1167ec6a980385a6658230831ba80254429b3db3)) - **web:** omit unassigned userId when creating tasks ([#&#8203;1552](https://github.com/usekaneo/kaneo/issues/1552)) ([b69fae3](https://github.com/usekaneo/kaneo/commit/b69fae35a3a3b25241d6b3e348bb594bc442a26a)) ##### Features - **mcp:** expose members, search, columns, time and activity tools ([37b2fc3](https://github.com/usekaneo/kaneo/commit/37b2fc3138c3c1cac682590530342c5d852a7020)) - **mcp:** support stateless 2026 protocol ([#&#8203;1540](https://github.com/usekaneo/kaneo/issues/1540)) ([7fe3610](https://github.com/usekaneo/kaneo/commit/7fe3610d6b949e3a8acc4158ba6e4185335efcb8)) #### [2.16.4](https://github.com/usekaneo/kaneo/compare/v2.16.3...v2.16.4) (2026-08-10) ##### Bug Fixes - **auth:** let invited users sign up with OAuth in invite-only mode ([737ec6e](https://github.com/usekaneo/kaneo/commit/737ec6e79f85e6906b0748501c27e1b1aa4ab914)), closes [#&#8203;1551](https://github.com/usekaneo/kaneo/issues/1551) #### [2.16.3](https://github.com/usekaneo/kaneo/compare/v2.16.2...v2.16.3) (2026-08-10) ##### Bug Fixes - **task:** treat blank assignee id as unassigned on task creation ([f5b3717](https://github.com/usekaneo/kaneo/commit/f5b3717fc0213542834a3d9c8169f2689f5c0580)), closes [#&#8203;1543](https://github.com/usekaneo/kaneo/issues/1543) #### [2.16.2](https://github.com/usekaneo/kaneo/compare/v2.16.1...v2.16.2) (2026-08-10) ##### Bug Fixes - **ci:** failure in ci after fix ([4a24d74](https://github.com/usekaneo/kaneo/commit/4a24d74b261222c008576c2e3044b24ea551fc4c)) - **gitea-integration:** handle invalid JSON from non-Gitea URLs ([097aedd](https://github.com/usekaneo/kaneo/commit/097aeddbdc80e812d14f5c7241c6575b6fbcf0a6)) - **gitea-integration:** structured failure response and test coverage ([49eac38](https://github.com/usekaneo/kaneo/commit/49eac382cc8f8e1875ef46ea75cdce52651ee298)) - **gitea:** classify /user 404 as not-a-gitea-instance ([364f5e3](https://github.com/usekaneo/kaneo/commit/364f5e373ea8947a7436e114be89875723b815c2)) - **pr:** responding to AI pr reviews ([cb2f333](https://github.com/usekaneo/kaneo/commit/cb2f3337d513979ff845ee3b39d7c68dd412bda3)) - **task:** validate assignee existence on task creation ([b0133ee](https://github.com/usekaneo/kaneo/commit/b0133ee01b03b838ffdc7a1765ceb1a80b438233)) - **web:** avoid nested buttons in alert dialog footers ([16481e3](https://github.com/usekaneo/kaneo/commit/16481e3bb98fba4f6de15d26a8917bee02efa2f4)) - **web:** handle unhandled promise rejection from authClient.getSession() ([494f1fb](https://github.com/usekaneo/kaneo/commit/494f1fbc90290636d77c6b1f3fae07b2112a255b)) - **web:** preserve full location in auth redirect ([a277274](https://github.com/usekaneo/kaneo/commit/a2772742e0059a1c884661c651ba6a369af779ff)) - **web:** prevent TypeError when relatedTarget is not an Element ([51131c1](https://github.com/usekaneo/kaneo/commit/51131c10ebe3ad19da5a24b4c3bce996ca139723)) #### [2.16.1](https://github.com/usekaneo/kaneo/compare/v2.16.0...v2.16.1) (2026-08-09) ##### Bug Fixes - address placeholder cleanup reviews ([dee61c1](https://github.com/usekaneo/kaneo/commit/dee61c13c918deddb03545f3ef525573870ac9bf)) - strip quoted runtime placeholders ([f983f34](https://github.com/usekaneo/kaneo/commit/f983f34e3ccb3bd0ccc85655b6cfaa2ae6463712)) ### [`v2.16.3`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2170-2026-08-10) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.16.2...v2.16.3) ##### Bug Fixes - **mcp:** guard media type and share the tool registrar ([1167ec6](https://github.com/usekaneo/kaneo/commit/1167ec6a980385a6658230831ba80254429b3db3)) - **web:** omit unassigned userId when creating tasks ([#&#8203;1552](https://github.com/usekaneo/kaneo/issues/1552)) ([b69fae3](https://github.com/usekaneo/kaneo/commit/b69fae35a3a3b25241d6b3e348bb594bc442a26a)) ##### Features - **mcp:** expose members, search, columns, time and activity tools ([37b2fc3](https://github.com/usekaneo/kaneo/commit/37b2fc3138c3c1cac682590530342c5d852a7020)) - **mcp:** support stateless 2026 protocol ([#&#8203;1540](https://github.com/usekaneo/kaneo/issues/1540)) ([7fe3610](https://github.com/usekaneo/kaneo/commit/7fe3610d6b949e3a8acc4158ba6e4185335efcb8)) #### [2.16.4](https://github.com/usekaneo/kaneo/compare/v2.16.3...v2.16.4) (2026-08-10) ##### Bug Fixes - **auth:** let invited users sign up with OAuth in invite-only mode ([737ec6e](https://github.com/usekaneo/kaneo/commit/737ec6e79f85e6906b0748501c27e1b1aa4ab914)), closes [#&#8203;1551](https://github.com/usekaneo/kaneo/issues/1551) #### [2.16.3](https://github.com/usekaneo/kaneo/compare/v2.16.2...v2.16.3) (2026-08-10) ##### Bug Fixes - **task:** treat blank assignee id as unassigned on task creation ([f5b3717](https://github.com/usekaneo/kaneo/commit/f5b3717fc0213542834a3d9c8169f2689f5c0580)), closes [#&#8203;1543](https://github.com/usekaneo/kaneo/issues/1543) #### [2.16.2](https://github.com/usekaneo/kaneo/compare/v2.16.1...v2.16.2) (2026-08-10) ##### Bug Fixes - **ci:** failure in ci after fix ([4a24d74](https://github.com/usekaneo/kaneo/commit/4a24d74b261222c008576c2e3044b24ea551fc4c)) - **gitea-integration:** handle invalid JSON from non-Gitea URLs ([097aedd](https://github.com/usekaneo/kaneo/commit/097aeddbdc80e812d14f5c7241c6575b6fbcf0a6)) - **gitea-integration:** structured failure response and test coverage ([49eac38](https://github.com/usekaneo/kaneo/commit/49eac382cc8f8e1875ef46ea75cdce52651ee298)) - **gitea:** classify /user 404 as not-a-gitea-instance ([364f5e3](https://github.com/usekaneo/kaneo/commit/364f5e373ea8947a7436e114be89875723b815c2)) - **pr:** responding to AI pr reviews ([cb2f333](https://github.com/usekaneo/kaneo/commit/cb2f3337d513979ff845ee3b39d7c68dd412bda3)) - **task:** validate assignee existence on task creation ([b0133ee](https://github.com/usekaneo/kaneo/commit/b0133ee01b03b838ffdc7a1765ceb1a80b438233)) - **web:** avoid nested buttons in alert dialog footers ([16481e3](https://github.com/usekaneo/kaneo/commit/16481e3bb98fba4f6de15d26a8917bee02efa2f4)) - **web:** handle unhandled promise rejection from authClient.getSession() ([494f1fb](https://github.com/usekaneo/kaneo/commit/494f1fbc90290636d77c6b1f3fae07b2112a255b)) - **web:** preserve full location in auth redirect ([a277274](https://github.com/usekaneo/kaneo/commit/a2772742e0059a1c884661c651ba6a369af779ff)) - **web:** prevent TypeError when relatedTarget is not an Element ([51131c1](https://github.com/usekaneo/kaneo/commit/51131c10ebe3ad19da5a24b4c3bce996ca139723)) #### [2.16.1](https://github.com/usekaneo/kaneo/compare/v2.16.0...v2.16.1) (2026-08-09) ##### Bug Fixes - address placeholder cleanup reviews ([dee61c1](https://github.com/usekaneo/kaneo/commit/dee61c13c918deddb03545f3ef525573870ac9bf)) - strip quoted runtime placeholders ([f983f34](https://github.com/usekaneo/kaneo/commit/f983f34e3ccb3bd0ccc85655b6cfaa2ae6463712)) ### [`v2.16.2`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2170-2026-08-10) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.16.1...v2.16.2) ##### Bug Fixes - **mcp:** guard media type and share the tool registrar ([1167ec6](https://github.com/usekaneo/kaneo/commit/1167ec6a980385a6658230831ba80254429b3db3)) - **web:** omit unassigned userId when creating tasks ([#&#8203;1552](https://github.com/usekaneo/kaneo/issues/1552)) ([b69fae3](https://github.com/usekaneo/kaneo/commit/b69fae35a3a3b25241d6b3e348bb594bc442a26a)) ##### Features - **mcp:** expose members, search, columns, time and activity tools ([37b2fc3](https://github.com/usekaneo/kaneo/commit/37b2fc3138c3c1cac682590530342c5d852a7020)) - **mcp:** support stateless 2026 protocol ([#&#8203;1540](https://github.com/usekaneo/kaneo/issues/1540)) ([7fe3610](https://github.com/usekaneo/kaneo/commit/7fe3610d6b949e3a8acc4158ba6e4185335efcb8)) #### [2.16.4](https://github.com/usekaneo/kaneo/compare/v2.16.3...v2.16.4) (2026-08-10) ##### Bug Fixes - **auth:** let invited users sign up with OAuth in invite-only mode ([737ec6e](https://github.com/usekaneo/kaneo/commit/737ec6e79f85e6906b0748501c27e1b1aa4ab914)), closes [#&#8203;1551](https://github.com/usekaneo/kaneo/issues/1551) #### [2.16.3](https://github.com/usekaneo/kaneo/compare/v2.16.2...v2.16.3) (2026-08-10) ##### Bug Fixes - **task:** treat blank assignee id as unassigned on task creation ([f5b3717](https://github.com/usekaneo/kaneo/commit/f5b3717fc0213542834a3d9c8169f2689f5c0580)), closes [#&#8203;1543](https://github.com/usekaneo/kaneo/issues/1543) #### [2.16.2](https://github.com/usekaneo/kaneo/compare/v2.16.1...v2.16.2) (2026-08-10) ##### Bug Fixes - **ci:** failure in ci after fix ([4a24d74](https://github.com/usekaneo/kaneo/commit/4a24d74b261222c008576c2e3044b24ea551fc4c)) - **gitea-integration:** handle invalid JSON from non-Gitea URLs ([097aedd](https://github.com/usekaneo/kaneo/commit/097aeddbdc80e812d14f5c7241c6575b6fbcf0a6)) - **gitea-integration:** structured failure response and test coverage ([49eac38](https://github.com/usekaneo/kaneo/commit/49eac382cc8f8e1875ef46ea75cdce52651ee298)) - **gitea:** classify /user 404 as not-a-gitea-instance ([364f5e3](https://github.com/usekaneo/kaneo/commit/364f5e373ea8947a7436e114be89875723b815c2)) - **pr:** responding to AI pr reviews ([cb2f333](https://github.com/usekaneo/kaneo/commit/cb2f3337d513979ff845ee3b39d7c68dd412bda3)) - **task:** validate assignee existence on task creation ([b0133ee](https://github.com/usekaneo/kaneo/commit/b0133ee01b03b838ffdc7a1765ceb1a80b438233)) - **web:** avoid nested buttons in alert dialog footers ([16481e3](https://github.com/usekaneo/kaneo/commit/16481e3bb98fba4f6de15d26a8917bee02efa2f4)) - **web:** handle unhandled promise rejection from authClient.getSession() ([494f1fb](https://github.com/usekaneo/kaneo/commit/494f1fbc90290636d77c6b1f3fae07b2112a255b)) - **web:** preserve full location in auth redirect ([a277274](https://github.com/usekaneo/kaneo/commit/a2772742e0059a1c884661c651ba6a369af779ff)) - **web:** prevent TypeError when relatedTarget is not an Element ([51131c1](https://github.com/usekaneo/kaneo/commit/51131c10ebe3ad19da5a24b4c3bce996ca139723)) #### [2.16.1](https://github.com/usekaneo/kaneo/compare/v2.16.0...v2.16.1) (2026-08-09) ##### Bug Fixes - address placeholder cleanup reviews ([dee61c1](https://github.com/usekaneo/kaneo/commit/dee61c13c918deddb03545f3ef525573870ac9bf)) - strip quoted runtime placeholders ([f983f34](https://github.com/usekaneo/kaneo/commit/f983f34e3ccb3bd0ccc85655b6cfaa2ae6463712)) ### [`v2.16.1`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2170-2026-08-10) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.16.0...v2.16.1) ##### Bug Fixes - **mcp:** guard media type and share the tool registrar ([1167ec6](https://github.com/usekaneo/kaneo/commit/1167ec6a980385a6658230831ba80254429b3db3)) - **web:** omit unassigned userId when creating tasks ([#&#8203;1552](https://github.com/usekaneo/kaneo/issues/1552)) ([b69fae3](https://github.com/usekaneo/kaneo/commit/b69fae35a3a3b25241d6b3e348bb594bc442a26a)) ##### Features - **mcp:** expose members, search, columns, time and activity tools ([37b2fc3](https://github.com/usekaneo/kaneo/commit/37b2fc3138c3c1cac682590530342c5d852a7020)) - **mcp:** support stateless 2026 protocol ([#&#8203;1540](https://github.com/usekaneo/kaneo/issues/1540)) ([7fe3610](https://github.com/usekaneo/kaneo/commit/7fe3610d6b949e3a8acc4158ba6e4185335efcb8)) #### [2.16.4](https://github.com/usekaneo/kaneo/compare/v2.16.3...v2.16.4) (2026-08-10) ##### Bug Fixes - **auth:** let invited users sign up with OAuth in invite-only mode ([737ec6e](https://github.com/usekaneo/kaneo/commit/737ec6e79f85e6906b0748501c27e1b1aa4ab914)), closes [#&#8203;1551](https://github.com/usekaneo/kaneo/issues/1551) #### [2.16.3](https://github.com/usekaneo/kaneo/compare/v2.16.2...v2.16.3) (2026-08-10) ##### Bug Fixes - **task:** treat blank assignee id as unassigned on task creation ([f5b3717](https://github.com/usekaneo/kaneo/commit/f5b3717fc0213542834a3d9c8169f2689f5c0580)), closes [#&#8203;1543](https://github.com/usekaneo/kaneo/issues/1543) #### [2.16.2](https://github.com/usekaneo/kaneo/compare/v2.16.1...v2.16.2) (2026-08-10) ##### Bug Fixes - **ci:** failure in ci after fix ([4a24d74](https://github.com/usekaneo/kaneo/commit/4a24d74b261222c008576c2e3044b24ea551fc4c)) - **gitea-integration:** handle invalid JSON from non-Gitea URLs ([097aedd](https://github.com/usekaneo/kaneo/commit/097aeddbdc80e812d14f5c7241c6575b6fbcf0a6)) - **gitea-integration:** structured failure response and test coverage ([49eac38](https://github.com/usekaneo/kaneo/commit/49eac382cc8f8e1875ef46ea75cdce52651ee298)) - **gitea:** classify /user 404 as not-a-gitea-instance ([364f5e3](https://github.com/usekaneo/kaneo/commit/364f5e373ea8947a7436e114be89875723b815c2)) - **pr:** responding to AI pr reviews ([cb2f333](https://github.com/usekaneo/kaneo/commit/cb2f3337d513979ff845ee3b39d7c68dd412bda3)) - **task:** validate assignee existence on task creation ([b0133ee](https://github.com/usekaneo/kaneo/commit/b0133ee01b03b838ffdc7a1765ceb1a80b438233)) - **web:** avoid nested buttons in alert dialog footers ([16481e3](https://github.com/usekaneo/kaneo/commit/16481e3bb98fba4f6de15d26a8917bee02efa2f4)) - **web:** handle unhandled promise rejection from authClient.getSession() ([494f1fb](https://github.com/usekaneo/kaneo/commit/494f1fbc90290636d77c6b1f3fae07b2112a255b)) - **web:** preserve full location in auth redirect ([a277274](https://github.com/usekaneo/kaneo/commit/a2772742e0059a1c884661c651ba6a369af779ff)) - **web:** prevent TypeError when relatedTarget is not an Element ([51131c1](https://github.com/usekaneo/kaneo/commit/51131c10ebe3ad19da5a24b4c3bce996ca139723)) #### [2.16.1](https://github.com/usekaneo/kaneo/compare/v2.16.0...v2.16.1) (2026-08-09) ##### Bug Fixes - address placeholder cleanup reviews ([dee61c1](https://github.com/usekaneo/kaneo/commit/dee61c13c918deddb03545f3ef525573870ac9bf)) - strip quoted runtime placeholders ([f983f34](https://github.com/usekaneo/kaneo/commit/f983f34e3ccb3bd0ccc85655b6cfaa2ae6463712)) ### [`v2.16.0`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2170-2026-08-10) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.15.0...v2.16.0) ##### Bug Fixes - **mcp:** guard media type and share the tool registrar ([1167ec6](https://github.com/usekaneo/kaneo/commit/1167ec6a980385a6658230831ba80254429b3db3)) - **web:** omit unassigned userId when creating tasks ([#&#8203;1552](https://github.com/usekaneo/kaneo/issues/1552)) ([b69fae3](https://github.com/usekaneo/kaneo/commit/b69fae35a3a3b25241d6b3e348bb594bc442a26a)) ##### Features - **mcp:** expose members, search, columns, time and activity tools ([37b2fc3](https://github.com/usekaneo/kaneo/commit/37b2fc3138c3c1cac682590530342c5d852a7020)) - **mcp:** support stateless 2026 protocol ([#&#8203;1540](https://github.com/usekaneo/kaneo/issues/1540)) ([7fe3610](https://github.com/usekaneo/kaneo/commit/7fe3610d6b949e3a8acc4158ba6e4185335efcb8)) #### [2.16.4](https://github.com/usekaneo/kaneo/compare/v2.16.3...v2.16.4) (2026-08-10) ##### Bug Fixes - **auth:** let invited users sign up with OAuth in invite-only mode ([737ec6e](https://github.com/usekaneo/kaneo/commit/737ec6e79f85e6906b0748501c27e1b1aa4ab914)), closes [#&#8203;1551](https://github.com/usekaneo/kaneo/issues/1551) #### [2.16.3](https://github.com/usekaneo/kaneo/compare/v2.16.2...v2.16.3) (2026-08-10) ##### Bug Fixes - **task:** treat blank assignee id as unassigned on task creation ([f5b3717](https://github.com/usekaneo/kaneo/commit/f5b3717fc0213542834a3d9c8169f2689f5c0580)), closes [#&#8203;1543](https://github.com/usekaneo/kaneo/issues/1543) #### [2.16.2](https://github.com/usekaneo/kaneo/compare/v2.16.1...v2.16.2) (2026-08-10) ##### Bug Fixes - **ci:** failure in ci after fix ([4a24d74](https://github.com/usekaneo/kaneo/commit/4a24d74b261222c008576c2e3044b24ea551fc4c)) - **gitea-integration:** handle invalid JSON from non-Gitea URLs ([097aedd](https://github.com/usekaneo/kaneo/commit/097aeddbdc80e812d14f5c7241c6575b6fbcf0a6)) - **gitea-integration:** structured failure response and test coverage ([49eac38](https://github.com/usekaneo/kaneo/commit/49eac382cc8f8e1875ef46ea75cdce52651ee298)) - **gitea:** classify /user 404 as not-a-gitea-instance ([364f5e3](https://github.com/usekaneo/kaneo/commit/364f5e373ea8947a7436e114be89875723b815c2)) - **pr:** responding to AI pr reviews ([cb2f333](https://github.com/usekaneo/kaneo/commit/cb2f3337d513979ff845ee3b39d7c68dd412bda3)) - **task:** validate assignee existence on task creation ([b0133ee](https://github.com/usekaneo/kaneo/commit/b0133ee01b03b838ffdc7a1765ceb1a80b438233)) - **web:** avoid nested buttons in alert dialog footers ([16481e3](https://github.com/usekaneo/kaneo/commit/16481e3bb98fba4f6de15d26a8917bee02efa2f4)) - **web:** handle unhandled promise rejection from authClient.getSession() ([494f1fb](https://github.com/usekaneo/kaneo/commit/494f1fbc90290636d77c6b1f3fae07b2112a255b)) - **web:** preserve full location in auth redirect ([a277274](https://github.com/usekaneo/kaneo/commit/a2772742e0059a1c884661c651ba6a369af779ff)) - **web:** prevent TypeError when relatedTarget is not an Element ([51131c1](https://github.com/usekaneo/kaneo/commit/51131c10ebe3ad19da5a24b4c3bce996ca139723)) #### [2.16.1](https://github.com/usekaneo/kaneo/compare/v2.16.0...v2.16.1) (2026-08-09) ##### Bug Fixes - address placeholder cleanup reviews ([dee61c1](https://github.com/usekaneo/kaneo/commit/dee61c13c918deddb03545f3ef525573870ac9bf)) - strip quoted runtime placeholders ([f983f34](https://github.com/usekaneo/kaneo/commit/f983f34e3ccb3bd0ccc85655b6cfaa2ae6463712)) ### [`v2.15.0`](https://github.com/usekaneo/kaneo/releases/tag/v2.15.0) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.14.0...v2.15.0) **Full Changelog**: <https://github.com/usekaneo/kaneo/compare/v2.14.0...v2.15.0> ### [`v2.14.0`](https://github.com/usekaneo/kaneo/releases/tag/v2.14.0) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.13.2...v2.14.0) #### What's Changed - fix(helm): set postgresql Deployment update strategy to Recreate by [@&#8203;randoneering](https://github.com/randoneering) in [#&#8203;1515](https://github.com/usekaneo/kaneo/pull/1515) - feat(i18n): add Brazilian Portuguese (pt-BR) locale by [@&#8203;OFFsaber](https://github.com/OFFsaber) in [#&#8203;1506](https://github.com/usekaneo/kaneo/pull/1506) #### New Contributors - [@&#8203;OFFsaber](https://github.com/OFFsaber) made their first contribution in [#&#8203;1506](https://github.com/usekaneo/kaneo/pull/1506) **Full Changelog**: <https://github.com/usekaneo/kaneo/compare/v2.13.2...v2.14.0> ### [`v2.13.2`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2140-2026-08-07) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.13.1...v2.13.2) ##### Bug Fixes - **helm:** set postgresql Deployment update strategy to Recreate ([01511cd](https://github.com/usekaneo/kaneo/commit/01511cdca82feab527136a6ab3690b9757990c4b)) - **i18n:** complete translations for all locales ([bea10b2](https://github.com/usekaneo/kaneo/commit/bea10b219f413eb9b41a6e7d8cd79ead0ab1b78b)) - **i18n:** use pt-BR copy for workspace invitation emails ([804817d](https://github.com/usekaneo/kaneo/commit/804817dd6e8f479a1cc0fdab9c3065c8d539ccc8)) ##### Features - **i18n:** add Brazilian Portuguese (pt-BR) locale ([fb656d4](https://github.com/usekaneo/kaneo/commit/fb656d42258acdf0b21e4d67229b7f39d0fe8120)) #### [2.13.2](https://github.com/usekaneo/kaneo/compare/v2.13.1...v2.13.2) (2026-08-07) ##### Features - **api:** tag Sentry events with the app release ([33270e3](https://github.com/usekaneo/kaneo/commit/33270e37a76e8507eb358c59fa58a81425683c90)) #### [2.13.1](https://github.com/usekaneo/kaneo/compare/v2.13.0...v2.13.1) (2026-08-07) ##### Bug Fixes - **deps:** drop the next override so the site really gets next 16 ([a3ee7ad](https://github.com/usekaneo/kaneo/commit/a3ee7ad553cc425ec445f90331a14cff0a176c36)) - **deps:** patch 16 disclosed advisories through the overrides ([39fc9fc](https://github.com/usekaneo/kaneo/commit/39fc9fc1edaf59467c0d329083e607e6316431ab)) - **deps:** sync lockfile with the babel override ([c5e74f0](https://github.com/usekaneo/kaneo/commit/c5e74f0deed7571fe5284dc16a6a35e4eb434753)) - **mcp:** cap pending OAuth authorization requests ([3da2ac5](https://github.com/usekaneo/kaneo/commit/3da2ac5f31bfdc60b20f96c624e747f1271b5403)) - **mcp:** correct the docs URL in package metadata ([c4427a6](https://github.com/usekaneo/kaneo/commit/c4427a6d5283202ded926e22d8e3f4b4004df4b9)) - **web:** correct link to the API reference in the nav menu ([e8f8f8a](https://github.com/usekaneo/kaneo/commit/e8f8f8a35e65324ea2e68c96c194b3032c3c9099)) - **web:** stop warning about due dates on completed tasks ([3f3dd13](https://github.com/usekaneo/kaneo/commit/3f3dd1360bad21b5121d04494282f682d02e1b50)), closes [#&#8203;1465](https://github.com/usekaneo/kaneo/issues/1465) - **web:** use Shiki's JavaScript regex engine to avoid WebAssembly ([09fb5d4](https://github.com/usekaneo/kaneo/commit/09fb5d446d687d3383e8006d9f15243832d4a252)) ##### Features - add web Sentry SDK with session replay and opt-in API tracing ([284d78b](https://github.com/usekaneo/kaneo/commit/284d78b352640025859bcb4bcc708b6815b7753b)) ### [`v2.13.1`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2140-2026-08-07) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.13.0...v2.13.1) ##### Bug Fixes - **helm:** set postgresql Deployment update strategy to Recreate ([01511cd](https://github.com/usekaneo/kaneo/commit/01511cdca82feab527136a6ab3690b9757990c4b)) - **i18n:** complete translations for all locales ([bea10b2](https://github.com/usekaneo/kaneo/commit/bea10b219f413eb9b41a6e7d8cd79ead0ab1b78b)) - **i18n:** use pt-BR copy for workspace invitation emails ([804817d](https://github.com/usekaneo/kaneo/commit/804817dd6e8f479a1cc0fdab9c3065c8d539ccc8)) ##### Features - **i18n:** add Brazilian Portuguese (pt-BR) locale ([fb656d4](https://github.com/usekaneo/kaneo/commit/fb656d42258acdf0b21e4d67229b7f39d0fe8120)) #### [2.13.2](https://github.com/usekaneo/kaneo/compare/v2.13.1...v2.13.2) (2026-08-07) ##### Features - **api:** tag Sentry events with the app release ([33270e3](https://github.com/usekaneo/kaneo/commit/33270e37a76e8507eb358c59fa58a81425683c90)) #### [2.13.1](https://github.com/usekaneo/kaneo/compare/v2.13.0...v2.13.1) (2026-08-07) ##### Bug Fixes - **deps:** drop the next override so the site really gets next 16 ([a3ee7ad](https://github.com/usekaneo/kaneo/commit/a3ee7ad553cc425ec445f90331a14cff0a176c36)) - **deps:** patch 16 disclosed advisories through the overrides ([39fc9fc](https://github.com/usekaneo/kaneo/commit/39fc9fc1edaf59467c0d329083e607e6316431ab)) - **deps:** sync lockfile with the babel override ([c5e74f0](https://github.com/usekaneo/kaneo/commit/c5e74f0deed7571fe5284dc16a6a35e4eb434753)) - **mcp:** cap pending OAuth authorization requests ([3da2ac5](https://github.com/usekaneo/kaneo/commit/3da2ac5f31bfdc60b20f96c624e747f1271b5403)) - **mcp:** correct the docs URL in package metadata ([c4427a6](https://github.com/usekaneo/kaneo/commit/c4427a6d5283202ded926e22d8e3f4b4004df4b9)) - **web:** correct link to the API reference in the nav menu ([e8f8f8a](https://github.com/usekaneo/kaneo/commit/e8f8f8a35e65324ea2e68c96c194b3032c3c9099)) - **web:** stop warning about due dates on completed tasks ([3f3dd13](https://github.com/usekaneo/kaneo/commit/3f3dd1360bad21b5121d04494282f682d02e1b50)), closes [#&#8203;1465](https://github.com/usekaneo/kaneo/issues/1465) - **web:** use Shiki's JavaScript regex engine to avoid WebAssembly ([09fb5d4](https://github.com/usekaneo/kaneo/commit/09fb5d446d687d3383e8006d9f15243832d4a252)) ##### Features - add web Sentry SDK with session replay and opt-in API tracing ([284d78b](https://github.com/usekaneo/kaneo/commit/284d78b352640025859bcb4bcc708b6815b7753b)) ### [`v2.13.0`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2140-2026-08-07) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.12.2...v2.13.0) ##### Bug Fixes - **helm:** set postgresql Deployment update strategy to Recreate ([01511cd](https://github.com/usekaneo/kaneo/commit/01511cdca82feab527136a6ab3690b9757990c4b)) - **i18n:** complete translations for all locales ([bea10b2](https://github.com/usekaneo/kaneo/commit/bea10b219f413eb9b41a6e7d8cd79ead0ab1b78b)) - **i18n:** use pt-BR copy for workspace invitation emails ([804817d](https://github.com/usekaneo/kaneo/commit/804817dd6e8f479a1cc0fdab9c3065c8d539ccc8)) ##### Features - **i18n:** add Brazilian Portuguese (pt-BR) locale ([fb656d4](https://github.com/usekaneo/kaneo/commit/fb656d42258acdf0b21e4d67229b7f39d0fe8120)) #### [2.13.2](https://github.com/usekaneo/kaneo/compare/v2.13.1...v2.13.2) (2026-08-07) ##### Features - **api:** tag Sentry events with the app release ([33270e3](https://github.com/usekaneo/kaneo/commit/33270e37a76e8507eb358c59fa58a81425683c90)) #### [2.13.1](https://github.com/usekaneo/kaneo/compare/v2.13.0...v2.13.1) (2026-08-07) ##### Bug Fixes - **deps:** drop the next override so the site really gets next 16 ([a3ee7ad](https://github.com/usekaneo/kaneo/commit/a3ee7ad553cc425ec445f90331a14cff0a176c36)) - **deps:** patch 16 disclosed advisories through the overrides ([39fc9fc](https://github.com/usekaneo/kaneo/commit/39fc9fc1edaf59467c0d329083e607e6316431ab)) - **deps:** sync lockfile with the babel override ([c5e74f0](https://github.com/usekaneo/kaneo/commit/c5e74f0deed7571fe5284dc16a6a35e4eb434753)) - **mcp:** cap pending OAuth authorization requests ([3da2ac5](https://github.com/usekaneo/kaneo/commit/3da2ac5f31bfdc60b20f96c624e747f1271b5403)) - **mcp:** correct the docs URL in package metadata ([c4427a6](https://github.com/usekaneo/kaneo/commit/c4427a6d5283202ded926e22d8e3f4b4004df4b9)) - **web:** correct link to the API reference in the nav menu ([e8f8f8a](https://github.com/usekaneo/kaneo/commit/e8f8f8a35e65324ea2e68c96c194b3032c3c9099)) - **web:** stop warning about due dates on completed tasks ([3f3dd13](https://github.com/usekaneo/kaneo/commit/3f3dd1360bad21b5121d04494282f682d02e1b50)), closes [#&#8203;1465](https://github.com/usekaneo/kaneo/issues/1465) - **web:** use Shiki's JavaScript regex engine to avoid WebAssembly ([09fb5d4](https://github.com/usekaneo/kaneo/commit/09fb5d446d687d3383e8006d9f15243832d4a252)) ##### Features - add web Sentry SDK with session replay and opt-in API tracing ([284d78b](https://github.com/usekaneo/kaneo/commit/284d78b352640025859bcb4bcc708b6815b7753b)) ### [`v2.12.2`](https://github.com/usekaneo/kaneo/blob/HEAD/CHANGELOG.md#2130-2026-08-05) [Compare Source](https://github.com/usekaneo/kaneo/compare/v2.12.1...v2.12.2) ##### Bug Fixes - **api:** block SSRF through the Gitea integration endpoints ([26ae20f](https://github.com/usekaneo/kaneo/commit/26ae20fff617f6dc28fe8d6ec26066c05ad4656b)) - **api:** reject traversal in finalized task image keys ([704daeb](https://github.com/usekaneo/kaneo/commit/704daeb43c1d4299f2320fb11cf2f297ab192aab)) - **api:** stop reflecting arbitrary origins in production ([99571c9](https://github.com/usekaneo/kaneo/commit/99571c9a4e14abfd0af55137524649897c6270df)) - **api:** stop returning integration secrets from the external-link route ([3ac5aa9](https://github.com/usekaneo/kaneo/commit/3ac5aa97fd73c930196952eeb0b2fdfd9925ab54)) - **gitea:** record the external link before publishing task.created ([2d5447a](https://github.com/usekaneo/kaneo/commit/2d5447ab0ccbaf196eae773d310152d155ed2614)), closes [#&#8203;1393](https://github.com/usekaneo/kaneo/issues/1393) - **github:** comment the task link on issues created from Kaneo ([dc31480](https://github.com/usekaneo/kaneo/commit/dc31480a1e22860d9064e9f6dee9bb40b3965efa)), closes [#&#8203;1406](https://github.com/usekaneo/kaneo/issues/1406) - **mcp:** bind streamable sessions to the user that created them ([86ee7fc](https://github.com/usekaneo/kaneo/commit/86ee7fca64b5a54a34710ae2f3162b5099d6aabf)) - **mcp:** store OAuth state in Postgres so multiple replicas work ([18ad8f5](https://github.com/usekaneo/kaneo/commit/18ad8f533591305cccf001ab1d519d0a3c922af0)), closes [#&#8203;1484](https://github.com/usekaneo/kaneo/issues/1484) - **web:** reject non-http URLs in attachment and issue-link nodes ([700da1b](https://github.com/usekaneo/kaneo/commit/700da1b2cef45da57b3a515df250e12977216b9f)) - **web:** show language names without region in the locale picker ([5540043](https://github.com/usekaneo/kaneo/commit/554004305d7081c76057e4b9eb14f9f124519e8f)) ##### Features - **web:** pick a project in the create-task modal when none is in scope ([7d20a3f](https://github.com/usekaneo/kaneo/commit/7d20a3fc5349944c3468e2e7afefebdc51c27d2f)), closes [#&#8203;1418](https://github.com/usekaneo/kaneo/issues/1418) ##### Performance Improvements - **web:** render list and backlog rows from the task payload ([6fc3f44](https://github.com/usekaneo/kaneo/commit/6fc3f44fb8566c6b76109dec06aa9b1df6a99cc1)), closes [#&#8203;1475](https://github.com/usekaneo/kaneo/issues/1475) [#&#8203;1422](https://github.com/usekaneo/kaneo/issues/1422) #### [2.12.2](https://github.com/usekaneo/kaneo/compare/v2.12.1...v2.12.2) (2026-08-04) ##### Bug Fixes - add date validation for task create/update to prevent Invalid Date in DB ([e968adf](https://github.com/usekaneo/kaneo/commit/e968adfe55324adaba2c5f7647f992c3e2e100d3)) - address code review feedback for date validation ([1236ab9](https://github.com/usekaneo/kaneo/commit/1236ab9786994e1d2bac0f0f96c4c046b2046f18)) - **api:** coderabbit nitpick ([019ac9e](https://github.com/usekaneo/kaneo/commit/019ac9eed6c32aa10970e6281054745cea75d554)) - **api:** coderabbit/qodo reviews ([22f6f8f](https://github.com/usekaneo/kaneo/commit/22f6f8fc253caa09b3b7b28f2283b54516b536f4)) - **api:** github install and label detachment bug ([6cb3748](https://github.com/usekaneo/kaneo/commit/6cb37485ce62a7fdd3f401eeb332472838eb2405)) - **api:** resolve bugs in api tests ([f62789c](https://github.com/usekaneo/kaneo/commit/f62789c67c6de71d7d678ac56ea1da0dbc6e4374)) - **api:** scope task aggregates by workspace join instead of project ID list ([ffb6bc6](https://github.com/usekaneo/kaneo/commit/ffb6bc6b7fbe9188cf1239ac838b12f18cd97f67)) - **api:** stop embedding task rows in the project list response ([7771d46](https://github.com/usekaneo/kaneo/commit/7771d46c57fbec33bd098bfacbac2dd3cad8570e)), closes [#&#8203;1037](https://github.com/usekaneo/kaneo/issues/1037) - apply triage follow-ups for [#&#8203;1461](https://github.com/usekaneo/kaneo/issues/1461), [#&#8203;1464](https://github.com/usekaneo/kaneo/issues/1464) and [#&#8203;1470](https://github.com/usekaneo/kaneo/issues/1470) ([a41e38d](https://github.com/usekaneo/kaneo/commit/a41e38d4df2d807e52191641951e151c3f2deb32)) - **auth:** let invited users without an account register ([1e55596](https://github.com/usekaneo/kaneo/commit/1e55596677ce177826fdf06b3cfb42883fad4598)), closes [#&#8203;1474](https://github.com/usekaneo/kaneo/issues/1474) - **ci:** registry description limit and idempotent MCP Registry publish ([1dea775](https://github.com/usekaneo/kaneo/commit/1dea7753087894c1fdf8931ffb72124fe2fd2fab)) - complete all 1598 translation keys for Hindi locale ([134317e](https://github.com/usekaneo/kaneo/commit/134317e0fdf0537821162cd5892c155a3f084584)) - CVE-2026-69192 security vulnerability ([d3aef28](https://github.com/usekaneo/kaneo/commit/d3aef283c98699a486f2109bdceda2a069217740)) - **deps:** align the better-auth override with 1.6.25 ([7db4dbb](https://github.com/usekaneo/kaneo/commit/7db4dbbe3941a7aea78089782e1f7bd2bbeda12e)) - **deps:** bump next to 15.5.21 to patch 8 disclosed advisories ([1eb3e51](https://github.com/usekaneo/kaneo/commit/1eb3e519adffd6e54d058c78e0fef29a696b08a5)) - **deps:** raise next override floor to 15.5.21 so the bump actually resolves ([702483d](https://github.com/usekaneo/kaneo/commit/702483dade937d5a7f4e8b072ae735b778da88d1)) - **email:** fix Biome formatting in password-reset template ([aeb23d9](https://github.com/usekaneo/kaneo/commit/aeb23d90f740938831ec584308e7f84ef8f26234)) - **email:** stop forcing SMTP auth when no credentials are set ([e048fb4](https://github.com/usekaneo/kaneo/commit/e048fb404cbd7525c0aca47c53bc4abd61c7dd27)), closes [#&#8203;1419](https://github.com/usekaneo/kaneo/issues/1419) - enforce bulk task permissions ([79872a3](https://github.com/usekaneo/kaneo/commit/79872a312822a96d58cf65f842f05a0d5fff4151)) - fail closed for mixed-workspace bulk tasks ([67827c4](https://github.com/usekaneo/kaneo/commit/67827c44a116af3d17fa17a13bc137960d1af9fb)) - **i18n:** translate invite-flow strings and language labels across locales ([4a82dd8](https://github.com/usekaneo/kaneo/commit/4a82dd89ad3d80bd279a3e0b71c267c1b04830a9)) - include labels in task export to prevent data loss on round-trip ([6545527](https://github.com/usekaneo/kaneo/commit/6545527979c30ff3d1fe1708cac45e248e686ffc)) - keep planned subtasks in backlog ([1f20eb9](https://github.com/usekaneo/kaneo/commit/1f20eb931e50cffcacae9367862708b809571223)) - move overrides to workspace config ([0c86e83](https://github.com/usekaneo/kaneo/commit/0c86e83fd28fe2c3fe072975f90c295784dc7022)) - persist task title activity atomically ([6a0210c](https://github.com/usekaneo/kaneo/commit/6a0210c57f06ae48dbd06a8934d96adc64dd8155)) - preserve bulk task validation responses ([a2a7672](https://github.com/usekaneo/kaneo/commit/a2a767252492fc481ca62812d04842f83559b512)) - prevent task number gaps during partial import failures ([dc45f26](https://github.com/usekaneo/kaneo/commit/dc45f26915f4458d7062fe8f90b0448dc3b2be1c)) - **project:** allow one-character names and keys ([5c8390e](https://github.com/usekaneo/kaneo/commit/5c8390e9af8f7dd49576dc14cdc51238d3543e95)) - resolve all TypeScript errors across api and web ([b49fb25](https://github.com/usekaneo/kaneo/commit/b49fb25092fe424acf2404aae8b0b96d240c28de)) - resolve workspace access from the id the handler acts on ([d0570ee](https://github.com/usekaneo/kaneo/commit/d0570ee9a98cbe7ed4ce1d139e40f8d25fc338e7)) - serve public-project assets to anonymous callers ([a483bd4](https://github.com/usekaneo/kaneo/commit/a483bd46341d7cc395de6a0d33cdac4c501abe7f)) - **tests:** update label test ([92f5aa7](https://github.com/usekaneo/kaneo/commit/92f5aa73d2651c972703e3192540b20d034878b1)) - translate remaining externalLinks.issue and branch keys to Hindi ([82f8883](https://github.com/usekaneo/kaneo/commit/82f888379768028d064430bb7d7c7d4bb8e8da12)) - wait for subtask status columns ([3a61705](https://github.com/usekaneo/kaneo/commit/3a6170546bb6108dbd89ad4ce8aab7233ba3d683)) - **web:** guard nullable task identifiers ([1c7366b](https://github.com/usekaneo/kaneo/commit/1c7366bb658b6c6505538507d4192b70033e7188)) - **web:** restore ResizeObserver stub and correct invite-flow comment ([e473a41](https://github.com/usekaneo/kaneo/commit/e473a4137777e5c5819681dd1a42a492751730f5)) - **web:** search tasks by issue identifier ([4c4ccf1](https://github.com/usekaneo/kaneo/commit/4c4ccf17e7a487a40aea9cae039daa29e6275642)) ##### Features - add Hindi (hi-IN) locale translation ([f837beb](https://github.com/usekaneo/kaneo/commit/f837beb3f073751c83671443bb97f2b707b65b76)) - add zh-CN locale ([8c210b9](https://github.com/usekaneo/kaneo/commit/8c210b92b3245afb59c8522bb1e92e6b84899a7b)) - **i18n:** add Italian (it-IT) translation ([9d7d327](https://github.com/usekaneo/kaneo/commit/9d7d32781c43302d60d73090f104ac10117b2cf9)) - **i18n:** add Vietnamese (vi-VN) locale ([c698c6c](https://github.com/usekaneo/kaneo/commit/c698c6c46bba10a7f2348286ecaaef37877afda1)) - **mcp:** publish to the official MCP Registry ([a34711e](https://github.com/usekaneo/kaneo/commit/a34711eb1aa63f64a67e428873ffb53e9563318e)) - **web:** add invitation link and clipboard helpers ([8b7d01e](https://github.com/usekaneo/kaneo/commit/8b7d01eb730e39e2d3da5074a6a954f8a1d6677d)) - **web:** surface the workspace invitation link in the UI ([e81c1c7](https://github.com/usekaneo/kaneo/commit/e81c1c738e5632ca0aa4238fd0cb57eaa9704fe0)) ##### Performance Improvements - **web:** avoid per-task kanban metadata requests ([990d70e](https://github.com/usekaneo/kaneo/commit/990d70ef634014e271206aaf2aca2c8a09828e23)) #### [2.12.1](https://github.com/usekaneo/kaneo/compare/v2.12.0...v2.12.1) (2026-07-30) ##### Features - **site:** add Jira, Trello, and Linear comparison pages for SEO ([f282e1f](https://github.com/usekaneo/kaneo/commit/f282e1f81d60a2823cc232ceaad1edbe87a7b80b)) - switch Cloud pricing to USD and replace Product Hunt button with Pricing ([3db23c9](https://github.com/usekaneo/kaneo/commit/3db23c972fffe736b37b1753de80af353e22c3a8)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNC4zIiwidXBkYXRlZEluVmVyIjoiNDQuMzUuMiIsInRhcmdldEJyYW5jaCI6ImZyZXNoLXN0YXJ0IiwibGFiZWxzIjpbXX0=-->
Renovate force-pushed renovate/kaneo from c0d885edda to d1c00dafeb 2026-08-07 20:54:41 +00:00 Compare
Renovate changed title from Update dependency kaneo to v2.13.0 to Update dependency kaneo to v2.14.0 2026-08-07 20:54:43 +00:00
Renovate changed title from Update dependency kaneo to v2.14.0 to Update dependency kaneo to v2.15.0 2026-08-09 02:01:29 +00:00
Renovate force-pushed renovate/kaneo from d1c00dafeb to a434cf666d 2026-08-09 02:01:30 +00:00 Compare
Renovate changed title from Update dependency kaneo to v2.15.0 to Update dependency kaneo to v2.16.1 2026-08-10 02:01:27 +00:00
Renovate force-pushed renovate/kaneo from a434cf666d to 047d5591b0 2026-08-10 02:01:27 +00:00 Compare
Renovate force-pushed renovate/kaneo from 047d5591b0 to ac8e6095b8 2026-08-11 02:01:18 +00:00 Compare
Renovate changed title from Update dependency kaneo to v2.16.1 to Update dependency kaneo to v2.17.1 2026-08-11 02:01:19 +00:00
Renovate force-pushed renovate/kaneo from ac8e6095b8 to 8780a119c4 2026-08-12 02:01:18 +00:00 Compare
Renovate changed title from Update dependency kaneo to v2.17.1 to Update dependency kaneo to v2.17.6 2026-08-12 02:01:20 +00:00
Renovate force-pushed renovate/kaneo from 8780a119c4 to 57d9d9060c 2026-08-13 02:01:03 +00:00 Compare
Renovate changed title from Update dependency kaneo to v2.17.6 to Update dependency kaneo to v2.18.0 2026-08-13 02:01:05 +00:00
Renovate force-pushed renovate/kaneo from 57d9d9060c to d22ffe7546 2026-08-16 20:13:23 +00:00 Compare
Renovate changed title from Update dependency kaneo to v2.18.0 to Update dependency kaneo to v2.19.1 2026-08-16 20:13:23 +00:00
Renovate added 1 commit 2026-08-20 02:01:28 +00:00
Update dependency kaneo to v2.20.0
ci/woodpecker/push/build-images Pipeline is running
851a2096e3
Renovate force-pushed renovate/kaneo from d22ffe7546 to 851a2096e3 2026-08-20 02:01:28 +00:00 Compare
Renovate changed title from Update dependency kaneo to v2.19.1 to Update dependency kaneo to v2.20.0 2026-08-20 02:01:30 +00:00
Lumpiasty merged commit ed3da857d5 into fresh-start 2026-08-22 22:14:53 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Lumpiasty/klaster#397