kolaente
5cdc785b49
fix(api/v2): return ErrProjectDoesNotExist for unknown project identifiers
2026-06-10 10:12:09 +00:00
kolaente
0a879e56a8
feat(api/v2): add task CRUD on /api/v2
2026-06-10 10:12:09 +00:00
kolaente
4316554b27
docs(api/v2): tag task fields for the v2 schema
2026-06-10 10:12:09 +00:00
kolaente
328de89c0b
feat(api/v2): add bulk label replacement on /api/v2
2026-06-10 11:56:05 +02:00
kolaente
0e0ececa2d
docs(api/v2): tag bulk label fields for the v2 schema
2026-06-10 11:56:05 +02:00
kolaente
25a294d7bc
feat(api/v2): add task position updates on /api/v2
2026-06-10 11:55:51 +02:00
kolaente
a6a073329f
docs(api/v2): tag task position fields for the v2 schema
2026-06-10 11:55:51 +02:00
kolaente
e16d120236
fix(time-tracking): cap smart-fill start at now so the range is never inverted
...
Smart-fill set the From time to the configured default start (09:00) when there
was no recent entry to continue from. Before that time of day the default lands
in the future, after the To time of now, producing an inverted range the backend
rejects (end_time before start_time). The save then failed silently and the
entry never appeared.
This surfaced as a flaky time-tracking e2e suite: the smart-fill specs failed
only when CI happened to run before 09:00 UTC.
2026-06-10 11:47:47 +02:00
renovate[bot]
6d505e360b
chore(deps): update dev-dependencies to v40.10.3
2026-06-10 11:47:27 +02:00
Frederick [Bot]
8502c541a6
chore(i18n): update translations via Crowdin
2026-06-10 00:33:40 +00:00
Frederick [Bot]
12f290905a
[skip ci] Updated swagger docs
2026-06-09 23:32:10 +00:00
kolaente
1e82c62ff7
feat(api/v2): add reactions on /api/v2
2026-06-09 21:34:22 +00:00
kolaente
f5e7e9ddde
docs(api/v2): tag reaction fields for the v2 schema
2026-06-09 21:34:22 +00:00
kolaente
2e02fe11ac
feat(api/v2): add task relations on /api/v2
2026-06-09 20:42:00 +00:00
kolaente
da76d393d9
docs(api/v2): tag task relation fields for the v2 schema
2026-06-09 20:42:00 +00:00
kolaente
5c960fccd5
feat(api/v2): add bulk task updates on /api/v2
2026-06-09 20:13:02 +00:00
kolaente
711545e9f2
docs(api/v2): tag bulk task fields for the v2 schema
2026-06-09 20:13:02 +00:00
kolaente
1aa9493bc3
feat(api/v2): add project duplication on /api/v2
2026-06-09 20:11:43 +00:00
kolaente
d5bcbe39b4
docs(api/v2): tag project duplication fields for the v2 schema
2026-06-09 20:11:43 +00:00
kolaente
51e5c86f69
feat(api/v2): add kanban task-bucket moves on /api/v2
2026-06-09 20:01:20 +00:00
kolaente
9eca20fe43
docs(api/v2): tag task bucket fields for the v2 schema
2026-06-09 20:01:20 +00:00
kolaente
aa144b9a39
feat(api/v2): add task read-status marking on /api/v2
2026-06-09 19:50:58 +00:00
kolaente
bf2a65dcaf
feat(api/v2): add bulk assignee replacement on /api/v2
2026-06-09 19:42:16 +00:00
kolaente
732cd115a5
docs(api/v2): tag bulk assignee fields for the v2 schema
2026-06-09 19:42:16 +00:00
renovate[bot]
cb0d24dae1
chore(deps): update dev-dependencies to v8.61.0
2026-06-09 11:47:14 +00:00
Claude
c9c2c58c16
feat(labels): let bot owners manage labels created by their bots
...
Bot owners inherit read/update/delete permission on labels created by
bots they own, mirroring the bot-owner branch already used by API tokens
(see api_tokens_permissions.go). Without this, a label a bot creates is
permanently locked to that bot and the human owner cannot maintain it.
https://claude.ai/code/session_016x6mUPJuuQEeXpHY814iLh
2026-06-09 11:40:04 +00:00
kolaente
e1512b6b53
chore(deps): update devenv
2026-06-09 10:54:20 +02:00
Frederick [Bot]
df6a56b195
chore(i18n): update translations via Crowdin
2026-06-09 00:26:57 +00:00
Frederick [Bot]
9e181bfc55
[skip ci] Updated swagger docs
2026-06-08 14:15:20 +00:00
kolaente
00bbdbf95b
refactor(time-tracking): drop the now-redundant duration clamp in the entry list
2026-06-08 13:54:09 +00:00
kolaente
0bd7f956f5
fix(time-tracking): reject inverted time-entry intervals
2026-06-08 13:54:09 +00:00
kolaente
4390af4773
test(time-tracking): add end-to-end coverage
2026-06-08 13:54:09 +00:00
kolaente
2d334e56c7
i18n(time-tracking): add the time-tracking UI strings
2026-06-08 13:54:09 +00:00
kolaente
7c021dd663
feat(time-tracking): configure the smart-fill start time in settings
2026-06-08 13:54:09 +00:00
kolaente
e948b191b0
feat(time-tracking): add the time-tracking view
2026-06-08 13:54:09 +00:00
kolaente
2ef898e89d
feat(time-tracking): add the task-detail time-tracking section
2026-06-08 13:54:09 +00:00
kolaente
8febfac742
feat(time-tracking): add the sidebar navigation entry
2026-06-08 13:54:09 +00:00
kolaente
212d891fa1
feat(time-tracking): show a running-elsewhere badge in the header
2026-06-08 13:54:09 +00:00
kolaente
1832d0d3ee
feat(time-tracking): add the timer badge
2026-06-08 13:54:09 +00:00
kolaente
bb4f19da27
feat(time-tracking): add the time-entry list
2026-06-08 13:54:09 +00:00
kolaente
ab8189e927
feat(time-tracking): add the time-entry form
2026-06-08 13:54:09 +00:00
kolaente
8c34676946
feat(time-tracking): extract the smart-fill start computation
2026-06-08 13:54:09 +00:00
kolaente
e4b0a487fc
feat(date): accept a null modelValue in DatepickerWithRange
2026-06-08 13:54:09 +00:00
kolaente
8839c296a2
feat(date): show the matching preset name on the date-range button
2026-06-08 13:54:09 +00:00
kolaente
27bb80d11a
feat(input): add quick-select shortcuts to the Datepicker
2026-06-08 13:54:09 +00:00
kolaente
43d0203358
feat(time-tracking): add the time-tracking store
2026-06-08 13:54:09 +00:00
kolaente
80c21e6f40
feat(time-tracking): add the v2 time-entry service
2026-06-08 13:54:09 +00:00
kolaente
565bf97294
refactor(config): add PRO_FEATURE constants for licensed features
2026-06-08 13:54:09 +00:00
kolaente
4a558fc57a
fix(api/v2): expose v2-only token route groups via the routes endpoint
2026-06-08 13:54:09 +00:00
kolaente
74510bb00a
fix(api/v2): group time-entries token routes under their own scope
2026-06-08 13:54:09 +00:00