vikunja/pkg
kolaente a9adc3490d
fix(positions): detect and repair duplicate task positions automatically (#1998)
Relates to:
https://community.vikunja.io/t/reordering-not-possible-position-value-the-same-for-different-tasks/4078

Duplicate positions can occur due to race conditions or historical bugs, causing tasks to appear in the wrong order or jump around when the page is refreshed.

This change adds a `repair-task-positions` CLI command to detect and resolve task position conflicts, with dry-run preview option.
Also implemented automatic conflict detection and resolution to ensure
unique task positions.

🐰 Positions once conflicted, clustered tight,
But now we nudge them back into the light!
MinSpacing guards precision from decay,
While conflicts heal and duplicates give way. 
2025-12-20 19:38:28 +01:00
..
caldav fix(caldav): do not assume the first element is the VTODO component 2025-12-13 15:30:22 +01:00
cmd fix(positions): detect and repair duplicate task positions automatically (#1998) 2025-12-20 19:38:28 +01:00
config fix(files): upload should work with vhost style (#1994) 2025-12-16 20:32:15 +00:00
cron fix: correct license header references (#882) 2025-06-10 12:18:38 +02:00
db fix(kanban): repeating tasks dates won't update when moved in done bucket (#1638) 2025-11-14 16:57:53 +00:00
events fix(events): only trigger task.updated once when marking task done 2025-11-16 11:01:15 +01:00
files fix(files): upload should work with vhost style (#1994) 2025-12-16 20:32:15 +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 2025-12-12 00:59:39 +00:00
initialize feat: add S3 file storage support (#1688) 2025-11-06 08:37:04 +01:00
log feat: move to slog for logging 2025-07-21 18:15:39 +02:00
mail feat: add thread IDs to task notification emails for client-side threading (#1826) 2025-11-15 18:58:32 +01:00
metrics fix: correct license header references (#882) 2025-06-10 12:18:38 +02:00
migration fix: handle MySQL 8 CREATE INDEX without IF NOT EXISTS support (#1903) 2025-11-28 15:57:54 +00:00
models fix(positions): detect and repair duplicate task positions automatically (#1998) 2025-12-20 19:38:28 +01:00
modules feat: format user mentions with display names in email notifications (#1930) 2025-12-10 12:39:05 +01:00
notifications feat: format user mentions with display names in email notifications (#1930) 2025-12-10 12:39:05 +01:00
plugins feat(plugins): allow plugins to register routes 2025-08-01 17:06:02 +02:00
red fix: correct license header references (#882) 2025-06-10 12:18:38 +02:00
routes fix: ensure API consistency for /tasks and empty array responses (#1988) 2025-12-15 15:34:13 +00:00
swagger [skip ci] Updated swagger docs 2025-12-15 15:44:47 +00:00
user fix: properly quote email sender names containing @ symbols (#1768) 2025-11-07 11:44:24 +01:00
utils chore(deps): update golangci-lint to 2.6.0 (#1737) 2025-10-31 17:28:52 +00:00
version fix: correct license header references (#882) 2025-06-10 12:18:38 +02:00
web fix: ensure API consistency for /tasks and empty array responses (#1988) 2025-12-15 15:34:13 +00:00
webtests fix: ensure API consistency for /tasks and empty array responses (#1988) 2025-12-15 15:34:13 +00:00