Commit Graph

  • bf175dde6d
    fix(kanban): upsert race condition in kanban task bucket sync (#2938) kolaente 2026-06-19 10:09:00 +0200
  • 5310bd9d8b
    Merge branch 'main' into finish-subprojects Malcolm Smith 2026-06-18 23:44:14 -0700
  • a76cfd036c
    fix(kanban): qualify task_buckets table with configured schema in upsert Claude 2026-06-18 22:14:44 +0000
  • de674b5a2c
    refactor(kanban): parameterize only the conflict clause of the upsert Claude 2026-06-18 21:57:42 +0000
  • 5edc7b5160 fix: blur quick add input on escape Rashed Arman 2026-06-18 13:16:36 +0000
  • 9d18ba236f
    feat(time-tracking): add favicon indicator for active time tracking sessions (#2937) kolaente 2026-06-18 23:52:52 +0200
  • 693fbb52b5
    refactor(kanban): use a native SQL upsert for task buckets Claude 2026-06-18 21:36:34 +0000
  • ba566ee9bc
    fix(kanban): don't error moving a task into the done bucket when it already sits in another view's done bucket Claude 2026-06-18 21:27:36 +0000
  • c3a7bb3eb2
    fix: respect frontend base path for tracking favicon Claude 2026-06-18 21:26:22 +0000
  • 1e1e733c36 chore(deps): bump dompurify from 3.4.9 to 3.4.11 in /frontend dependabot[bot] 2026-06-18 21:08:47 +0000
  • 7e342af6f1
    fix: shrink the time tracking favicon dot further Claude 2026-06-18 21:20:35 +0000
  • e3b3963762
    fix: shrink the time tracking favicon dot Claude 2026-06-18 21:19:31 +0000
  • a31cc8513e
    chore(deps): bump dompurify from 3.4.9 to 3.4.11 in /frontend dependabot[bot] 2026-06-18 21:08:47 +0000
  • cfa61ccc7f
    refactor: use a static favicon for the time tracking dot Claude 2026-06-18 21:00:26 +0000
  • 5236e0c306 fix(notifications): use full user so notifications show display name kolaente 2026-06-17 19:44:36 +0200
  • 80bb9aadc1 chore(deps): update dev-dependencies to v20.10.6 renovate[bot] 2026-06-18 02:50:47 +0000
  • 86ec62d10b
    fix(frontend): scroll tall default modals instead of clipping their top kolaente 2026-06-18 22:24:47 +0200
  • 8ae5fb6bdd fix: blur quick add input on escape Rashed Arman 2026-06-18 13:16:36 +0000
  • b11d04726f
    feat: mark favicon with a red dot while time tracking is active Claude 2026-06-18 10:32:59 +0000
  • 72c38456ff feat: trim whitespace and handle empty entries for creator usernames in task filters benshi 2026-06-18 03:12:25 +0000
  • b0dbbe4565
    chore(deps): update dev-dependencies to v20.10.6 renovate[bot] 2026-06-18 02:50:47 +0000
  • 66b8ee4f18 feat: update autocomplete to filter tasks by users instead of assignees benshi 2026-06-18 02:41:40 +0000
  • 805482d646
    Merge branch 'main' into feat-filter-tasks-by-creator-username shiben 2026-06-18 10:28:12 +0800
  • 10bec10ed4 feat(projects): make duplicating shares opt-in kolaente 2026-06-17 23:35:48 +0200
  • 37a34cc5cf fix(notifications): log unexpected user refresh failures kolaente 2026-06-17 22:49:21 +0200
  • aac4dd845e refactor(notifications): refresh users via an explicit type switch kolaente 2026-06-17 22:47:38 +0200
  • 7f53be4105 fix(notifications): refresh embedded users when reading notifications kolaente 2026-06-17 21:35:25 +0200
  • 7b7c850dd8 refactor(tasks): drop in-memory task dedup, rely on unique index kolaente 2026-06-17 22:55:37 +0200
  • 99d025399c perf(tasks): batch task position existence check into one query kolaente 2026-06-17 22:55:32 +0200
  • 647f1f4def fix(migration): fail loudly if a deduplicated position pair has no row kolaente 2026-06-17 22:55:27 +0200
  • a61e594952 fix(tasks): prevent duplicate task_positions rows and stale identifiers kolaente 2026-06-17 15:52:15 +0200
  • 822554cf30 refactor(tasks): drop in-memory task dedup, rely on unique index kolaente 2026-06-17 22:55:37 +0200
  • efb103ce0f perf(tasks): batch task position existence check into one query kolaente 2026-06-17 22:55:32 +0200
  • 2be6b37df5 fix(migration): fail loudly if a deduplicated position pair has no row kolaente 2026-06-17 22:55:27 +0200
  • a6f9becc32 fix(notifications): log unexpected user refresh failures kolaente 2026-06-17 22:49:21 +0200
  • e49c3a8524 refactor(notifications): refresh users via an explicit type switch kolaente 2026-06-17 22:47:38 +0200
  • 9cad4f388c feat(api/v2): expose websocket endpoint under /api/v2 kolaente 2026-06-17 21:38:27 +0200
  • 40f2900e9d feat(api/v2): expose notifications atom feed in the OpenAPI spec kolaente 2026-06-17 21:38:16 +0200
  • 4614e18e7a refactor(feeds): extract atom feed builder + basic-auth validator for reuse kolaente 2026-06-17 21:37:54 +0200
  • 1a4f03bbc8 feat(api/v2): expose healthcheck as a documented endpoint kolaente 2026-06-17 21:37:48 +0200
  • 7c11c2dc29 feat(api/v2): port refresh-token endpoint to /api/v2 kolaente 2026-06-17 22:11:03 +0200
  • 20d8d23474
    chore(agents): remove CRUSH.md kolaente 2026-06-17 22:33:24 +0200
  • 0d4396cd8b feat(api/v2): port refresh-token endpoint to /api/v2 kolaente 2026-06-17 22:11:03 +0200
  • 2cc7c0b6f0 fix(frontend): auto-refresh relative dates as time passes kolaente 2026-06-17 21:42:21 +0200
  • 5b7924b1f6 fix(auth): return ErrAccountLocked for locked accounts on login kolaente 2026-06-12 11:08:36 +0200
  • a32d8d6492 fix(auth): roll back on commit failure in DeleteSession kolaente 2026-06-12 11:05:14 +0200
  • 9aa0687288 test(api/v2): cover v2 login, logout and OIDC gating kolaente 2026-06-12 10:28:36 +0200
  • 422d504a07 feat(api/v2): add OpenID Connect callback on /api/v2 kolaente 2026-06-12 10:28:36 +0200
  • d4ab438073 feat(api/v2): add login and logout on /api/v2 kolaente 2026-06-12 10:28:29 +0200
  • 78f79accb5 refactor(auth): extract transport-agnostic login, logout and OIDC cores kolaente 2026-06-12 10:28:21 +0200
  • 59a5a2c1e7 [skip ci] Updated swagger docs Frederick [Bot] 2026-06-17 19:43:01 +0000
  • 40156d0b60 fix(frontend): auto-refresh relative dates as time passes kolaente 2026-06-17 21:42:21 +0200
  • 9b271c23dd feat(api/v2): expose websocket endpoint under /api/v2 kolaente 2026-06-17 21:38:27 +0200
  • fbfea43f2b feat(api/v2): expose notifications atom feed in the OpenAPI spec kolaente 2026-06-17 21:38:16 +0200
  • be8a092fe3 refactor(feeds): extract atom feed builder + basic-auth validator for reuse kolaente 2026-06-17 21:37:54 +0200
  • 5c0e266042 feat(api/v2): expose healthcheck as a documented endpoint kolaente 2026-06-17 21:37:48 +0200
  • 0da207653b fix(notifications): refresh embedded users when reading notifications kolaente 2026-06-17 21:35:25 +0200
  • 998e33c267
    Merge 5c6995872b into cf456fb223 Harsh Patel 2026-06-17 21:20:33 +0200
  • 434b5d9fe3 chore(deps): update dev-dependencies to v10.5.0 renovate[bot] 2026-06-17 18:43:06 +0000
  • 30bb778e13
    chore(deps): update dev-dependencies to v10.5.0 renovate[bot] 2026-06-17 18:43:06 +0000
  • 55ca06ca3d fix(export): treat a missing export meta row as no export in the status kolaente 2026-06-17 14:25:40 +0200
  • 02e7a134cc fix(api): close the user data export reader after download kolaente 2026-06-17 14:25:03 +0200
  • 4b92f23329 fix(files): never cache file downloads in v1 or v2 kolaente 2026-06-17 14:24:41 +0200
  • ee8dbf82ba fix(api/v2): close export reader when commit fails before streaming kolaente 2026-06-12 11:08:53 +0200
  • 8c72e83a4d feat(api/v2): add user data export endpoints kolaente 2026-06-12 10:31:16 +0200
  • ac5e94252b feat(api/v2): add totp qr code endpoint kolaente 2026-06-12 10:31:06 +0200
  • ca4e747bed refactor(files): extract WriteFileDownload shared by attachment download kolaente 2026-06-12 10:31:01 +0200
  • cf456fb223 fix(kanban): count tasks in bucket, not filter total, for saved-filter bucket limits kolaente 2026-06-17 19:37:32 +0200
  • 8a255cbff6 fix(gantt): preserve horizontal scroll when focusing a task bar kolaente 2026-06-17 19:32:39 +0200
  • d714b64a0e fix(notifications): use full user so notifications show display name kolaente 2026-06-17 19:44:36 +0200
  • fb8b9c7e97 fix(kanban): count tasks in bucket, not filter total, for saved-filter bucket limits kolaente 2026-06-17 19:37:32 +0200
  • 3fc977c30e fix(gantt): preserve horizontal scroll when focusing a task bar kolaente 2026-06-17 19:32:39 +0200
  • 74a67f32e0 fix(tasks): prevent duplicate task_positions rows and stale identifiers kolaente 2026-06-17 15:52:15 +0200
  • 81ef9f42fe fix(auth): return ErrAccountLocked for locked accounts on login kolaente 2026-06-12 11:08:36 +0200
  • e32168117c fix(auth): roll back on commit failure in DeleteSession kolaente 2026-06-12 11:05:14 +0200
  • a0c5e7099e test(api/v2): cover v2 login, logout and OIDC gating kolaente 2026-06-12 10:28:36 +0200
  • b135486706 feat(api/v2): add OpenID Connect callback on /api/v2 kolaente 2026-06-12 10:28:36 +0200
  • 5395bd37f3 feat(api/v2): add login and logout on /api/v2 kolaente 2026-06-12 10:28:29 +0200
  • 1aa3f3b093 refactor(auth): extract transport-agnostic login, logout and OIDC cores kolaente 2026-06-12 10:28:21 +0200
  • 4aa8cce4d8 fix(export): treat a missing export meta row as no export in the status kolaente 2026-06-17 14:25:40 +0200
  • 7c87cbe23f fix(api): close the user data export reader after download kolaente 2026-06-17 14:25:03 +0200
  • 91b447f020 fix(files): never cache file downloads in v1 or v2 kolaente 2026-06-17 14:24:41 +0200
  • b0c7bddb03 fix(api/v2): close export reader when commit fails before streaming kolaente 2026-06-12 11:08:53 +0200
  • 0bc930829d feat(api/v2): add user data export endpoints kolaente 2026-06-12 10:31:16 +0200
  • b40635c3f4 feat(api/v2): add totp qr code endpoint kolaente 2026-06-12 10:31:06 +0200
  • f3ca204d67 refactor(files): extract WriteFileDownload shared by attachment download kolaente 2026-06-12 10:31:01 +0200
  • c4819631e2 test(api/v2): use cross-engine datetime literals in testing webtest kolaente 2026-06-17 13:55:50 +0200
  • 13f1a13367 fix(db): interpolate table identifiers in truncate instead of binding them kolaente 2026-06-17 13:55:50 +0200
  • 4737114b12 feat(api/v2): add e2e testing-support endpoints on /api/v2 kolaente 2026-06-12 10:11:00 +0200
  • 5555950f03 refactor(testing): extract e2e fixture reset/truncate into shared package kolaente 2026-06-12 10:10:53 +0200
  • ffcf92936a chore(deps): update dev-dependencies renovate[bot] 2026-06-17 11:38:59 +0000
  • 83f3b51d67 test(api/v2): use cross-engine datetime literals in testing webtest kolaente 2026-06-17 13:55:50 +0200
  • 7c2b139825 fix(db): interpolate table identifiers in truncate instead of binding them kolaente 2026-06-17 13:55:50 +0200
  • 03e27dacf2
    chore(deps): update dev-dependencies renovate[bot] 2026-06-17 11:38:59 +0000
  • c5d615843d test(api/v2): cover background download and unsplash proxy routes kolaente 2026-06-12 11:48:55 +0200
  • 5ccbd0d74e feat(api/v2): add project background download and unsplash proxies kolaente 2026-06-12 11:48:47 +0200
  • 8bec654595 refactor(background): extract download + unsplash-proxy logic for reuse kolaente 2026-06-12 11:48:41 +0200
  • ea4bb09679 chore(deps): update dev-dependencies renovate[bot] 2026-06-17 06:50:20 +0000
  • 0655dde130
    chore(deps): update dev-dependencies renovate[bot] 2026-06-17 06:50:20 +0000
  • 5c6995872b
    Merge branch 'main' into feat/blocked-tasks-blocking Harsh Patel 2026-06-17 10:08:21 +0530