vikunja/pkg
kolaente 98f2893ffe fix(db): use WAL mode for SQLite and temp file for ephemeral databases
Three SQLite connection issues are fixed:

1. The refactoring in 26c0f71 accidentally dropped _busy_timeout from
   the file-based SQLite connection string. Without it, concurrent
   transactions get instant SQLITE_BUSY errors instead of waiting.

2. _txlock=immediate forced ALL transactions (including reads) to
   acquire the write lock at BEGIN, serializing all database access.
   WAL mode makes this unnecessary: readers use snapshots and never
   block writers, so the SHARED-to-RESERVED deadlock cannot occur.

3. In-memory shared cache (file::memory:?cache=shared) uses table-level
   locking where _busy_timeout is ineffective (returns SQLITE_LOCKED,
   not SQLITE_BUSY) and concurrent connections deadlock. Replace with a
   temp file using WAL mode for proper concurrency.
2026-03-03 10:41:19 +01:00
..
caldav fix(caldav): do not assume the first element is the VTODO component 2025-12-13 15:30:22 +01:00
cmd feat(cli): reorganize repair commands under unified 'vikunja repair' parent (#2300) 2026-02-25 11:50:09 +00:00
config refactor: remove typesense support 2026-02-25 12:15:28 +01:00
cron fix: correct license header references (#882) 2025-06-10 12:18:38 +02:00
db fix(db): use WAL mode for SQLite and temp file for ephemeral databases 2026-03-03 10:41:19 +01:00
doctor refactor: remove typesense support 2026-02-25 12:15:28 +01:00
events fix(events): only trigger task.updated once when marking task done 2025-11-16 11:01:15 +01:00
files feat(cli): reorganize repair commands under unified 'vikunja repair' parent (#2300) 2026-02-25 11:50:09 +00:00
health feat: introduce shared health check logic (#1073) 2025-07-02 21:01:41 +00:00
i18n chore(i18n): update translations via Crowdin 2026-02-21 01:09:54 +00:00
initialize refactor: remove typesense support 2026-02-25 12:15:28 +01:00
log fix(log): write each log category to its own file (#2206) 2026-02-08 15:22:58 +00:00
mail fix(mail): disable queue when mailer disabled (#2069) 2026-01-08 15:51:31 +01:00
metrics fix: correct license header references (#882) 2025-06-10 12:18:38 +02:00
migration refactor: remove typesense support 2026-02-25 12:15:28 +01:00
models fix: use MinPositionSpacing threshold in calculateNewPositionForTask (#2320) 2026-03-02 09:14:38 +01:00
modules fix(auth): use SameSite=None for refresh token cookie to fix desktop app 2026-03-02 13:54:10 +01:00
notifications fix: isolate deletion notifications into per-user transactions 2026-02-25 11:03:02 +01:00
plugins fix(deps): update module github.com/labstack/echo/v4 to v5 (#2131) 2026-01-24 20:38:32 +01:00
red fix: correct license header references (#882) 2025-06-10 12:18:38 +02:00
routes feat(api): enforce password validation on reset and update flows 2026-02-25 13:44:56 +01:00
swagger [skip ci] Updated swagger docs 2026-02-25 13:05:32 +00:00
user fix(auth): correctly delete older password reset tokens in cron 2026-02-27 14:44:26 +01:00
utils refactor(utils): extract ContainsPathTraversal to shared utils package 2026-02-25 13:01:00 +01:00
version fix: correct license header references (#882) 2025-06-10 12:18:38 +02:00
web fix(deps): update module github.com/labstack/echo/v4 to v5 (#2131) 2026-01-24 20:38:32 +01:00
webtests test(api): add tests for password validation in reset and update flows 2026-02-25 13:44:56 +01:00