Commit Graph

2780 Commits

Author SHA1 Message Date
Frederick [Bot] a8d3594ceb chore(i18n): update translations via Crowdin 2026-02-20 01:12:20 +00:00
kolaente bc2f7e5840
fix: break long continuous strings in editor to prevent overflow
Fixes https://github.com/go-vikunja/vikunja/issues/2266
2026-02-19 16:11:43 +01:00
kolaente df05c51457
fix: clamp gantt bar title position when task starts before visible range
Resolves go-vikunja/vikunja#149
2026-02-19 16:08:52 +01:00
kolaente 7862651b12
fix: don't show export ready message when no export exists
The API returns an empty object {} with 200 status when no export
exists. This truthy value was being set as exportInfo, causing the
"ready for download" message and button to render with a blank date.
2026-02-19 16:01:32 +01:00
William Guinaudie bf8138ec3c
feat: add discard and reload confirmation modal (#2154) 2026-02-19 14:27:27 +01:00
kolaente 8144560dd7 test(comments): add e2e tests for comment sort order
Cover default order, toggle to newest-first, new comment insertion
position, scroll-into-view behaviour, pagination with sort order,
initial-load shortcut, setting persistence across reloads, and
pre-saved setting on page load.
2026-02-19 14:20:52 +01:00
kolaente 6555595a5c feat(comments): add sort order toggle for task comments
Allow users to switch between oldest-first and newest-first comment
ordering via a toggle button in the comments heading. The preference is
persisted as a frontend setting (commentSortOrder) and passed to the API
as the order_by query parameter so pagination works correctly.

When all comments fit on a single page, toggling reverses them
client-side to avoid an extra API call. New comments are inserted at the
correct position based on the active sort order, and in newest-first
mode the view scrolls to the top after adding a comment.

Link-share users fall back to a local (non-persisted) sort order since
they cannot save user settings.
2026-02-19 14:20:52 +01:00
kolaente b64926be73
chore(deps): update minimatch to ^10.2.1 via pnpm overrides
Add pnpm overrides in frontend and desktop to consolidate all
transitive minimatch versions (3.1.2, 5.1.6, 9.0.1, 9.0.5, 10.1.1)
to 10.2.1, resolving the known ReDoS vulnerability in older versions.
2026-02-19 14:20:29 +01:00
renovate[bot] 37a013c472 chore(deps): update dev-dependencies 2026-02-19 13:08:14 +01:00
kolaente 50d7458519 feat(attachments): open file picker directly from sidebar button
Clicking the sidebar "Attachments" button (or pressing `f`) now opens
the browser file picker directly, eliminating the redundant two-step
flow of first revealing the section and then clicking upload.
2026-02-19 12:56:46 +01:00
kolaente 362962e81e fix(gantt): only persist dates that actually exist on partial-date tasks
Previously drag/resize always set both startDate and endDate, which
would persist the synthetic 7-day span and convert an open-ended task
into a fully-dated one. Now only the date fields that originally exist
on the task are updated.
2026-02-18 23:04:21 +01:00
kolaente ceb62c63d3 refactor(gantt): extract GanttBarDateType as reusable type 2026-02-18 23:04:21 +01:00
kolaente 6f8be0905f fix(gantt): sync task updates from detail view back to gantt chart
The Gantt chart maintains its own local task map, separate from the
Pinia task store. When a task is edited in the detail modal, the
update was not propagated to the Gantt's map. Add a lastUpdatedTask
signal to the task store and watch it in useGanttTaskList.
2026-02-18 23:04:21 +01:00
kolaente 6d6a1deba4 feat(gantt): right-align text for endOnly partial-date bars 2026-02-18 23:04:21 +01:00
kolaente 2bf99cf2d0 chore: fix lint issue from gantt partial dates feature 2026-02-18 23:04:21 +01:00
kolaente 65f92ac8d3 feat(gantt): update drag/resize to handle partial-date task updates 2026-02-18 23:04:21 +01:00
kolaente 29e77b44e1 feat(gantt): add i18n strings for partial-date accessibility 2026-02-18 23:04:21 +01:00
kolaente 5e69ee43fd feat(gantt): update API filter to fetch tasks with due_date or end_date 2026-02-18 23:04:21 +01:00
kolaente 941c4f10d7 feat(gantt): render partial-date bars with gradient fade effect 2026-02-18 23:04:21 +01:00
kolaente 6b5ab85d40 feat(gantt): handle tasks with partial dates in transformation and filtering 2026-02-18 23:04:21 +01:00
kolaente eefa48052b feat(gantt): add dateType field to GanttBarModel meta 2026-02-18 23:04:21 +01:00
renovate[bot] 31eda396e2
chore(deps): update dev-dependencies (#2257)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[electron-builder](https://redirect.github.com/electron-userland/electron-builder)
([source](https://redirect.github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder))
| [`26.8.0` →
`26.8.1`](https://renovatebot.com/diffs/npm/electron-builder/26.8.0/26.8.1)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/electron-builder/26.8.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/electron-builder/26.8.0/26.8.1?slim=true)
|
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) |
[`20.6.1` →
`20.6.2`](https://renovatebot.com/diffs/npm/happy-dom/20.6.1/20.6.2) |
![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/20.6.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/20.6.1/20.6.2?slim=true)
|

---

### Release Notes

<details>
<summary>electron-userland/electron-builder (electron-builder)</summary>

###
[`v26.8.1`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/electron-builder/CHANGELOG.md#2681)

[Compare
Source](https://redirect.github.com/electron-userland/electron-builder/compare/electron-builder@26.8.0...electron-builder@26.8.1)

##### Patch Changes

<details><summary>Updated 3 dependencies</summary>

<small>


[`4edd695`](4edd695045)
[`8940ec6`](8940ec63ba)
[`4edd695`](4edd695045)
[`dde4309`](dde4309b91)

</small>

- `app-builder-lib@26.8.1`
- `builder-util@26.8.1`
- `dmg-builder@26.8.1`

</details>

</details>

<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>

###
[`v20.6.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v20.6.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v20.6.1...v20.6.2)

##### :construction\_worker\_man: Patch fixes

- Update entities package version to resolve missing export for vue and
vue-compat v3.5 - By
**[@&#8203;acollins1991](https://redirect.github.com/acollins1991)** in
task
[#&#8203;2066](https://redirect.github.com/capricorn86/happy-dom/issues/2066)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMi4wIiwidXBkYXRlZEluVmVyIjoiNDMuMjIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-18 15:44:19 +00:00
Ian Driver 48074d2358
feat: add optional project column to table view (#2182)
Adds a Project column to the table view, useful when viewing tasks
across multiple projects (e.g. in saved filters).

Disabled by default to keep the current behavior.

Co-authored-by: 2ZZ <ian@driv3r.uk>
2026-02-18 15:29:51 +00:00
kolaente 2cf69c7503
chore(deps): upgrade markdown-it to 14.1.1 2026-02-18 10:22:46 +01:00
kolaente 14628ca182
chore(deps): upgrade qs to 6.15.0 2026-02-18 10:21:32 +01:00
renovate[bot] f67802721a chore(deps): update dependency @vue/eslint-config-typescript to v14.7.0 2026-02-17 15:38:34 +01:00
Martin Lindvik e3695c17c6
feat: add Swedish for language selection (#2248)
The Swedish translations were finished on crowdin recently but I noticed
that the language selection was still missing so I went ahead and added
it.
2026-02-17 14:32:01 +00:00
renovate[bot] 7b7b883139 chore(deps): pin dependency eslint-plugin-depend to 1.4.0 2026-02-17 15:19:07 +01:00
kolaente e6ae87d703 chore: downgrade depend/ban-dependencies to warning 2026-02-17 12:00:31 +01:00
kolaente 2fe66c8944 feat: add eslint-plugin-depend to frontend 2026-02-17 12:00:31 +01:00
renovate[bot] c3b760ec04 chore(deps): update dev-dependencies to v8.56.0 2026-02-16 21:09:53 +01:00
kolaente 17360a820c
fix: correct indentation in API tokens table after thead/tbody wrap 2026-02-16 11:45:45 +01:00
kolaente b66b75f5be
fix: wrap API tokens table rows in thead and tbody elements 2026-02-16 10:52:51 +01:00
kolaente 30e53dbd9f
fix: reset group permission checkboxes when creating a new API token
The group-level "select all" checkboxes (e.g. "Labels", "Backgrounds")
were not reset after creating a token, causing them to appear visually
checked when opening the form again even though the individual
permissions were unchecked.

Ref: https://community.vikunja.io/t/token-creation-malfunction-in-ticking-system/4318
2026-02-16 10:02:50 +01:00
renovate[bot] ad1d769f5b chore(deps): update dependency caniuse-lite to v1.0.30001770 2026-02-15 19:53:52 +01:00
renovate[bot] e8d8f9cbec chore(deps): update dependency eslint-plugin-vue to v10.8.0 2026-02-14 20:16:39 +01:00
renovate[bot] 5a3c17aed1 chore(deps): update dev-dependencies 2026-02-13 19:02:57 +01:00
kolaente 0e4d3ef663 test(e2e): add Playwright test for avatar cache invalidation
Uploads two different avatars in sequence and verifies the header
avatar src changes after the second upload. This confirms both the
backend cache (via DelPrefix) and the frontend cache are properly
invalidated when a new avatar is uploaded.
2026-02-13 09:31:28 +01:00
Frederick [Bot] 1e2b861ea5 chore(i18n): update translations via Crowdin 2026-02-12 01:15:53 +00:00
renovate[bot] 016229faad chore(deps): update dev-dependencies 2026-02-11 22:37:26 +01:00
rhclayto b196c986cd
feat: use credentials when accessing PWA manifest (#2218) 2026-02-11 22:28:52 +01:00
renovate[bot] b25243ef62 chore(deps): update dependency happy-dom to v20.5.1 2026-02-11 22:24:47 +01:00
dependabot[bot] ba84ac2f70 chore(deps): bump axios from 1.13.2 to 1.13.5 in /frontend
Bumps [axios](https://github.com/axios/axios) from 1.13.2 to 1.13.5.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.2...v1.13.5)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-11 12:36:11 +01:00
renovate[bot] aec05b12eb chore(deps): update dev-dependencies 2026-02-11 09:56:20 +01:00
Frederick [Bot] be4fb77981 chore(i18n): update translations via Crowdin 2026-02-10 01:25:29 +00:00
kolaente ed5dfa1ad4 fix(gantt): render done tasks with strikethrough and reduced opacity
The gantt chart rebuild lost the visual distinction for completed tasks.
Restore strikethrough on task labels and add reduced opacity on bars
for done tasks.

Regression introduced in the gantt chart rebuild in 5fc255cb3.

Resolves #2211
2026-02-09 15:28:48 +01:00
kolaente dd0b82f00a fix(task): use DOMParser in task glance tooltip description preview
Replace innerHTML on a detached element with DOMParser for extracting
plain text from task descriptions.
2026-02-09 11:01:38 +01:00
Frederick [Bot] 3c2977b126 chore(i18n): update translations via Crowdin 2026-02-09 01:16:51 +00:00
kolaente e90cb2631d fix(auth): remove unnecessary fields from JWT token payloads
Remove email, name, emailRemindersEnabled, and isLocalUser from user JWT
claims, and isLocalUser from link share JWT claims. These fields are never
used from the token - the backend always fetches the full user from the
database by ID, and the frontend fetches user data from the /user API
endpoint immediately after login.

Also simplify GetUserFromClaims to only extract id and username, and
remove the now-unnecessary email override in the frontend's
refreshUserInfo.
2026-02-08 21:30:07 +01:00
kolaente eb369cf3ee fix: handle attachment upload errors with user-visible notifications 2026-02-08 15:48:04 +01:00
kolaente 7256a14194 fix: format attachment upload error messages as readable strings 2026-02-08 15:48:04 +01:00
kolaente 8830dc56ad chore(deps): update lodash to 4.17.23 2026-02-08 11:35:27 +01:00
kolaente 5cb1787dd6 chore(deps): update @isaacs/brace-expansion to 5.0.1 2026-02-08 11:31:22 +01:00
kolaente cdca790325 fix: guard against undefined route.name in auth layout check
route.name can be undefined during initial route resolution or for
unnamed routes. Without this guard, AUTH_ROUTE_NAMES.has() would
return false and the authenticated layout could flash briefly.
2026-02-06 10:58:50 +01:00
kolaente e9a6abfe44 refactor: extract auth route names into shared constant
Move the list of authentication route names (login, register, password
reset, openid, link-share) into a shared constant in
src/constants/authRouteNames.ts. Use it in both App.vue (layout gate)
and router/index.ts (auth redirect guard) to keep them in sync.
2026-02-06 10:58:50 +01:00
kolaente 5d9f62cc93 fix: prevent auth layout swap while still on login/register route
The v-if in App.vue switches to the authenticated layout (navbar +
sidebar) as soon as authStore.authUser becomes truthy. But Vue's
reactivity flush runs before the await continuation in submit(), so
the layout swaps while the route is still /login, causing the login
form to flash inside the authenticated shell for ~250ms.

Fix by adding a route check: don't show the authenticated layout while
the current route is an auth page (login, register, password reset,
openid). The NoAuthWrapper stays visible until redirectIfSaved()
navigates away, then the authenticated layout renders cleanly.
2026-02-06 10:58:50 +01:00
kolaente 0e2ea5c42a fix: avoid clearing saved redirect in onBeforeMount to prevent race with submit
When Login.vue re-mounts inside the authenticated layout after a
successful login, its onBeforeMount hook fires again. If it calls
redirectIfSaved(), it clears the saved route from localStorage before
the submit() handler's redirectIfSaved() can use it, causing a redirect
to home instead of the saved route. Use router.push({name: 'home'})
directly since the only purpose here is to redirect already-authenticated
users away from the login page.
2026-02-06 10:58:50 +01:00
kolaente b3e95e9f4e test: add E2E test for login form flash regression 2026-02-06 10:58:50 +01:00
kolaente dcff454755 fix: redirect immediately after registration to prevent form flash in app shell 2026-02-06 10:58:50 +01:00
kolaente 8bccf21a81 fix: redirect immediately after login to prevent form flash in app shell 2026-02-06 10:58:50 +01:00
kolaente 77b8403c24 fix: iterate past rejected middle matches in matchDateAtBoundary()
When the first regex match is a rejected middle-of-text date, continue
searching for subsequent matches instead of returning null. This fixes
cases like "The 9/11 Report due 10/12" where 9/11 is rejected but
10/12 at the end should still be parsed.
2026-02-06 10:57:50 +01:00
kolaente 3f0bf71d30 fix: allow middle-of-text dates when followed by time expressions (#2195)
Reworked matchDateAtBoundary() to use a single regex pass instead of
two-pass start/end anchoring. Middle-of-text matches are now accepted
when followed by a time expression (at/@ prefix), so inputs like
"meeting 9/11 at 10:00" still parse correctly while "The 9/11 Report"
is rejected.
2026-02-06 10:57:50 +01:00
kolaente cee258edc3 refactor: remove unnecessary comment from getDateFromText() 2026-02-06 10:57:50 +01:00
kolaente 61448bb028 refactor: remove unnecessary flags parameter from matchDateAtBoundary() 2026-02-06 10:57:50 +01:00
kolaente c544886524 test: add positive boundary tests for date parsing (#2195) 2026-02-06 10:57:50 +01:00
kolaente 829b10bfd2 test: add dot-separated middle-of-text date false positive test (#2195) 2026-02-06 10:57:50 +01:00
kolaente a82efa01b5 fix: restrict numeric date regex matching to text boundaries (#2195) 2026-02-06 10:57:50 +01:00
kolaente 1013305fc6 feat: add matchDateAtBoundary() helper for position-aware date matching (#2195) 2026-02-06 10:57:50 +01:00
kolaente e9b10e67f3 test: add failing tests for middle-of-text date false positives (#2195) 2026-02-06 10:57:50 +01:00
kolaente b741c2d891 fix: add touch CSS properties to list view for mobile drag-and-drop
Adds user-select, touch-action, and webkit-touch-callout CSS to the list
view's draggable task items, matching what KanbanCard.vue already has.

Without these properties, the browser's native long-press text selection
fires before SortableJS's 1-second touch delay expires, preventing drag
from ever starting on mobile devices.

Ref: https://community.vikunja.io/t/missing-positioning-option-in-list-view/4278
2026-02-05 23:51:38 +01:00
Frederick [Bot] 1ddb4f1438 chore(i18n): update translations via Crowdin 2026-02-03 01:15:10 +00:00
Frederick [Bot] 2becfcc597 chore(i18n): update translations via Crowdin 2026-01-31 01:08:04 +00:00
rhclayto cf029cef0c
feat: add option to send Basic Auth header with webhook requests (#2137)
Resolves https://github.com/go-vikunja/vikunja/issues/2136
Docs PR: https://github.com/go-vikunja/website/pull/284
2026-01-30 15:07:31 +01:00
Frederick [Bot] f7503c0bfe chore(i18n): update translations via Crowdin 2026-01-29 01:11:11 +00:00
kolaente e4b99dd31f
fix(nav): show shared sub-projects in sidebar when the parent is inaccessible (#2176)
Fixes #2175
2026-01-28 16:09:46 +00:00
kolaente e5da54e58a fix(editor): prevent crash when exiting edit mode in tiptap
Use v-show instead of v-if for EditorToolbar and BubbleMenu to avoid
a race condition between Vue's DOM reconciliation and tiptap's internal
DOM manipulation during unmount. This fixes the "Cannot read properties
of null (reading 'insertBefore')" error that occurred when saving a
task description.

Adds regression test to verify the fix.

Upstream issue: https://github.com/ueberdosis/tiptap/issues/7342
Fixes: https://github.com/go-vikunja/vikunja/issues/1770
2026-01-27 14:03:02 +01:00
renovate[bot] f216fea2b3 fix(deps): update tiptap to v3.17.0 2026-01-27 14:03:02 +01:00
kolaente 72a928dcce chore: use correct repo and issue url 2026-01-26 12:21:24 +01:00
renovate[bot] 662f3a1ea8
chore(deps): update dev-dependencies (major) (#1375) 2026-01-25 21:54:47 +01:00
renovate[bot] 233908b30b
chore(deps): update dependency sass-embedded to v1.97.3 (#2150)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [sass-embedded](https://redirect.github.com/sass/embedded-host-node) |
[`1.97.2` →
`1.97.3`](https://renovatebot.com/diffs/npm/sass-embedded/1.97.2/1.97.3)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/sass-embedded/1.97.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sass-embedded/1.97.2/1.97.3?slim=true)
|

---

### Release Notes

<details>
<summary>sass/embedded-host-node (sass-embedded)</summary>

###
[`v1.97.3`](https://redirect.github.com/sass/embedded-host-node/blob/HEAD/CHANGELOG.md#1973)

[Compare
Source](https://redirect.github.com/sass/embedded-host-node/compare/1.97.2...1.97.3)

- Fix a bug where nesting an at-rule within multiple style rules in
plain CSS
  could cause outer style rules to be omitted.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi4xIiwidXBkYXRlZEluVmVyIjoiNDIuOTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-25 08:59:41 +01:00
renovate[bot] 83474b76d3
fix(deps): update dependency @sentry/vue to v10.36.0 (#2147)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@sentry/vue](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/vue)
([source](https://redirect.github.com/getsentry/sentry-javascript)) |
[`10.35.0` →
`10.36.0`](https://renovatebot.com/diffs/npm/@sentry%2fvue/10.35.0/10.36.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fvue/10.36.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fvue/10.35.0/10.36.0?slim=true)
|

---

### Release Notes

<details>
<summary>getsentry/sentry-javascript (@&#8203;sentry/vue)</summary>

###
[`v10.36.0`](https://redirect.github.com/getsentry/sentry-javascript/compare/10.35.0...10.36.0)

[Compare
Source](https://redirect.github.com/getsentry/sentry-javascript/compare/10.35.0...10.36.0)

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi4xIiwidXBkYXRlZEluVmVyIjoiNDIuOTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-24 19:30:26 +01:00
kolaente ff01f8e859
feat(api-tokens): support title and scopes query parameters (#2143)
This allows external integrations to link directly to the API token creation page with pre-selected title and permission scopes. URLs can now use `?title=Name&scopes=group:perm,group:perm` format to pre-populate the form.

Example URL:
```
/user/settings/api-tokens?title=My%20Integration&scopes=tasks:create,tasks:delete,projects:read_all
```
2026-01-24 18:08:23 +00:00
kolaente 1731b03c22
fix(editor): prevent file upload overlay when dragging text from editor (#2148)
Fixes the file upload overlay incorrectly appearing when dragging text from within the TipTap description editor to outside of it.

Fixes #1663
2026-01-24 18:41:42 +01:00
kolaente acbb06e337
feat(frontend): preserve Gantt date range when switching views (#2141)
Adds a `viewFilters` Pinia store that stores query params per view ID to sync Gantt filters to the store whenever they change. This persists the custom date ranges when switching between views.

Fixes #2124
2026-01-24 13:12:35 +01:00
renovate[bot] 47bfb6a424 chore(deps): update dev-dependencies 2026-01-24 13:01:45 +01:00
renovate[bot] 8e3ed45c85 chore(deps): update pnpm to v10.28.1 2026-01-24 00:01:17 +01:00
kolaente 131f78277d feat(quick add magic): add more test cases 2026-01-24 00:00:46 +01:00
kolaente 8419794b65
fix(quick-add-magic): prevent parsing partial keywords in words (#2140)
- Fixed date parser incorrectly extracting date components from within
words
- "Renovation - 2nd Floor Bath" no longer becomes "Reation - Floor Bath"
with a due date of November 2nd

## Changes
- `getMonthFromText` now requires word boundaries, preventing "nov" from
matching inside "Renovation" or "mar" inside "Remark"
- `getDayFromText` now only matches ordinals when followed by
end-of-string, time expressions, or month names, preventing "2nd Floor"
from being parsed as a date

Resolves
https://community.vikunja.io/t/quick-add-magic-unintended-date-parsing/4259
2026-01-23 22:23:42 +00:00
renovate[bot] 663e7ba3d4 fix(deps): update dependency @sentry/vue to v10.35.0 2026-01-23 17:21:45 +01:00
kolaente c11ea4c87f fix(unsplash): add utm parameters to author links
Resolves https://github.com/go-vikunja/vikunja/issues/2127
2026-01-23 11:58:34 +01:00
renovate[bot] 06e90bc9c2 chore(deps): update dev-dependencies 2026-01-22 11:43:42 +01:00
renovate[bot] fa142308d2 fix(deps): update dependency vue to v3.5.27 2026-01-22 11:01:11 +01:00
renovate[bot] 34472d1358 fix(deps): update dependency ufo to v1.6.3 2026-01-18 17:37:50 +01:00
renovate[bot] c09e63d7d8 chore(deps): update dependency happy-dom to v20.3.0 2026-01-18 17:37:43 +01:00
renovate[bot] 2a74633e4f chore(deps): update dependency @types/node to v22.19.6 2026-01-17 21:59:09 +01:00
renovate[bot] 740ea79837 fix(deps): update dependency @sentry/vue to v10.34.0 2026-01-17 21:58:58 +01:00
renovate[bot] 81076e5309 chore(deps): update dev-dependencies to v8.53.0 2026-01-16 10:18:10 +01:00
renovate[bot] f85e30fcb1 fix(deps): update dependency @sentry/vue to v10.33.0 2026-01-15 15:08:19 +01:00
renovate[bot] 1d660ce4f3 chore(deps): update node.js to v24.13.0 2026-01-15 09:43:02 +01:00
renovate[bot] 05e01b4212 chore(deps): update dev-dependencies 2026-01-15 09:42:53 +01:00
kolaente e96c20def9 fix(project): error `can't access property "isArchived", V.value is null` when opening list view of some projects 2026-01-14 22:05:35 +01:00
kolaente 948a73f3b9 fix(task): done button styling 2026-01-14 21:56:24 +01:00
renovate[bot] bdd3db68fb chore(deps): update dependency @types/node to v22.19.5 2026-01-13 12:36:01 +01:00
renovate[bot] 05adfd513f chore(deps): update pnpm to v10.28.0 2026-01-13 12:35:11 +01:00
renovate[bot] d3639af7bc chore(deps): update dev-dependencies 2026-01-11 09:11:30 +01:00
renovate[bot] e97798574c
fix(deps): update dependency @fortawesome/vue-fontawesome to v3.1.3 (#2079)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@fortawesome/vue-fontawesome](https://redirect.github.com/FortAwesome/vue-fontawesome)
| [`3.1.2` →
`3.1.3`](https://renovatebot.com/diffs/npm/@fortawesome%2fvue-fontawesome/3.1.2/3.1.3)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@fortawesome%2fvue-fontawesome/3.1.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@fortawesome%2fvue-fontawesome/3.1.2/3.1.3?slim=true)
|

---

### Release Notes

<details>
<summary>FortAwesome/vue-fontawesome
(@&#8203;fortawesome/vue-fontawesome)</summary>

###
[`v3.1.3`](https://redirect.github.com/FortAwesome/vue-fontawesome/blob/HEAD/CHANGELOG.md#313---2026-01-07)

[Compare
Source](https://redirect.github.com/FortAwesome/vue-fontawesome/compare/3.1.2...3.1.3)

##### Changed

- ci.yml update for node-versions
- a markdown lint fixup in CONTRIUBUTING.md
- update vitest version to 4.0.16 in `package.json`

***

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDIuNzQuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-10 22:42:20 +01:00
kolaente e702785cf8
fix(filter): correct filter autocomplete for project names with spaces (#2012)
Filter expressions with multi-word values (such as project names with
spaces) are now automatically quoted to preserve them correctly as
single tokens in the filter syntax.

Fixes #2010

🐰 A filter's journey, refined with care,
Multi-word values now wear quotes fair,
Offsets aligned by the rabbit's precision,
Autocomplete flows with mathematical vision,
From comma to space, each boundary divine! 
2026-01-10 22:18:34 +01:00
kolaente c0ba7210f3 chore: remove redundant is-danger class 2026-01-10 21:59:06 +01:00
kolaente 4f9681bde8 chore(form): add autocomplete attributes to a few fields 2026-01-10 21:59:06 +01:00
kolaente a8f10a6e15 fix(register): explicitely check for username valid === true 2026-01-10 21:59:06 +01:00
kolaente edebed151a chore(team): add disabled prop to NewTeam checkbox 2026-01-10 21:59:06 +01:00
kolaente f06e272225 test(frontend): add test for @keyup.enter forwarding in FormField
Verify that @keyup.enter modifier is properly forwarded to the inner
input element and only triggers for Enter key, not other keys.
2026-01-10 21:59:06 +01:00
kolaente e4e2bd33c3 refactor(frontend): simplify event handlers in Register.vue
Replace arrow function wrappers with direct expressions and ternary
no-ops with short-circuit evaluation for cleaner, more readable code.
2026-01-10 21:59:06 +01:00
kolaente 483ddc728d test(frontend): verify FormField generates unique IDs across instances
Mount multiple FormField components within the same Vue app to properly
test that useId() generates unique IDs for each instance. This validates
that labels correctly link to their respective inputs.
2026-01-10 21:59:06 +01:00
kolaente 8f0c7d504b test(frontend): add regression test for FormField $attrs event forwarding
Verify that FormField forwards $attrs event listeners (onKeyup, onFocusout)
to its inner input element. This ensures migrated templates using
@keyup.enter and @focusout continue to work correctly.
2026-01-10 21:59:06 +01:00
kolaente 182b0b63d1 fix(frontend): preserve numeric type in FormField v-model
When modelValue is a number, emit the value as a number instead of
coercing to string. This prevents subtle type bugs when using
FormField with numeric v-model bindings.
2026-01-10 21:59:06 +01:00
kolaente 4ee29f9972 refactor(frontend): use FormField scoped slot id for select elements
Update FormField usages with slotted select elements to use the
exposed id from the scoped slot, ensuring label-input association
works correctly.
2026-01-10 21:59:06 +01:00
kolaente ac2f14945b feat(frontend): expose id via scoped slot in FormField
When using FormField with custom slot content, the slotted element
needs access to the generated inputId to ensure the label's for
attribute matches the input's id. This exposes the id via the
default slot: <template #default="{ id }">
2026-01-10 21:59:06 +01:00
kolaente 5ca600506b fix(frontend): expose focus method on FormField component
Components using FormField with a ref need to call .focus() on it.
Without exposing the method, these calls would fail since the ref
points to the component instance, not the underlying input element.
2026-01-10 21:59:06 +01:00
kolaente fb8ee82b98 fix(frontend): restore loading state on FormField migrations
Add loading prop to FormField usages where is-loading class was
accidentally removed during migration.
2026-01-10 21:59:06 +01:00
kolaente bb16500cb5 feat(frontend): add loading prop to FormField component
When loading is true, adds 'is-loading' class to the input element.
2026-01-10 21:59:06 +01:00
kolaente 1ea8a3cdba refactor(frontend): use FormField disabled prop instead of class
Simplify FormField usages by using the new disabled prop instead of
manually setting both :class="{ disabled: ... }" and :disabled="...".
2026-01-10 21:59:06 +01:00
kolaente 3577ba5132 feat(frontend): add disabled prop to FormField component
When disabled is true, the component now automatically adds the
'disabled' CSS class and sets the native disabled attribute on the
input element.
2026-01-10 21:59:06 +01:00
kolaente e0235a6806 fix(project): don't focus project identifier 2026-01-10 21:59:06 +01:00
kolaente ddd5662d66 fix(frontend): make v-focus directive work with wrapper components
When v-focus is applied to a non-focusable element (like a component
wrapper div), it now searches for the first focusable child element
(input, select, textarea, or contenteditable) and focuses that instead.

This allows v-focus to work correctly with FormField and similar
wrapper components.
2026-01-10 21:59:06 +01:00
kolaente bad314b5e3 fix(frontend): make FormField value binding conditional
When FormField is used without v-model (modelValue undefined), the
component was clearing user input on re-render. This broke login forms
that access the input value directly via refs for browser autofill
compatibility.

Now the value attribute is only bound when modelValue is explicitly
provided, allowing native input behavior when v-model isn't used.
2026-01-10 21:59:06 +01:00
kolaente d86465cbd7 refactor(frontend): migrate view forms to FormField component
Migrate ViewEditForm and ProjectGantt components to use the new
FormField component for title, kind select, and date range fields.
2026-01-10 21:59:06 +01:00
kolaente 1391b42c07 refactor(frontend): migrate LinkSharing to FormField component
Migrate LinkSharing component to use the new FormField component
for permission select, name, password, and share URL fields.
2026-01-10 21:59:06 +01:00
kolaente 4e2db482cd refactor(frontend): migrate project settings to FormField component
Migrate ProjectSettingsEdit and ProjectSettingsWebhooks views
to use the new FormField component.
2026-01-10 21:59:06 +01:00
kolaente 73df9b257d refactor(frontend): migrate entity forms to FormField component
Migrate NewTeam, EditTeam, NewProject, NewLabel, ListLabels,
FilterNew, and FilterEdit views to use the new FormField component.
2026-01-10 21:59:06 +01:00
kolaente 908c241ec7 refactor(frontend): migrate user settings to FormField component
Migrate ApiTokens, Caldav, DataExport, Deletion, EmailUpdate,
PasswordUpdate, TOTP, and DataExportDownload views to use the
new FormField component.
2026-01-10 21:59:06 +01:00
kolaente 0c23714a79 refactor(frontend): migrate auth views to FormField component
Migrate Login, Register, RequestPasswordReset, and LinkSharingAuth
views to use the new FormField component instead of manual
field/control/input markup.
2026-01-10 21:59:06 +01:00
kolaente eb1f852927 feat(frontend): add FormField component for form field abstraction
Introduces a reusable FormField component that abstracts Bulma's
field/control/input pattern into a single component. This provides
a consistent API for form fields and prepares the codebase for
future CSS framework migrations.

Features:
- v-model binding for form values
- label prop with automatic for attribute linking
- error prop for validation messages
- Default slot for custom inputs (selects, editors)
- addon slot for button addons
- Attribute passthrough via v-bind="$attrs"
- Exposed value getter for browser autofill workarounds

Includes 14 unit tests covering all functionality.
2026-01-10 21:59:06 +01:00
kolaente e5cfe3aa13 fix(button): fix button text color to #ffffff
Fixes regression introduced in cac2690fd6
2026-01-10 18:47:50 +01:00
kolaente 61b4c1b87e fix(attachment): make sure long attachment names break the title 2026-01-10 18:46:55 +01:00
kolaente b9ccc81ec0 fix(button): white color text for is-danger variant 2026-01-10 18:36:33 +01:00
kolaente 5ab58e6bda fix(webhooks): make sure validation is re-triggered after selecting events when it was invalid the first time 2026-01-10 18:35:12 +01:00
kolaente cac2690fd6 fix(button): make sure button text color is always white 2026-01-10 18:31:18 +01:00
kolaente 84b733ec0c fix(webhooks): make sure events are initialized with false 2026-01-10 18:31:18 +01:00
kolaente 9a3e79af8e
feat(frontend): add danger prop to XButton component (#2078)
The is-danger class no longer worked on XButton because the component uses scoped CSS. This adds a proper danger boolean prop that applies danger styling (red background) as a color modifier that works alongside any variant (primary, secondary, tertiary).
2026-01-10 17:22:19 +00:00
renovate[bot] 6bcdfc50e2
fix(deps): update dependency ufo to v1.6.2 (#2074)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [ufo](https://redirect.github.com/unjs/ufo) | [`1.6.1` →
`1.6.2`](https://renovatebot.com/diffs/npm/ufo/1.6.1/1.6.2) |
![age](https://developer.mend.io/api/mc/badges/age/npm/ufo/1.6.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ufo/1.6.1/1.6.2?slim=true)
|

---

### Release Notes

<details>
<summary>unjs/ufo (ufo)</summary>

###
[`v1.6.2`](https://redirect.github.com/unjs/ufo/blob/HEAD/CHANGELOG.md#v162)

[Compare
Source](https://redirect.github.com/unjs/ufo/compare/v1.6.1...v1.6.2)

[compare
changes](https://redirect.github.com/unjs/ufo/compare/v1.6.1...v1.6.2)

##### 🩹 Fixes

- Fix `parsePath` return type
([#&#8203;293](https://redirect.github.com/unjs/ufo/pull/293))

##### 📖 Documentation

- Add more examples in jsdoc
([#&#8203;291](https://redirect.github.com/unjs/ufo/pull/291))

##### 📦 Build

- Fix exports condition order to prefer esm with default fallback
([8457581](https://redirect.github.com/unjs/ufo/commit/8457581))

##### 🏡 Chore

- **release:** V1.6.1
([b83cbea](https://redirect.github.com/unjs/ufo/commit/b83cbea))
- Update deps
([9d1833b](https://redirect.github.com/unjs/ufo/commit/9d1833b))
- Lint ([0181677](https://redirect.github.com/unjs/ufo/commit/0181677))

##### ❤️ Contributors

- Daedalus
([@&#8203;ComfortablyCoding](https://redirect.github.com/ComfortablyCoding))
- Pooya Parsa ([@&#8203;pi0](https://redirect.github.com/pi0))
- Alex Liu
([@&#8203;Mini-ghost](https://redirect.github.com/Mini-ghost))

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDIuNzQuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-09 14:54:44 +01:00
renovate[bot] 419c791e0c
chore(deps): update dev-dependencies (#2073)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`8.51.0` →
`8.52.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.51.0/8.52.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/8.52.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/8.51.0/8.52.0?slim=true)
|
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`8.51.0` →
`8.52.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.51.0/8.52.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/8.52.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/8.51.0/8.52.0?slim=true)
|
| [rollup](https://rollupjs.org/)
([source](https://redirect.github.com/rollup/rollup)) | [`4.54.0` →
`4.55.1`](https://renovatebot.com/diffs/npm/rollup/4.54.0/4.55.1) |
![age](https://developer.mend.io/api/mc/badges/age/npm/rollup/4.55.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup/4.54.0/4.55.1?slim=true)
|
| [sass-embedded](https://redirect.github.com/sass/embedded-host-node) |
[`1.97.1` →
`1.97.2`](https://renovatebot.com/diffs/npm/sass-embedded/1.97.1/1.97.2)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/sass-embedded/1.97.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sass-embedded/1.97.1/1.97.2?slim=true)
|
| [vue-tsc](https://redirect.github.com/vuejs/language-tools)
([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`3.2.1` →
`3.2.2`](https://renovatebot.com/diffs/npm/vue-tsc/3.2.1/3.2.2) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/3.2.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/3.2.1/3.2.2?slim=true)
|

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v8.52.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8520-2026-01-05)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.51.0...v8.52.0)

##### 🚀 Features

- **eslint-plugin-internal:** \[no-multiple-lines-of-errors] add rule
([#&#8203;11899](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11899))

##### 🩹 Fixes

- **eslint-plugin:** \[no-base-to-string] detect
@&#8203;[@&#8203;toPrimitive](https://redirect.github.com/toPrimitive)
and valueOf
([#&#8203;11901](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11901))
- **eslint-plugin:** \[no-useless-default-assignment] handle conditional
initializer
([#&#8203;11908](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11908))

##### ❤️ Thank You

- Josh Goldberg 
- Ulrich Stark

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v8.52.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8520-2026-01-05)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.51.0...v8.52.0)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>rollup/rollup (rollup)</summary>

###
[`v4.55.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4551)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.54.0...v4.55.1)

*2026-01-05*

##### Bug Fixes

- Fix artifact reference for OpenBSD
([#&#8203;6231](https://redirect.github.com/rollup/rollup/issues/6231))

##### Pull Requests

- [#&#8203;6231](https://redirect.github.com/rollup/rollup/pull/6231):
Fix OpenBSD artifacts and ensure OIDC is working
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

</details>

<details>
<summary>sass/embedded-host-node (sass-embedded)</summary>

###
[`v1.97.2`](https://redirect.github.com/sass/embedded-host-node/blob/HEAD/CHANGELOG.md#1972)

[Compare
Source](https://redirect.github.com/sass/embedded-host-node/compare/1.97.1...1.97.2)

- Additional fixes for implicit configuration when nested imports are
involved.

</details>

<details>
<summary>vuejs/language-tools (vue-tsc)</summary>

###
[`v3.2.2`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#322-2026-01-06)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v3.2.1...v3.2.2)

##### language-core

- **fix:** correct code features on v-bind shorthands of special
attributes - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### language-plugin-pug

- **feat:** accurate Pug shorthand mapping
([#&#8203;5906](https://redirect.github.com/vuejs/language-tools/issues/5906))
- **fix:** pre-map HTML to Pug offset attribute
([#&#8203;5905](https://redirect.github.com/vuejs/language-tools/issues/5905))

##### language-service

- **feat:** strip `=""` for boolean props completion edits
([#&#8203;5888](https://redirect.github.com/vuejs/language-tools/issues/5888))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **fix:** avoid duplicate directive modifiers in completion
([#&#8203;5920](https://redirect.github.com/vuejs/language-tools/issues/5920))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### typescript-plugin

- **fix:** only forward quick info and suggestion diagnostics for setup
bindings
([#&#8203;5892](https://redirect.github.com/vuejs/language-tools/issues/5892))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDIuNzQuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-09 09:05:16 +01:00
kolaente 0f9a04d5d5
fix(frontend): prevent parent project field from jumping back when cleared (#2071)
Fixes the parent project field in project settings "jumping back" to the previous value after clearing the value from the input.

Fixes #2046
2026-01-08 17:25:00 +01:00
kolaente 745fde41ca
fix: prevent timezone field from overflowing container on smaller viewports (#2066)
Closes #2044
2026-01-08 14:30:04 +00:00
kolaente 909b35ea76
fix: multiselect clear button now properly clears the value (#2067)
Fixes #2045
2026-01-08 14:16:03 +00:00
kolaente 1bb44b70bf
fix: prevent saved filter error when viewing Favorites (#2065)
Fixes the "The saved filter does not exist" error when clicking on Favorites in the sidebar. The issue occurred because the code assumed any negative projectId was a saved filter, but Favorites has ID -1 while saved filters start at ID -2

Fixes #2058
2026-01-08 13:17:23 +00:00
kolaente ed0c9a8006 fix: invisible spinner 2026-01-08 13:23:38 +01:00
kolaente 65980423c9 fix: remove usage of .buttons 2026-01-08 13:23:38 +01:00
kolaente 40287a1570 refactor: move bulma button styles to button component 2026-01-08 13:23:38 +01:00
kolaente 672d92a3e4 fix: remove redundant button class 2026-01-08 13:23:38 +01:00
kolaente 155e651eff fix(project): do not access find on current project views when none are provided
Resolves https://github.com/go-vikunja/vikunja/issues/2057
2026-01-07 18:06:53 +01:00
kolaente 49af08d3f6
feat(filters): add UI for marking saved filters as favorites (#2055)
This PR adds UI support for marking saved filters as favorites. The backend already supports the `is_favorite` field for saved filters, but the frontend didn't expose this functionality. Users can now favorite/unfavorite saved filters just like regular projects.
2026-01-07 16:21:41 +00:00
kolaente 0ebecb99ba
feat: merge duplicate notifications (#2056)
Use the `ignoreDuplicates` prop from vue3-notification to ignore duplicate notifications, show a count (×N) instead when notifications are merged.

Superseeds and closes https://github.com/go-vikunja/vikunja/pull/971

---------

Co-authored-by: Dominik Pschenitschni <6173598+dpschen@users.noreply.github.com>
2026-01-06 17:36:29 +00:00
kolaente 51d76ea2e2 fix(kanban): done label spacing 2026-01-06 15:24:36 +01:00
kolaente a523f3ab12 fix(kanban): make sure only one task input field can be visible at the same time 2026-01-06 14:28:29 +01:00
renovate[bot] e41eb2848c fix(deps): update dependency vue-i18n to v11.2.8 2026-01-04 15:38:09 +01:00
Frederick [Bot] 9443d628d6 chore(i18n): update translations via Crowdin 2026-01-04 01:07:11 +00:00
renovate[bot] d0f8fde74d chore(deps): update dev-dependencies 2026-01-03 09:26:47 +01:00
renovate[bot] 67a07e2d7b chore(deps): update pnpm to v10.27.0 2026-01-03 09:25:48 +01:00
Frederick [Bot] 018e4afae1 chore(i18n): update translations via Crowdin 2026-01-01 01:06:24 +00:00
Frederick [Bot] 7d4a267ceb chore(i18n): update translations via Crowdin 2025-12-30 00:59:31 +00:00
kolaente 6afb166dd2
feat: add shortcut to quickly copy task identifier, title and url to clipboard (#2028)
This adds the following shortcuts:

- `.` to copy the task identifier
- `..` to copy the task identifier and title
- `...` to copy the task identifier, title, and url
- `Control + .` to copy the task url
2025-12-28 10:54:41 +01:00
renovate[bot] 09eb1f5899 chore(deps): update dev-dependencies to v8.50.1 2025-12-27 20:41:17 +01:00
renovate[bot] 24a9d51a66 chore(deps): update pnpm to v10.26.2 2025-12-27 20:41:03 +01:00
Frederick [Bot] a820f07f2a chore(i18n): update translations via Crowdin 2025-12-27 00:57:49 +00:00
renovate[bot] 059abf8d4d chore(deps): update dev-dependencies 2025-12-25 10:16:14 +01:00
renovate[bot] 7046dd4a94 fix(deps): update dependency @sentry/vue to v10.32.1 2025-12-25 10:01:37 +01:00
renovate[bot] 2a7a0b0a29 fix(deps): update dependency vue-i18n to v11.2.7 2025-12-25 10:01:17 +01:00
Frederick [Bot] 88853d9d39 chore(i18n): update translations via Crowdin 2025-12-23 00:59:08 +00:00
renovate[bot] b0114b71e7 chore(deps): update pnpm to v10.26.1 2025-12-22 09:44:47 +01:00
renovate[bot] aea4def3cf chore(deps): update dependency esbuild to v0.27.2 2025-12-22 09:44:27 +01:00
renovate[bot] dd5d418b3c
fix(deps): update dependency @sentry/vue to v10.32.0 (#2015)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@sentry/vue](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/vue)
([source](https://redirect.github.com/getsentry/sentry-javascript)) |
[`10.31.0` ->
`10.32.0`](https://renovatebot.com/diffs/npm/@sentry%2fvue/10.31.0/10.32.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fvue/10.32.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fvue/10.31.0/10.32.0?slim=true)
|

---

### Release Notes

<details>
<summary>getsentry/sentry-javascript (@&#8203;sentry/vue)</summary>

###
[`v10.32.0`](https://redirect.github.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#10320)

[Compare
Source](https://redirect.github.com/getsentry/sentry-javascript/compare/10.31.0...10.32.0)

##### Important Changes

- **feat(core): Apply scope attributes to logs
([#&#8203;18184](https://redirect.github.com/getsentry/sentry-javascript/pull/18184))**

You can now set attributes on the SDK's scopes which will be applied to
all logs as long as the respective scopes are active. For the time
being, only `string`, `number` and `boolean` attribute values are
supported.

  ```ts
Sentry.geGlobalScope().setAttributes({ is_admin: true, auth_provider:
'google' });

  Sentry.withScope(scope => {
    scope.setAttribute('step', 'authentication');

    // scope attributes `is_admin`, `auth_provider` and `step` are added
Sentry.logger.info(`user ${user.id} logged in`, { activeSince: 100 });
    Sentry.logger.info(`updated ${user.id} last activity`);
  });

  // scope attributes `is_admin` and `auth_provider` are added
  Sentry.logger.warn('stale website version, reloading page');
  ```

- **feat(replay): Add Request body with `attachRawBodyFromRequest`
option
([#&#8203;18501](https://redirect.github.com/getsentry/sentry-javascript/pull/18501))**

To attach the raw request body (from `Request` objects passed as the
first `fetch` argument) to replay events, you can now use the
`attachRawBodyFromRequest` option in the Replay integration:

  ```js
  Sentry.init({
    integrations: [
      Sentry.replayIntegration({
        attachRawBodyFromRequest: true,
      }),
    ],
  });
  ```

- **feat(tanstackstart-react): Trace server functions
([#&#8203;18500](https://redirect.github.com/getsentry/sentry-javascript/pull/18500))**

To enable tracing for server-side requests, you can now explicitly
define a [server entry
point](https://tanstack.com/start/latest/docs/framework/react/guide/server-entry-point)
in your application and wrap your request handler with
`wrapFetchWithSentry`.

  ```typescript
  // src/server.ts
import { wrapFetchWithSentry } from
'@&#8203;sentry/tanstackstart-react';
import handler, { createServerEntry } from
'@&#8203;tanstack/react-start/server-entry';

  export default createServerEntry(
    wrapFetchWithSentry({
      fetch(request: Request) {
        return handler.fetch(request);
      },
    }),
  );
  ```

- **feat(vue): Add TanStack Router integration
([#&#8203;18547](https://redirect.github.com/getsentry/sentry-javascript/pull/18547))**

The `@sentry/vue` package now includes support for TanStack Router. Use
`tanstackRouterBrowserTracingIntegration` to automatically instrument
pageload and navigation transactions with parameterized routes:

  ```javascript
  import { createApp } from 'vue';
  import { createRouter } from '@&#8203;tanstack/vue-router';
  import * as Sentry from '@&#8203;sentry/vue';
import { tanstackRouterBrowserTracingIntegration } from
'@&#8203;sentry/vue/tanstackrouter';

  const router = createRouter({
    // your router config
  });

  Sentry.init({
    app,
    dsn: '__PUBLIC_DSN__',
    integrations: [tanstackRouterBrowserTracingIntegration(router)],
    tracesSampleRate: 1.0,
  });
  ```

##### Other Changes

- feat(core): Capture initialize attributes on MCP servers
([#&#8203;18531](https://redirect.github.com/getsentry/sentry-javascript/pull/18531))
- feat(nextjs): Extract tracing logic from server component wrapper
templates
([#&#8203;18408](https://redirect.github.com/getsentry/sentry-javascript/pull/18408))
- feat(nextjs): added webpack treeshaking flags as config
([#&#8203;18359](https://redirect.github.com/getsentry/sentry-javascript/pull/18359))
- fix(solid/tanstackrouter): Ensure web vitals are sent on pageload
([#&#8203;18542](https://redirect.github.com/getsentry/sentry-javascript/pull/18542))

<details>
  <summary> <strong>Internal Changes</strong> </summary>

- chore(changelog): Add entry for scope attributes
([#&#8203;18555](https://redirect.github.com/getsentry/sentry-javascript/pull/18555))
- chore(changelog): Add entry for tanstack start wrapFetchWithSentry
([#&#8203;18558](https://redirect.github.com/getsentry/sentry-javascript/pull/18558))
- chore(deps): bump
[@&#8203;trpc/server](https://redirect.github.com/trpc/server) from
10.45.2 to 10.45.3 in
/dev-packages/e2e-tests/test-applications/node-express-incorrect-instrumentation
([#&#8203;18530](https://redirect.github.com/getsentry/sentry-javascript/pull/18530))
- chore(deps): bump
[@&#8203;trpc/server](https://redirect.github.com/trpc/server) from
10.45.2 to 10.45.3 in
/dev-packages/e2e-tests/test-applications/node-express-v5
([#&#8203;18550](https://redirect.github.com/getsentry/sentry-javascript/pull/18550))
- chore(e2e): Pin to react-router 7.10.1 in spa e2e test
([#&#8203;18548](https://redirect.github.com/getsentry/sentry-javascript/pull/18548))
- chore(e2e): Remove check on
`http.response_content_length_uncompressed`
([#&#8203;18536](https://redirect.github.com/getsentry/sentry-javascript/pull/18536))
- chore(github): Add "Closes" to PR template
([#&#8203;18538](https://redirect.github.com/getsentry/sentry-javascript/pull/18538))
- test(cloudflare-mcp): Unpin mcp sdk
([#&#8203;18528](https://redirect.github.com/getsentry/sentry-javascript/pull/18528))
- test(nextjs): Add e2e tests for server component spans in next 16
([#&#8203;18544](https://redirect.github.com/getsentry/sentry-javascript/pull/18544))

</details>

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-21 14:38:37 +00:00
renovate[bot] 301a12be12
fix(deps): update dependency vue to v3.5.26 (#2014)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[vue](https://redirect.github.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://redirect.github.com/vuejs/core)) | [`3.5.25` ->
`3.5.26`](https://renovatebot.com/diffs/npm/vue/3.5.25/3.5.26) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.5.26?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.5.25/3.5.26?slim=true)
|

---

### Release Notes

<details>
<summary>vuejs/core (vue)</summary>

###
[`v3.5.26`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#3526-2025-12-18)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.25...v3.5.26)

##### Bug Fixes

- **compat:** fix compat handler of draggable
([#&#8203;12445](https://redirect.github.com/vuejs/core/issues/12445))
([ed85953](ed85953e28)),
closes
[#&#8203;12444](https://redirect.github.com/vuejs/core/issues/12444)
- **compat:** handle v-model deprecation warning with missing appContext
([#&#8203;14203](https://redirect.github.com/vuejs/core/issues/14203))
([945a543](945a543152)),
closes
[#&#8203;14202](https://redirect.github.com/vuejs/core/issues/14202)
- **compiler-sfc:** demote const reactive bindings used in v-model
([#&#8203;14214](https://redirect.github.com/vuejs/core/issues/14214))
([e24ff7d](e24ff7d302)),
closes
[#&#8203;11265](https://redirect.github.com/vuejs/core/issues/11265)
[#&#8203;11275](https://redirect.github.com/vuejs/core/issues/11275)
- **compiler-ssr:** handle ssr attr fallthrough when preserve whitespace
([#&#8203;12304](https://redirect.github.com/vuejs/core/issues/12304))
([4783118](4783118919)),
closes
[#&#8203;8072](https://redirect.github.com/vuejs/core/issues/8072)
- **hmr:** handle cached text node update
([#&#8203;14134](https://redirect.github.com/vuejs/core/issues/14134))
([69ce3c7](69ce3c7d75)),
closes
[#&#8203;14127](https://redirect.github.com/vuejs/core/issues/14127)
- **keep-alive:** use resolved component name for async components in
cache pruning
([#&#8203;14212](https://redirect.github.com/vuejs/core/issues/14212))
([dfe667c](dfe667c856)),
closes
[#&#8203;14210](https://redirect.github.com/vuejs/core/issues/14210)
- **runtime-core:** ensure correct anchor el for deeper unresolved async
components
([#&#8203;14182](https://redirect.github.com/vuejs/core/issues/14182))
([f5b3bf2](f5b3bf264d)),
closes
[#&#8203;14173](https://redirect.github.com/vuejs/core/issues/14173)
- **runtime-core:** handle patch stable fragment edge case
([#&#8203;12411](https://redirect.github.com/vuejs/core/issues/12411))
([94aeb64](94aeb64ccd)),
closes
[#&#8203;12410](https://redirect.github.com/vuejs/core/issues/12410)
- **runtime-core:** pass component instance to flushPreFlushCbs on
unmount
([#&#8203;14221](https://redirect.github.com/vuejs/core/issues/14221))
([e857e12](e857e12c0a)),
closes
[#&#8203;14215](https://redirect.github.com/vuejs/core/issues/14215)

##### Performance Improvements

- **compiler-core:** use binary-search to get line and column
([#&#8203;14222](https://redirect.github.com/vuejs/core/issues/14222))
([1904053](1904053f1f))

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-21 14:19:33 +00:00
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
renovate[bot] 0bb04e9c39
fix(deps): pin dependency nanoid to 5.1.6 (#2008)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [nanoid](https://redirect.github.com/ai/nanoid) | dependencies | pin |
[`^5.1.6` ->
`5.1.6`](https://renovatebot.com/diffs/npm/nanoid/5.1.6/5.1.6) |

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### Configuration

📅 **Schedule**: 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 is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:47:02 +00:00
renovate[bot] 7d1655e9d7
fix(deps): update dependency @sentry/vue to v10.31.0 (#2009)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@sentry/vue](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/vue)
([source](https://redirect.github.com/getsentry/sentry-javascript)) |
[`10.30.0` ->
`10.31.0`](https://renovatebot.com/diffs/npm/@sentry%2fvue/10.30.0/10.31.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fvue/10.31.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fvue/10.30.0/10.31.0?slim=true)
|

---

### Release Notes

<details>
<summary>getsentry/sentry-javascript (@&#8203;sentry/vue)</summary>

###
[`v10.31.0`](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/10.31.0)

[Compare
Source](https://redirect.github.com/getsentry/sentry-javascript/compare/10.30.0...10.31.0)

##### Important Changes

- **feat(browser): Add support for GraphQL persisted operations
([#&#8203;18505](https://redirect.github.com/getsentry/sentry-javascript/pull/18505))**

The `graphqlClientIntegration` now supports GraphQL persisted operations
(queries). When a persisted query is detected, the integration will
capture the operation hash and version as span attributes:

- `graphql.persisted_query.hash.sha256` - The SHA-256 hash of the
persisted query
- `graphql.persisted_query.version` - The version of the persisted query
protocol

Additionally, the `graphql.document` attribute format has changed to
align with OpenTelemetry semantic conventions. It now contains only the
GraphQL query string instead of the full JSON request payload.

**Before:**

```javascript
"graphql.document": "{\"query\":\"query Test { user { id } }\"}"
```

**After:**

```javascript
"graphql.document": "query Test { user { id } }"
```

##### Other Changes

- feat(node): Support `propagateTraceparent` option
([#&#8203;18476](https://redirect.github.com/getsentry/sentry-javascript/pull/18476))
- feat(bun): Expose spotlight option in TypeScript
([#&#8203;18436](https://redirect.github.com/getsentry/sentry-javascript/pull/18436))
- feat(core): Add additional exports for `captureException` and
`captureMessage` parameter types
([#&#8203;18521](https://redirect.github.com/getsentry/sentry-javascript/pull/18521))
- feat(core): Export `captureException` and `captureMessage` parameter
types
([#&#8203;18509](https://redirect.github.com/getsentry/sentry-javascript/pull/18509))
- feat(core): Parse individual cookies from cookie header
([#&#8203;18325](https://redirect.github.com/getsentry/sentry-javascript/pull/18325))
- feat(node): Add instrument OpenAI export to node
([#&#8203;18461](https://redirect.github.com/getsentry/sentry-javascript/pull/18461))
- feat(nuxt): Bump `@sentry/vite-plugin` and `@sentry/rollup-plugin` to
4.6.1
([#&#8203;18349](https://redirect.github.com/getsentry/sentry-javascript/pull/18349))
- feat(profiling): Add support for Node v24 in the prune script
([#&#8203;18447](https://redirect.github.com/getsentry/sentry-javascript/pull/18447))
- feat(tracing): strip inline media from messages
([#&#8203;18413](https://redirect.github.com/getsentry/sentry-javascript/pull/18413))
- feat(node): Add ESM support for postgres.js instrumentation
([#&#8203;17961](https://redirect.github.com/getsentry/sentry-javascript/pull/17961))
- fix(browser): Stringify span context in linked traces log statement
([#&#8203;18376](https://redirect.github.com/getsentry/sentry-javascript/pull/18376))
- fix(google-cloud-serverless): Move
[@&#8203;types/express](https://redirect.github.com/types/express) to
optional peerDeps
([#&#8203;18452](https://redirect.github.com/getsentry/sentry-javascript/pull/18452))
- fix(node-core): passthrough node-cron context
([#&#8203;17835](https://redirect.github.com/getsentry/sentry-javascript/pull/17835))
- fix(tanstack-router): Check for `fromLocation` existence before
reporting pageload
([#&#8203;18463](https://redirect.github.com/getsentry/sentry-javascript/pull/18463))
- fix(tracing): add system prompt, model to google genai
([#&#8203;18424](https://redirect.github.com/getsentry/sentry-javascript/pull/18424))
- fix(tracing): Set span operations for AI spans with model ID only
([#&#8203;18471](https://redirect.github.com/getsentry/sentry-javascript/pull/18471))
- ref(browser): Improve profiling debug statement
([#&#8203;18507](https://redirect.github.com/getsentry/sentry-javascript/pull/18507))

<details>
  <summary> <strong>Internal Changes</strong> </summary>

- chore: Add external contributor to CHANGELOG.md
([#&#8203;18473](https://redirect.github.com/getsentry/sentry-javascript/pull/18473))
- chore: upgrade Playwright to \~1.56.0 for WSL2 compatibility
([#&#8203;18468](https://redirect.github.com/getsentry/sentry-javascript/pull/18468))
- chore(bugbot): Add testing conventions code review rules
([#&#8203;18433](https://redirect.github.com/getsentry/sentry-javascript/pull/18433))
- chore(deps): bump next from 14.2.25 to 14.2.35 in
/dev-packages/e2e-tests/test-applications/create-next-app
([#&#8203;18494](https://redirect.github.com/getsentry/sentry-javascript/pull/18494))
- chore(deps): bump next from 14.2.32 to 14.2.35 in
/dev-packages/e2e-tests/test-applications/nextjs-orpc
([#&#8203;18520](https://redirect.github.com/getsentry/sentry-javascript/pull/18520))
- chore(deps): bump next from 14.2.32 to 14.2.35 in
/dev-packages/e2e-tests/test-applications/nextjs-pages-dir
([#&#8203;18496](https://redirect.github.com/getsentry/sentry-javascript/pull/18496))
- chore(deps): bump next from 15.5.7 to 15.5.9 in
/dev-packages/e2e-tests/test-applications/nextjs-15
([#&#8203;18482](https://redirect.github.com/getsentry/sentry-javascript/pull/18482))
- chore(deps): bump next from 15.5.7 to 15.5.9 in
/dev-packages/e2e-tests/test-applications/nextjs-15-intl
([#&#8203;18483](https://redirect.github.com/getsentry/sentry-javascript/pull/18483))
- chore(deps): bump next from 16.0.7 to 16.0.9 in
/dev-packages/e2e-tests/test-applications/nextjs-16
([#&#8203;18480](https://redirect.github.com/getsentry/sentry-javascript/pull/18480))
- chore(deps): bump next from 16.0.7 to 16.0.9 in
/dev-packages/e2e-tests/test-applications/nextjs-16-cacheComponents
([#&#8203;18479](https://redirect.github.com/getsentry/sentry-javascript/pull/18479))
- chore(deps): bump next from 16.0.7 to 16.0.9 in
/dev-packages/e2e-tests/test-applications/nextjs-16-tunnel
([#&#8203;18481](https://redirect.github.com/getsentry/sentry-javascript/pull/18481))
- chore(deps): bump next from 16.0.9 to 16.0.10 in
/dev-packages/e2e-tests/test-applications/nextjs-16
([#&#8203;18514](https://redirect.github.com/getsentry/sentry-javascript/pull/18514))
- chore(deps): bump next from 16.0.9 to 16.0.10 in
/dev-packages/e2e-tests/test-applications/nextjs-16-tunnel
([#&#8203;18487](https://redirect.github.com/getsentry/sentry-javascript/pull/18487))
- chore(tests): Added test variant flag
([#&#8203;18458](https://redirect.github.com/getsentry/sentry-javascript/pull/18458))
- test(cloudflare-mcp): Pin mcp sdk to 1.24.0
([#&#8203;18524](https://redirect.github.com/getsentry/sentry-javascript/pull/18524))

</details>

Work in this release was contributed by
[@&#8203;sebws](https://redirect.github.com/sebws) and
[@&#8203;TBeeren](https://redirect.github.com/TBeeren). Thank you for
your contributions!

#### Bundle size 📦

| Path | Size |
|
-----------------------------------------------------------------------------------------------------
| --------- |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) |
24.23 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) -
with treeshaking flags | 22.76 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Tracing) | 40.58 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Tracing, Profiling) | 45.08 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Tracing, Replay) | 78.1 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Tracing, Replay) - with treeshaking flags | 68.07 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Tracing, Replay with Canvas) | 82.67 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Tracing, Replay, Feedback) | 94.62 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Feedback) | 40.54 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. sendFeedback) | 28.8 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. FeedbackAsync) | 33.68 KB |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react) |
25.9 KB |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react)
(incl. Tracing) | 42.73 KB |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue) | 28.58
KB |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue) (incl.
Tracing) | 42.35 KB |
| [@&#8203;sentry/svelte](https://redirect.github.com/sentry/svelte) |
24.24 KB |
| CDN Bundle | 26.59 KB |
| CDN Bundle (incl. Tracing) | 41.23 KB |
| CDN Bundle (incl. Tracing, Replay) | 76.9 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 82.23 KB |
| CDN Bundle - uncompressed | 78.15 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 122.44 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 235.75 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 248.21
KB |
| [@&#8203;sentry/nextjs](https://redirect.github.com/sentry/nextjs)
(client) | 44.9 KB |
|
[@&#8203;sentry/sveltekit](https://redirect.github.com/sentry/sveltekit)
(client) | 40.94 KB |
|
[@&#8203;sentry/node-core](https://redirect.github.com/sentry/node-core)
| 50.39 KB |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node) | 157.7
KB |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node) -
without tracing | 90.85 KB |
|
[@&#8203;sentry/aws-serverless](https://redirect.github.com/sentry/aws-serverless)
| 106 KB |

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:27:43 +00:00
renovate[bot] 74c3225c3a
chore(deps): update dev-dependencies (#2005)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`8.49.0` ->
`8.50.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.49.0/8.50.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/8.50.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/8.49.0/8.50.0?slim=true)
|
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`8.49.0` ->
`8.50.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.49.0/8.50.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/8.50.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/8.49.0/8.50.0?slim=true)
|
| [rollup](https://rollupjs.org/)
([source](https://redirect.github.com/rollup/rollup)) | [`4.53.3` ->
`4.53.5`](https://renovatebot.com/diffs/npm/rollup/4.53.3/4.53.5) |
![age](https://developer.mend.io/api/mc/badges/age/npm/rollup/4.53.5?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup/4.53.3/4.53.5?slim=true)
|
| [sass-embedded](https://redirect.github.com/sass/embedded-host-node) |
[`1.96.0` ->
`1.97.0`](https://renovatebot.com/diffs/npm/sass-embedded/1.96.0/1.97.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/sass-embedded/1.97.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sass-embedded/1.96.0/1.97.0?slim=true)
|
| [vite](https://vite.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`7.2.7` ->
`7.3.0`](https://renovatebot.com/diffs/npm/vite/7.2.7/7.3.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vite/7.3.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/7.2.7/7.3.0?slim=true)
|

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v8.50.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8500-2025-12-15)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.49.0...v8.50.0)

##### 🚀 Features

- **eslint-plugin:** \[no-useless-default-assignment] add rule
([#&#8203;11720](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11720))

##### ❤️ Thank You

- Josh Goldberg 
- Ulrich Stark

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v8.50.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8500-2025-12-15)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.49.0...v8.50.0)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>rollup/rollup (rollup)</summary>

###
[`v4.53.5`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4535)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.53.4...v4.53.5)

*2025-12-16*

##### Bug Fixes

- Fix wrong semicolon insertion position when using JSX
([#&#8203;6206](https://redirect.github.com/rollup/rollup/issues/6206))
- Generate spec-compliant sourcemaps when sources content is excluded
([#&#8203;6196](https://redirect.github.com/rollup/rollup/issues/6196))

##### Pull Requests

- [#&#8203;6196](https://redirect.github.com/rollup/rollup/pull/6196):
fix: set sourcesContent to undefined instead of null when excluding
sources content
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;6206](https://redirect.github.com/rollup/rollup/pull/6206):
Fix semicolon order in JSX
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

###
[`v4.53.4`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4534)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.53.3...v4.53.4)

*2025-12-15*

##### Bug Fixes

- Ensure `Symbol.dispose` and `Symbol.asyncDispose` properties are never
removed with `(await) using` declarations.
([#&#8203;6209](https://redirect.github.com/rollup/rollup/issues/6209))

##### Pull Requests

- [#&#8203;6185](https://redirect.github.com/rollup/rollup/pull/6185):
chore(deps): update dependency
[@&#8203;inquirer/prompts](https://redirect.github.com/inquirer/prompts)
to v8 ([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;6186](https://redirect.github.com/rollup/rollup/pull/6186):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;6187](https://redirect.github.com/rollup/rollup/pull/6187):
chore(deps): lock file maintenance
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;6188](https://redirect.github.com/rollup/rollup/pull/6188):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;6190](https://redirect.github.com/rollup/rollup/pull/6190):
Fix syntax error in manualChunks example
([@&#8203;jonnyeom](https://redirect.github.com/jonnyeom))
- [#&#8203;6194](https://redirect.github.com/rollup/rollup/pull/6194):
chore(deps): update actions/checkout action to v6
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;6195](https://redirect.github.com/rollup/rollup/pull/6195):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;6202](https://redirect.github.com/rollup/rollup/pull/6202):
fix(deps): update swc monorepo (major)
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;6203](https://redirect.github.com/rollup/rollup/pull/6203):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;6209](https://redirect.github.com/rollup/rollup/pull/6209):
Do not tree-shake handlers for "using"
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

</details>

<details>
<summary>sass/embedded-host-node (sass-embedded)</summary>

###
[`v1.97.0`](https://redirect.github.com/sass/embedded-host-node/blob/HEAD/CHANGELOG.md#1970)

[Compare
Source](https://redirect.github.com/sass/embedded-host-node/compare/1.96.0...1.97.0)

- Add support for the `display-p3-linear` color space.

</details>

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v7.3.0`](https://redirect.github.com/vitejs/vite/releases/tag/v7.3.0)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.2.7...v7.3.0)

Please refer to
[CHANGELOG.md](https://redirect.github.com/vitejs/vite/blob/v7.3.0/packages/vite/CHANGELOG.md)
for details.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 17:16:11 +01:00
kolaente ef1efbc29a
fix(editor): make sure checkbox lists are unique (#2007)
This fixes a checkbox persistence bug where toggling one checkbox would affect others with identical text. To make this work, a new unique `data-task-id` attribute was added to each task list item for reliable identification.

Fixes #293, #563

🐰 With nanoid's magic and IDs so fine,
Each checkbox now knows which line is mine,
No more lost state when the page reloads—
Tasks persist through every browser node!
2025-12-19 17:12:31 +01:00
renovate[bot] 84791aa996
chore(deps): update pnpm to v10.26.0 (#2004)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.25.0` ->
`10.26.0`](https://renovatebot.com/diffs/npm/pnpm/10.25.0/10.26.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.26.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.25.0/10.26.0?slim=true)
|

---

### Release Notes

<details>
<summary>pnpm/pnpm (pnpm)</summary>

###
[`v10.26.0`](https://redirect.github.com/pnpm/pnpm/compare/v10.25.0...v10.26.0)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.25.0...v10.26.0)

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-18 13:54:49 +01:00
Frederick [Bot] 3310f68ad6 chore(i18n): update translations via Crowdin 2025-12-18 00:56:10 +00:00
kolaente 0dcaebf73e fix(kanban): move comment count right before assignees
Due to different sizes of the icons (which is a different issue) this makes it look better.
2025-12-17 23:52:56 +01:00
kolaente bb80c20fef fix(tasks): do not create label wrapper component when no labels are present
This fixes a visual regression where a padding on the left of the icons was shown when no labels were present
2025-12-17 23:52:56 +01:00
renovate[bot] 93baac7e03
chore(deps): update dev-dependencies (#1999)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@tsconfig/node24](https://redirect.github.com/tsconfig/bases)
([source](https://redirect.github.com/tsconfig/bases/tree/HEAD/bases)) |
[`24.0.0` ->
`24.0.3`](https://renovatebot.com/diffs/npm/@tsconfig%2fnode24/24.0.0/24.0.3)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@tsconfig%2fnode24/24.0.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tsconfig%2fnode24/24.0.0/24.0.3?slim=true)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`22.19.2` ->
`22.19.3`](https://renovatebot.com/diffs/npm/@types%2fnode/22.19.2/22.19.3)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.19.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.19.2/22.19.3?slim=true)
|
| [autoprefixer](https://redirect.github.com/postcss/autoprefixer) |
[`10.4.22` ->
`10.4.23`](https://renovatebot.com/diffs/npm/autoprefixer/10.4.22/10.4.23)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/autoprefixer/10.4.23?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/autoprefixer/10.4.22/10.4.23?slim=true)
|

---

### Release Notes

<details>
<summary>tsconfig/bases (@&#8203;tsconfig/node24)</summary>

###
[`v24.0.3`](1bff76396c...08017332f3)

[Compare
Source](1bff76396c...08017332f3)

###
[`v24.0.2`](f2f98bd5f9...1bff76396c)

[Compare
Source](f2f98bd5f9...1bff76396c)

###
[`v24.0.1`](a70b65ee4e...f2f98bd5f9)

[Compare
Source](a70b65ee4e...f2f98bd5f9)

</details>

<details>
<summary>postcss/autoprefixer (autoprefixer)</summary>

###
[`v10.4.23`](https://redirect.github.com/postcss/autoprefixer/blob/HEAD/CHANGELOG.md#10423)

[Compare
Source](https://redirect.github.com/postcss/autoprefixer/compare/10.4.22...10.4.23)

- Reduced dependencies (by
[@&#8203;hyperz111](https://redirect.github.com/hyperz111)).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-17 22:30:57 +01:00
kolaente cc7bf76091 chore(task): do not try to cancel debounce handler
The debounce handler cannot be canceled like that. Because the variable just gets destroyed when we unmount the component, no need to clean it up explicitely.
2025-12-17 22:26:32 +01:00
Frederick [Bot] 512af1d0f4 chore(i18n): update translations via Crowdin 2025-12-17 00:55:47 +00:00
Copilot 9bc67032c3
fix: validate coordinates before elementsFromPoint on Firefox mobile (#1992)
Firefox mobile drag events can provide non-finite coordinate values
(`undefined`, `NaN`, `Infinity`) which cause
`document.elementsFromPoint()` to throw: "Argument 1 is not a finite
floating-point value."

**Changes**
- Added `Number.isFinite()` validation in `findProjectIdAtPosition()`
before calling `elementsFromPoint()`
- Returns `null` when coordinates are invalid, gracefully aborting the
drop operation

```typescript
function findProjectIdAtPosition(mouseX: number, mouseY: number): number | null {
	// Validate coordinates are finite numbers (required by elementsFromPoint)
	if (!Number.isFinite(mouseX) || !Number.isFinite(mouseY)) {
		return null
	}

	const elementsUnderMouse = document.elementsFromPoint(mouseX, mouseY)
	// ... rest of implementation
}
```

The caller already handles `null` returns appropriately, treating it as
"no valid drop target found."

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <13721712+kolaente@users.noreply.github.com>
2025-12-16 23:05:42 +00:00
kolaente 4993ea2bbe
fix(editor): prevent TypeError when typing mentions in comments (#1997)
Fix TypeError when typing `@` mentions in task comments, add null checks for `component` variable in `mentionSuggestion.ts` to handle race conditions where `onUpdate` or `onKeyDown` fire before `onStart` completes
2025-12-16 22:56:05 +00:00
kolaente 4284673bf7
feat(tasks): scroll to bottom in task detail view when comments are available (#1995)
Added a scroll-to-bottom button in task detail view that appears when content is scrollable and hides when users reach the bottom. The button provides quick navigation to view all content.

🐰 A button appears when scrolls grow tall,
Through DOM observers, we heed the call,
With smooth scroll dances to content's end,
The rabbit's gift—no need to scroll and rend! 
2025-12-16 22:06:47 +00:00
renovate[bot] 7199365213
chore(deps): replace dev-dependencies (#1990)
This PR contains the following updates:

| Package | Type | Update | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|---|---|
| [@tsconfig/node22](https://redirect.github.com/tsconfig/bases)
([source](https://redirect.github.com/tsconfig/bases/tree/HEAD/bases)) →
[@tsconfig/node24](https://redirect.github.com/tsconfig/bases) |
devDependencies | replacement | [`22.0.5` ->
`24.0.0`](https://renovatebot.com/diffs/npm/@tsconfig%2fnode22/22.0.5/)
| | |
|
[@vitejs/plugin-vue](https://redirect.github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme)
([source](https://redirect.github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue))
| devDependencies | patch | [`6.0.2` ->
`6.0.3`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue/6.0.2/6.0.3)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-vue/6.0.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-vue/6.0.2/6.0.3?slim=true)
|
| [eslint](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint)) | devDependencies
| patch | [`9.39.1` ->
`9.39.2`](https://renovatebot.com/diffs/npm/eslint/9.39.1/9.39.2) |
![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/9.39.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/9.39.1/9.39.2?slim=true)
|

⚠️ Renovate's replacement functionality [does not
currently](https://redirect.github.com/renovatebot/renovate/issues/39400)
wire in the release age for a package, so the Minimum Release Age checks
can apply. You will need to manually validate the Minimum Release Age
for these package(s).

This is a special PR that replaces `@tsconfig/node22` with the community
suggested minimal stable replacement version.

---

### Release Notes

<details>
<summary>vitejs/vite-plugin-vue (@&#8203;vitejs/plugin-vue)</summary>

###
[`v6.0.3`](https://redirect.github.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#small-603-2025-12-12-small)

##### Features

- add Vite 8 support
([2080d41](2080d41139))

##### Bug Fixes

- **deps:** update all non-major dependencies
([#&#8203;707](https://redirect.github.com/vitejs/vite-plugin-vue/issues/707))
([799f419](799f419565))
- **hmr:** reload when components switch between vapor and vdom
([#&#8203;714](https://redirect.github.com/vitejs/vite-plugin-vue/issues/714))
([6c45fe5](6c45fe5294))

##### Performance Improvements

- replace debug with obug
([#&#8203;705](https://redirect.github.com/vitejs/vite-plugin-vue/issues/705))
([684ac30](684ac30f83))

##### Miscellaneous Chores

- **deps:** update upstream
([#&#8203;706](https://redirect.github.com/vitejs/vite-plugin-vue/issues/706))
([d910114](d9101144a8))
- upgrade deps, setup tsgo
([037e540](037e5403e9))

</details>

<details>
<summary>eslint/eslint (eslint)</summary>

###
[`v9.39.2`](https://redirect.github.com/eslint/eslint/compare/v9.39.1...9278324aa0023d223874825b0d4b6ac75783096a)

[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v9.39.1...v9.39.2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuNTQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <13721712+kolaente@users.noreply.github.com>
2025-12-16 08:51:06 +00:00
Frederick [Bot] 7b4120bb3f chore(i18n): update translations via Crowdin 2025-12-16 00:59:45 +00:00
Alberto Avon b984d49dc0
fix(menu): alignment of projects and subprojects in sidebar (#1974)
This PR changes the width of the collapse-project-button-placeholder
element in order to match the width of the collapse button that has 0.25
+ 0.5 rem of horizontal padding and the svg element inside has 1.25em of
width.

As you can see from the screenshots, the first and third projects are
misaligned compared to the second one. The same happens with
sub-subprojects.

<img width="253" height="129" alt="image"
src="https://github.com/user-attachments/assets/9ca55415-2303-45b5-8a9e-d1b0e03d44bb"
/>
<img width="258" height="258" alt="image"
src="https://github.com/user-attachments/assets/ff6abfbe-5527-48d2-b8aa-2b34da054e19"
/>

Here there are the same projects with this fix applied. The alignment
seems to be preserved even with deeply nested projects.

<img width="247" height="143" alt="image"
src="https://github.com/user-attachments/assets/6566e37a-2017-43d5-b94d-e3daf1a4eb7f"
/>

<img width="279" height="274" alt="image"
src="https://github.com/user-attachments/assets/95d6afd9-ace8-4d55-95c2-c1f924d4826f"
/>
2025-12-15 15:35:56 +00:00
kolaente 0b3decd869
fix: ensure API consistency for /tasks and empty array responses (#1988)
- Renames the `/tasks/all` endpoint to `/tasks` for consistency with
other collection endpoints like `/projects` and `/labels`
- Returns `[]` instead of `null` for empty pagination results across all
list endpoints
- Updates the frontend service to use the new endpoint path
- Updates API token tests to use the new endpoint path

Fixes #1984
2025-12-15 15:34:13 +00:00
kolaente 4ae72740cb
fix(frontend): require 1s press-and-hold to drag tasks on mobile (#1987)
## Summary
- Adds a 1-second press-and-hold delay before drag mode activates on
touch devices
- Allows users to tap tasks to open them on mobile without accidentally
triggering drag mode
- Only affects touch devices (desktop behavior unchanged via
`delayOnTouchOnly`)

Fixes #1986
2025-12-15 15:15:37 +00:00
renovate[bot] 78e9bc412b
fix(deps): update dependency vue-router to v4.6.4 (#1985)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [vue-router](https://router.vuejs.org)
([source](https://redirect.github.com/vuejs/router)) | [`4.6.3` ->
`4.6.4`](https://renovatebot.com/diffs/npm/vue-router/4.6.3/4.6.4) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vue-router/4.6.4?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-router/4.6.3/4.6.4?slim=true)
|

---

### Release Notes

<details>
<summary>vuejs/router (vue-router)</summary>

###
[`v4.6.4`](https://redirect.github.com/vuejs/router/releases/tag/v4.6.4)

[Compare
Source](https://redirect.github.com/vuejs/router/compare/v4.6.3...v4.6.4)

#####    🚀 Features

- **experimental**:
- Handle redirect types  -  by
[@&#8203;posva](https://redirect.github.com/posva)
[<samp>(92efb)</samp>](https://redirect.github.com/vuejs/router/commit/92efba79)
- Basic alias  -  by [@&#8203;posva](https://redirect.github.com/posva)
[<samp>(ded2d)</samp>](https://redirect.github.com/vuejs/router/commit/ded2d578)

#####    🐞 Bug Fixes

- Make the build output compatible with v4.5  -  by
[@&#8203;drylint](https://redirect.github.com/drylint) in
[#&#8203;2591](https://redirect.github.com/vuejs/router/issues/2591)
[<samp>(42bc2)</samp>](https://redirect.github.com/vuejs/router/commit/42bc246f)
- **experimental**: IsActive with custom params  -  by
[@&#8203;posva](https://redirect.github.com/posva)
[<samp>(edca6)</samp>](https://redirect.github.com/vuejs/router/commit/edca66c6)

#####     [View changes on
GitHub](https://redirect.github.com/vuejs/router/compare/v4.6.3...v4.6.4)

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-15 16:04:39 +01:00
Frederick [Bot] ec2ba1f8fd chore(i18n): update translations via Crowdin 2025-12-15 01:01:19 +00:00
renovate[bot] 01f563ec2d
fix(deps): update dependency @intlify/unplugin-vue-i18n to v11.0.3 (#1983)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@intlify/unplugin-vue-i18n](https://redirect.github.com/intlify/bundle-tools/blob/main/packages/unplugin-vue-i18n/README.md)
([source](https://redirect.github.com/intlify/bundle-tools/tree/HEAD/packages/unplugin-vue-i18n))
| [`11.0.1` ->
`11.0.3`](https://renovatebot.com/diffs/npm/@intlify%2funplugin-vue-i18n/11.0.1/11.0.3)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@intlify%2funplugin-vue-i18n/11.0.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@intlify%2funplugin-vue-i18n/11.0.1/11.0.3?slim=true)
|

---

### Release Notes

<details>
<summary>intlify/bundle-tools
(@&#8203;intlify/unplugin-vue-i18n)</summary>

###
[`v11.0.3`](https://redirect.github.com/intlify/bundle-tools/releases/tag/v11.0.3)

[Compare
Source](https://redirect.github.com/intlify/bundle-tools/compare/v11.0.1...v11.0.3)

<!-- Release notes generated using configuration in .github/release.yml
at v11.0.3 -->

**Full Changelog**:
<https://github.com/intlify/bundle-tools/compare/v11.0.2...v11.0.3>

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-14 14:49:06 +01:00
renovate[bot] 73505980dd
fix(deps): update dependency @sentry/vue to v10.30.0 (#1982)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@sentry/vue](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/vue)
([source](https://redirect.github.com/getsentry/sentry-javascript)) |
[`10.29.0` ->
`10.30.0`](https://renovatebot.com/diffs/npm/@sentry%2fvue/10.29.0/10.30.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fvue/10.30.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fvue/10.29.0/10.30.0?slim=true)
|

---

### Release Notes

<details>
<summary>getsentry/sentry-javascript (@&#8203;sentry/vue)</summary>

###
[`v10.30.0`](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/10.30.0)

[Compare
Source](https://redirect.github.com/getsentry/sentry-javascript/compare/10.29.0...10.30.0)

- feat(nextjs): Deprecate Webpack top-level options
([#&#8203;18343](https://redirect.github.com/getsentry/sentry-javascript/pull/18343))
- feat(node): Capture scope when event loop blocked
([#&#8203;18040](https://redirect.github.com/getsentry/sentry-javascript/pull/18040))
- fix(aws-serverless): Remove hyphens from AWS-lambda origins
([#&#8203;18353](https://redirect.github.com/getsentry/sentry-javascript/pull/18353))
- fix(core): Parse method from Request object in fetch
([#&#8203;18453](https://redirect.github.com/getsentry/sentry-javascript/pull/18453))
- fix(react): Add transaction name guards for rapid lazy-route
navigations
([#&#8203;18346](https://redirect.github.com/getsentry/sentry-javascript/pull/18346))

<details>
  <summary> <strong>Internal Changes</strong> </summary>

- chore(ci): Fix double issue creation for unreferenced PRs
([#&#8203;18442](https://redirect.github.com/getsentry/sentry-javascript/pull/18442))
- chore(deps): bump next from 15.5.4 to 15.5.7 in
/dev-packages/e2e-tests/test-applications/nextjs-15
([#&#8203;18411](https://redirect.github.com/getsentry/sentry-javascript/pull/18411))
- chore(deps): bump next from 15.5.4 to 15.5.7 in
/dev-packages/e2e-tests/test-applications/nextjs-15-intl
([#&#8203;18400](https://redirect.github.com/getsentry/sentry-javascript/pull/18400))
- chore(deps): bump next from 16.0.0 to 16.0.7 in
/dev-packages/e2e-tests/test-applications/nextjs-16
([#&#8203;18399](https://redirect.github.com/getsentry/sentry-javascript/pull/18399))
- chore(deps): bump next from 16.0.0 to 16.0.7 in
/dev-packages/e2e-tests/test-applications/nextjs-16-cacheComponents
([#&#8203;18427](https://redirect.github.com/getsentry/sentry-javascript/pull/18427))
- chore(deps): bump next from 16.0.0 to 16.0.7 in
/dev-packages/e2e-tests/test-applications/nextjs-16-tunnel
([#&#8203;18439](https://redirect.github.com/getsentry/sentry-javascript/pull/18439))
- chore(publish): Fix publish order for `@sentry/types`
([#&#8203;18429](https://redirect.github.com/getsentry/sentry-javascript/pull/18429))
- ci(deps): bump actions/create-github-app-token from 2.1.4 to 2.2.0
([#&#8203;18362](https://redirect.github.com/getsentry/sentry-javascript/pull/18362))

</details>

#### Bundle size 📦 

| Path | Size |
|
-----------------------------------------------------------------------------------------------------
| --------- |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) |
24.23 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) -
with treeshaking flags | 22.76 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Tracing) | 40.57 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Tracing, Profiling) | 45.06 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Tracing, Replay) | 78.09 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Tracing, Replay) - with treeshaking flags | 68.07 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Tracing, Replay with Canvas) | 82.66 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Tracing, Replay, Feedback) | 94.61 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. Feedback) | 40.54 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. sendFeedback) | 28.8 KB |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)
(incl. FeedbackAsync) | 33.68 KB |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react) |
25.9 KB |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react)
(incl. Tracing) | 42.73 KB |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue) | 28.58
KB |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue) (incl.
Tracing) | 42.34 KB |
| [@&#8203;sentry/svelte](https://redirect.github.com/sentry/svelte) |
24.24 KB |
| CDN Bundle | 26.6 KB |
| CDN Bundle (incl. Tracing) | 41.24 KB |
| CDN Bundle (incl. Tracing, Replay) | 76.91 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 82.23 KB |
| CDN Bundle - uncompressed | 78.16 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 122.45 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 235.76 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 248.23
KB |
| [@&#8203;sentry/nextjs](https://redirect.github.com/sentry/nextjs)
(client) | 44.89 KB |
|
[@&#8203;sentry/sveltekit](https://redirect.github.com/sentry/sveltekit)
(client) | 40.94 KB |
|
[@&#8203;sentry/node-core](https://redirect.github.com/sentry/node-core)
| 50.06 KB |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node) |
155.85 KB |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node) -
without tracing | 90.74 KB |
|
[@&#8203;sentry/aws-serverless](https://redirect.github.com/sentry/aws-serverless)
| 105.67 KB |

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-14 11:30:01 +01:00
renovate[bot] c166903ed6
chore(deps): update dependency sass-embedded to v1.96.0 (#1981)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [sass-embedded](https://redirect.github.com/sass/embedded-host-node) |
[`1.95.1` ->
`1.96.0`](https://renovatebot.com/diffs/npm/sass-embedded/1.95.1/1.96.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/sass-embedded/1.96.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sass-embedded/1.95.1/1.96.0?slim=true)
|

---

### Release Notes

<details>
<summary>sass/embedded-host-node (sass-embedded)</summary>

###
[`v1.96.0`](https://redirect.github.com/sass/embedded-host-node/blob/HEAD/CHANGELOG.md#1960)

[Compare
Source](https://redirect.github.com/sass/embedded-host-node/compare/1.95.1...1.96.0)

- Allow numbers with complex units (more than one numerator unit or more
than
  zero denominator units) to be emitted to CSS. These are now emitted as
  `calc()` expressions, which now support complex units in plain CSS.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-14 09:50:40 +01:00
renovate[bot] bd2527a201
fix(deps): update dependency tailwindcss to v3.4.19 (#1980)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [tailwindcss](https://tailwindcss.com)
([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss))
| [`3.4.18` ->
`3.4.19`](https://renovatebot.com/diffs/npm/tailwindcss/3.4.18/3.4.19) |
![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/3.4.19?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/3.4.18/3.4.19?slim=true)
|

---

### Release Notes

<details>
<summary>tailwindlabs/tailwindcss (tailwindcss)</summary>

###
[`v3.4.19`](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.18...v3.4.19)

[Compare
Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.18...v3.4.19)

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-14 09:50:22 +01:00
Frederick [Bot] 622e4899d6 chore(i18n): update translations via Crowdin 2025-12-14 01:03:44 +00:00
renovate[bot] 5a907c7a48
chore(deps): update dev-dependencies (#1978)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`22.19.1` ->
`22.19.2`](https://renovatebot.com/diffs/npm/@types%2fnode/22.19.1/22.19.2)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.19.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.19.1/22.19.2?slim=true)
|
|
[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`8.48.1` ->
`8.49.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.48.1/8.49.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/8.49.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/8.48.1/8.49.0?slim=true)
|
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`8.48.1` ->
`8.49.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.48.1/8.49.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/8.49.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/8.48.1/8.49.0?slim=true)
|
| [caniuse-lite](https://redirect.github.com/browserslist/caniuse-lite)
| [`1.0.30001759` ->
`1.0.30001760`](https://renovatebot.com/diffs/npm/caniuse-lite/1.0.30001759/1.0.30001760)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/caniuse-lite/1.0.30001760?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/caniuse-lite/1.0.30001759/1.0.30001760?slim=true)
|
| [sass-embedded](https://redirect.github.com/sass/embedded-host-node) |
[`1.93.3` ->
`1.95.1`](https://renovatebot.com/diffs/npm/sass-embedded/1.93.3/1.95.1)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/sass-embedded/1.95.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sass-embedded/1.93.3/1.95.1?slim=true)
|
| [vite](https://vite.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`7.2.6` ->
`7.2.7`](https://renovatebot.com/diffs/npm/vite/7.2.6/7.2.7) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vite/7.2.7?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/7.2.6/7.2.7?slim=true)
|
| [vue-tsc](https://redirect.github.com/vuejs/language-tools)
([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`3.1.6` ->
`3.1.8`](https://renovatebot.com/diffs/npm/vue-tsc/3.1.6/3.1.8) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/3.1.8?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/3.1.6/3.1.8?slim=true)
|

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v8.49.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8490-2025-12-08)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.48.1...v8.49.0)

##### 🚀 Features

- **eslint-plugin:** use `Intl.Segmenter` instead of `graphemer`
([#&#8203;11804](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11804))

##### 🩹 Fixes

- **deps:** update dependency prettier to v3.7.2
([#&#8203;11820](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11820))

##### ❤️ Thank You

- Justin McBride
- Kirk Waiblinger
[@&#8203;kirkwaiblinger](https://redirect.github.com/kirkwaiblinger)

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v8.49.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8490-2025-12-08)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.48.1...v8.49.0)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>browserslist/caniuse-lite (caniuse-lite)</summary>

###
[`v1.0.30001760`](https://redirect.github.com/browserslist/caniuse-lite/compare/1.0.30001759...1.0.30001760)

[Compare
Source](https://redirect.github.com/browserslist/caniuse-lite/compare/1.0.30001759...1.0.30001760)

</details>

<details>
<summary>sass/embedded-host-node (sass-embedded)</summary>

###
[`v1.95.1`](https://redirect.github.com/sass/embedded-host-node/blob/HEAD/CHANGELOG.md#1951)

[Compare
Source](https://redirect.github.com/sass/embedded-host-node/compare/1.93.3...1.95.1)

- No user-visible changes.

</details>

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v7.2.7`](https://redirect.github.com/vitejs/vite/compare/v7.2.6...v7.2.7)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.2.6...v7.2.7)

</details>

<details>
<summary>vuejs/language-tools (vue-tsc)</summary>

###
[`v3.1.8`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#318-2025-12-09)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v3.1.7...v3.1.8)

##### Features

- feat(vscode): support multiline attribute for `<script>` and `<style>`
tag
([#&#8203;5830](https://redirect.github.com/vuejs/language-tools/issues/5830))
- Thanks to [@&#8203;serkodev](https://redirect.github.com/serkodev)!
- feat(vscode): supports format with selected range
([#&#8203;5761](https://redirect.github.com/vuejs/language-tools/issues/5761))
- Thanks to [@&#8203;serkodev](https://redirect.github.com/serkodev)!
- feat(language-service): add tsconfig-based document link support for
Pug

##### Bug Fixes

- fix(language-core): limit the range of parseDiagnostics checks
([#&#8203;5823](https://redirect.github.com/vuejs/language-tools/issues/5823))
- fix(language-core): restore default import bindings for template scope
([#&#8203;5824](https://redirect.github.com/vuejs/language-tools/issues/5824))
- Thanks to [@&#8203;serkodev](https://redirect.github.com/serkodev)!
- fix(typescript-plugin): get `preferences` and `formatOptions` in
tsserver
([#&#8203;5829](https://redirect.github.com/vuejs/language-tools/issues/5829))
- fix(language-core): avoid generating component options within the
setup scope
([#&#8203;5832](https://redirect.github.com/vuejs/language-tools/issues/5832))

##### Other Changes

- perf(language-core): dedupe component options generation
([#&#8203;5831](https://redirect.github.com/vuejs/language-tools/issues/5831))

###
[`v3.1.7`](https://redirect.github.com/vuejs/language-tools/compare/v3.1.6...20dcd47c0cb4ce30e2c5e3ef1986ce297c218a06)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v3.1.6...v3.1.7)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-13 10:18:23 +01:00
Frederick [Bot] 26e5a36adc chore(i18n): update translations via Crowdin 2025-12-13 00:56:00 +00:00
kolaente ad1a5f9b5c
chore(tests): remove Cypress, use Playwright exclusively (#1976)
- Removes Cypress test framework entirely, using only Playwright for E2E tests
- All Cypress tests were already covered by Playwright; added 2 missing tests for URL filter/search parameters
- Removes ~2000 lines of Cypress code and configuration
- Updated ESLint and Stylelint configurations to reflect testing changes

🐰 Farewell to Cypress, dear and bright,
We hop to Playwright's testing light,
Factories cleared, the config gone,
Our tests now march in Playwright's song!
~ The Testing Rabbit
2025-12-12 20:07:18 +00:00
kolaente d390ccab27
fix(tests): unskip and fix Playwright E2E tests (#1973)
- Re-enable 16 previously skipped Playwright E2E tests that now pass
- Fix test setup issues that were causing flakiness

## Changes
- **task/task.spec.ts** (8 tests): kanban navigation, description
editing, assignees, labels, due dates
- **task/overview.spec.ts** (4 tests): task ordering, due date handling
- **user/settings.spec.ts** (2 tests): avatar upload, name update
- **user/login.spec.ts** (2 tests): bad password error, redirect after
login

## Key fixes
- Kanban view tests now properly create `TaskBucket` entries so tasks
appear in the kanban board
- Avatar upload test uses the API directly to avoid `canvas.toBlob()`
issues in headless browser environments
- Login redirect test no longer uses the shared `login()` helper that
expected redirect to `/`
2025-12-12 16:20:22 +00:00
kolaente 1288d0a99c
feat: make sidebar resizable (#1965)
Closes: #525

* Sidebar width is now adjustable via dragging
* The width is automatically saved to settings and restored across sessions.
2025-12-12 10:46:46 +00:00
Frederick [Bot] 803effbb8f chore(i18n): update translations via Crowdin 2025-12-12 00:59:39 +00:00
kolaente 8b6082e8c7
feat(kanban): add setting to always show bucket task count (#1966)
Added "Always show task count on Kanban buckets" setting in user preferences to control the visibility of task counts on Kanban bucket headers
2025-12-11 23:27:13 +00:00
renovate[bot] 41777664a4
fix(deps): update dependency dompurify to v3.3.1 (#1967)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [dompurify](https://redirect.github.com/cure53/DOMPurify) | [`3.3.0`
-> `3.3.1`](https://renovatebot.com/diffs/npm/dompurify/3.3.0/3.3.1) |
![age](https://developer.mend.io/api/mc/badges/age/npm/dompurify/3.3.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/dompurify/3.3.0/3.3.1?slim=true)
|

---

### Release Notes

<details>
<summary>cure53/DOMPurify (dompurify)</summary>

###
[`v3.3.1`](https://redirect.github.com/cure53/DOMPurify/releases/tag/3.3.1):
DOMPurify 3.3.1

[Compare
Source](https://redirect.github.com/cure53/DOMPurify/compare/3.3.0...3.3.1)

- Updated `ADD_FORBID_CONTENTS` setting to extend default list, thanks
[@&#8203;MariusRumpf](https://redirect.github.com/MariusRumpf)
- Updated the ESM import syntax to be more correct, thanks
[@&#8203;binhpv](https://redirect.github.com/binhpv)

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-11 21:12:06 +01:00
renovate[bot] a9e80f9bf8
chore(deps): update pnpm to v10.25.0 (#1968)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.24.0` ->
`10.25.0`](https://renovatebot.com/diffs/npm/pnpm/10.24.0/10.25.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.25.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.24.0/10.25.0?slim=true)
|

---

### Release Notes

<details>
<summary>pnpm/pnpm (pnpm)</summary>

###
[`v10.25.0`](https://redirect.github.com/pnpm/pnpm/compare/v10.24.0...v10.25.0)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.24.0...v10.25.0)

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-11 20:55:06 +01:00
Frederick [Bot] 24e954ee69 chore(i18n): update translations via Crowdin 2025-12-11 01:00:11 +00:00
kolaente 48780d729b
fix(editor): make url bar appear at the correct position when scrolling (#1963)
Resolves https://github.com/go-vikunja/vikunja/issues/1899

* Fixed input prompt popup positioning to remain correctly placed when
scrolling the page.
  * Improved popup cleanup and event listener management when closed.
2025-12-10 20:40:53 +00:00
kolaente f88416eed7 fix(editor): url toolbar background color in dark mode 2025-12-10 21:38:51 +01:00
renovate[bot] ca16cfa0be
chore(deps): update node.js to v24.12.0 (#1962)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [node](https://nodejs.org)
([source](https://redirect.github.com/nodejs/node)) | minor | `24.11.1`
-> `24.12.0` |

---

### Release Notes

<details>
<summary>nodejs/node (node)</summary>

###
[`v24.12.0`](https://redirect.github.com/nodejs/node/releases/tag/v24.12.0):
2025-12-10, Version 24.12.0 &#x27;Krypton&#x27; (LTS), @&#8203;targos

[Compare
Source](https://redirect.github.com/nodejs/node/compare/v24.11.1...v24.12.0)

##### Notable Changes

-
\[[`1a00b5f68a`](https://redirect.github.com/nodejs/node/commit/1a00b5f68a)]
- **(SEMVER-MINOR)** **http**: add optimizeEmptyRequests server option
(Rafael Gonzaga)
[#&#8203;59778](https://redirect.github.com/nodejs/node/pull/59778)
-
\[[`ff5754077d`](https://redirect.github.com/nodejs/node/commit/ff5754077d)]
- **(SEMVER-MINOR)** **lib**: add options to util.deprecate (Rafael
Gonzaga)
[#&#8203;59982](https://redirect.github.com/nodejs/node/pull/59982)
-
\[[`8987159234`](https://redirect.github.com/nodejs/node/commit/8987159234)]
- **(SEMVER-MINOR)** **module**: mark type stripping as stable (Marco
Ippolito)
[#&#8203;60600](https://redirect.github.com/nodejs/node/pull/60600)
-
\[[`92c484ebf4`](https://redirect.github.com/nodejs/node/commit/92c484ebf4)]
- **(SEMVER-MINOR)** **node-api**: add
napi\_create\_object\_with\_properties (Miguel Marcondes Filho)
[#&#8203;59953](https://redirect.github.com/nodejs/node/pull/59953)
-
\[[`b11bc5984e`](https://redirect.github.com/nodejs/node/commit/b11bc5984e)]
- **(SEMVER-MINOR)** **sqlite**: allow setting defensive flag (Bart
Louwers)
[#&#8203;60217](https://redirect.github.com/nodejs/node/pull/60217)
-
\[[`e7da5b4b7d`](https://redirect.github.com/nodejs/node/commit/e7da5b4b7d)]
- **(SEMVER-MINOR)** **src**: add watch config namespace (Marco
Ippolito)
[#&#8203;60178](https://redirect.github.com/nodejs/node/pull/60178)
-
\[[`a7f7d10c06`](https://redirect.github.com/nodejs/node/commit/a7f7d10c06)]
- **(SEMVER-MINOR)** **src**: add an option to make compile cache
portable (Aditi)
[#&#8203;58797](https://redirect.github.com/nodejs/node/pull/58797)
-
\[[`92ea669240`](https://redirect.github.com/nodejs/node/commit/92ea669240)]
- **(SEMVER-MINOR)** **src,permission**: add --allow-inspector ability
(Rafael Gonzaga)
[#&#8203;59711](https://redirect.github.com/nodejs/node/pull/59711)
-
\[[`05d7509bd2`](https://redirect.github.com/nodejs/node/commit/05d7509bd2)]
- **(SEMVER-MINOR)** **v8**: add cpu profile (theanarkh)
[#&#8203;59807](https://redirect.github.com/nodejs/node/pull/59807)

##### Commits

-
\[[`e4a23a35ac`](https://redirect.github.com/nodejs/node/commit/e4a23a35ac)]
- **benchmark**: focus on import.meta intialization in import-meta
benchmark (Joyee Cheung)
[#&#8203;60603](https://redirect.github.com/nodejs/node/pull/60603)
-
\[[`b6114ae5c9`](https://redirect.github.com/nodejs/node/commit/b6114ae5c9)]
- **benchmark**: add per-suite setup option (Joyee Cheung)
[#&#8203;60574](https://redirect.github.com/nodejs/node/pull/60574)
-
\[[`ac8e90af7c`](https://redirect.github.com/nodejs/node/commit/ac8e90af7c)]
- **buffer**: speed up concat via TypedArray#set (Gürgün Dayıoğlu)
[#&#8203;60399](https://redirect.github.com/nodejs/node/pull/60399)
-
\[[`acbc8ca13e`](https://redirect.github.com/nodejs/node/commit/acbc8ca13e)]
- **build**: upgrade Python linter ruff, add rules ASYNC,PERF (Christian
Clauss)
[#&#8203;59984](https://redirect.github.com/nodejs/node/pull/59984)
-
\[[`f97a609a07`](https://redirect.github.com/nodejs/node/commit/f97a609a07)]
- **console**: optimize single-string logging (Gürgün Dayıoğlu)
[#&#8203;60422](https://redirect.github.com/nodejs/node/pull/60422)
-
\[[`6cd9bdc580`](https://redirect.github.com/nodejs/node/commit/6cd9bdc580)]
- **crypto**: ensure documented RSA-PSS saltLength default is used
(Filip Skokan)
[#&#8203;60662](https://redirect.github.com/nodejs/node/pull/60662)
-
\[[`0fafe24d9b`](https://redirect.github.com/nodejs/node/commit/0fafe24d9b)]
- **crypto**: fix argument validation in crypto.timingSafeEqual fast
path (Joyee Cheung)
[#&#8203;60538](https://redirect.github.com/nodejs/node/pull/60538)
-
\[[`54421e0419`](https://redirect.github.com/nodejs/node/commit/54421e0419)]
- **debugger**: fix event listener leak in the run command (Joyee
Cheung)
[#&#8203;60464](https://redirect.github.com/nodejs/node/pull/60464)
-
\[[`c361a628b4`](https://redirect.github.com/nodejs/node/commit/c361a628b4)]
- **deps**: V8: cherry-pick
[`72b0e27`](https://redirect.github.com/nodejs/node/commit/72b0e27bd936)
(pthier)
[#&#8203;60732](https://redirect.github.com/nodejs/node/pull/60732)
-
\[[`c70f4588dd`](https://redirect.github.com/nodejs/node/commit/c70f4588dd)]
- **deps**: V8: cherry-pick
[`6bb32bd`](https://redirect.github.com/nodejs/node/commit/6bb32bd2c194)
(Erik Corry)
[#&#8203;60732](https://redirect.github.com/nodejs/node/pull/60732)
-
\[[`881fe784c5`](https://redirect.github.com/nodejs/node/commit/881fe784c5)]
- **deps**: V8: cherry-pick
[`0dd2318`](https://redirect.github.com/nodejs/node/commit/0dd2318b5237)
(Erik Corry)
[#&#8203;60732](https://redirect.github.com/nodejs/node/pull/60732)
-
\[[`457c33efcc`](https://redirect.github.com/nodejs/node/commit/457c33efcc)]
- **deps**: V8: cherry-pick
[`df20105`](https://redirect.github.com/nodejs/node/commit/df20105ccf36)
(Erik Corry)
[#&#8203;60732](https://redirect.github.com/nodejs/node/pull/60732)
-
\[[`0bf45a829c`](https://redirect.github.com/nodejs/node/commit/0bf45a829c)]
- **deps**: V8: backport
[`e5dbbba`](https://redirect.github.com/nodejs/node/commit/e5dbbbadcbff)
(Darshan Sen)
[#&#8203;60524](https://redirect.github.com/nodejs/node/pull/60524)
-
\[[`4993bdc476`](https://redirect.github.com/nodejs/node/commit/4993bdc476)]
- **deps**: V8: cherry-pick
[`5ba9200`](https://redirect.github.com/nodejs/node/commit/5ba9200cd046)
(Juan José Arboleda)
[#&#8203;60620](https://redirect.github.com/nodejs/node/pull/60620)
-
\[[`1e9abe0078`](https://redirect.github.com/nodejs/node/commit/1e9abe0078)]
- **deps**: update corepack to 0.34.5 (Node.js GitHub Bot)
[#&#8203;60842](https://redirect.github.com/nodejs/node/pull/60842)
-
\[[`3f704ed08f`](https://redirect.github.com/nodejs/node/commit/3f704ed08f)]
- **deps**: update corepack to 0.34.4 (Node.js GitHub Bot)
[#&#8203;60643](https://redirect.github.com/nodejs/node/pull/60643)
-
\[[`04e360fdb1`](https://redirect.github.com/nodejs/node/commit/04e360fdb1)]
- **deps**: V8: cherry-pick
[`06bf293`](https://redirect.github.com/nodejs/node/commit/06bf293610ef),
[`146962d`](https://redirect.github.com/nodejs/node/commit/146962dda8d2)
and
[`e0fb10b`](https://redirect.github.com/nodejs/node/commit/e0fb10b5148c)
(Michaël Zasso)
[#&#8203;60713](https://redirect.github.com/nodejs/node/pull/60713)
-
\[[`fcbd8dbbde`](https://redirect.github.com/nodejs/node/commit/fcbd8dbbde)]
- **deps**: patch V8 to 13.6.233.17 (Michaël Zasso)
[#&#8203;60712](https://redirect.github.com/nodejs/node/pull/60712)
-
\[[`28e9433f39`](https://redirect.github.com/nodejs/node/commit/28e9433f39)]
- **deps**: V8: cherry-pick
[`8735658`](https://redirect.github.com/nodejs/node/commit/87356585659b)
(Joyee Cheung)
[#&#8203;60069](https://redirect.github.com/nodejs/node/pull/60069)
-
\[[`3cac85b243`](https://redirect.github.com/nodejs/node/commit/3cac85b243)]
- **deps**: V8: backport
[`2e4c5cf`](https://redirect.github.com/nodejs/node/commit/2e4c5cf9b112)
(Michaël Zasso)
[#&#8203;60654](https://redirect.github.com/nodejs/node/pull/60654)
-
\[[`1daece1970`](https://redirect.github.com/nodejs/node/commit/1daece1970)]
- **deps**: call OPENSSL\_free after ANS1\_STRING\_to\_UTF8 (Rafael
Gonzaga)
[#&#8203;60609](https://redirect.github.com/nodejs/node/pull/60609)
-
\[[`5f55a9c9ea`](https://redirect.github.com/nodejs/node/commit/5f55a9c9ea)]
- **deps**: nghttp2: revert
[`7784fa9`](https://redirect.github.com/nodejs/node/commit/7784fa979d0b)
(Antoine du Hamel)
[#&#8203;59790](https://redirect.github.com/nodejs/node/pull/59790)
-
\[[`1d9e7c1f4d`](https://redirect.github.com/nodejs/node/commit/1d9e7c1f4d)]
- **deps**: update nghttp2 to 1.67.1 (nodejs-github-bot)
[#&#8203;59790](https://redirect.github.com/nodejs/node/pull/59790)
-
\[[`3140415068`](https://redirect.github.com/nodejs/node/commit/3140415068)]
- **deps**: update simdjson to 4.1.0 (Node.js GitHub Bot)
[#&#8203;60542](https://redirect.github.com/nodejs/node/pull/60542)
-
\[[`d911f9f1b8`](https://redirect.github.com/nodejs/node/commit/d911f9f1b8)]
- **deps**: update amaro to 1.1.5 (Node.js GitHub Bot)
[#&#8203;60541](https://redirect.github.com/nodejs/node/pull/60541)
-
\[[`daaaf04a32`](https://redirect.github.com/nodejs/node/commit/daaaf04a32)]
- **deps**: V8: cherry-pick
[`2abc613`](https://redirect.github.com/nodejs/node/commit/2abc61361dd4)
(Richard Lau)
[#&#8203;60177](https://redirect.github.com/nodejs/node/pull/60177)
-
\[[`b4f63ee5f8`](https://redirect.github.com/nodejs/node/commit/b4f63ee5f8)]
- **doc**: update Collaborators list to reflect hybrist handle change
(Antoine du Hamel)
[#&#8203;60650](https://redirect.github.com/nodejs/node/pull/60650)
-
\[[`effcf7a8ab`](https://redirect.github.com/nodejs/node/commit/effcf7a8ab)]
- **doc**: fix link in `--env-file=file` section (N. Bighetti)
[#&#8203;60563](https://redirect.github.com/nodejs/node/pull/60563)
-
\[[`7011736703`](https://redirect.github.com/nodejs/node/commit/7011736703)]
- **doc**: fix linter issues (Antoine du Hamel)
[#&#8203;60636](https://redirect.github.com/nodejs/node/pull/60636)
-
\[[`5cc79d8945`](https://redirect.github.com/nodejs/node/commit/5cc79d8945)]
- **doc**: add missing history entry for `sqlite.md` (Antoine du Hamel)
[#&#8203;60607](https://redirect.github.com/nodejs/node/pull/60607)
-
\[[`bbc649057c`](https://redirect.github.com/nodejs/node/commit/bbc649057c)]
- **doc**: correct values/references for buffer.kMaxLength (René)
[#&#8203;60305](https://redirect.github.com/nodejs/node/pull/60305)
-
\[[`ea7ecb517b`](https://redirect.github.com/nodejs/node/commit/ea7ecb517b)]
- **doc**: recommend events.once to manage 'close' event (Dan Fabulich)
[#&#8203;60017](https://redirect.github.com/nodejs/node/pull/60017)
-
\[[`58bff04cc2`](https://redirect.github.com/nodejs/node/commit/58bff04cc2)]
- **doc**: highlight module loading difference between import and
require (Ajay A)
[#&#8203;59815](https://redirect.github.com/nodejs/node/pull/59815)
-
\[[`bbcbff9b4d`](https://redirect.github.com/nodejs/node/commit/bbcbff9b4d)]
- **doc**: add CJS code snippets in `sqlite.md` (Allon Murienik)
[#&#8203;60395](https://redirect.github.com/nodejs/node/pull/60395)
-
\[[`f8af33d5a7`](https://redirect.github.com/nodejs/node/commit/f8af33d5a7)]
- **doc**: fix typo in `process.unref` documentation (우혁)
[#&#8203;59698](https://redirect.github.com/nodejs/node/pull/59698)
-
\[[`df105dc351`](https://redirect.github.com/nodejs/node/commit/df105dc351)]
- **doc**: add some entries to `glossary.md` (Mohataseem Khan)
[#&#8203;59277](https://redirect.github.com/nodejs/node/pull/59277)
-
\[[`4955cb2b5b`](https://redirect.github.com/nodejs/node/commit/4955cb2b5b)]
- **doc**: improve agent.createConnection docs for http and https agents
(JaeHo Jang)
[#&#8203;58205](https://redirect.github.com/nodejs/node/pull/58205)
-
\[[`6283bb5cc9`](https://redirect.github.com/nodejs/node/commit/6283bb5cc9)]
- **doc**: fix pseudo code in modules.md (chirsz)
[#&#8203;57677](https://redirect.github.com/nodejs/node/pull/57677)
-
\[[`d5059ea537`](https://redirect.github.com/nodejs/node/commit/d5059ea537)]
- **doc**: add missing variable in code snippet (Koushil Mankali)
[#&#8203;55478](https://redirect.github.com/nodejs/node/pull/55478)
-
\[[`900de373ae`](https://redirect.github.com/nodejs/node/commit/900de373ae)]
- **doc**: add missing word in `single-executable-applications.md`
(Konstantin Tsabolov)
[#&#8203;53864](https://redirect.github.com/nodejs/node/pull/53864)
-
\[[`5735044c8b`](https://redirect.github.com/nodejs/node/commit/5735044c8b)]
- **doc**: fix typo in http.md (Michael Solomon)
[#&#8203;59354](https://redirect.github.com/nodejs/node/pull/59354)
-
\[[`2dee6df831`](https://redirect.github.com/nodejs/node/commit/2dee6df831)]
- **doc**: update devcontainer.json and add documentation (Joyee Cheung)
[#&#8203;60472](https://redirect.github.com/nodejs/node/pull/60472)
-
\[[`8f2d98d7d2`](https://redirect.github.com/nodejs/node/commit/8f2d98d7d2)]
- **doc**: add haramj as triager (Haram Jeong)
[#&#8203;60348](https://redirect.github.com/nodejs/node/pull/60348)
-
\[[`bbd7fdfff4`](https://redirect.github.com/nodejs/node/commit/bbd7fdfff4)]
- **doc**: clarify require(esm) description (dynst)
[#&#8203;60520](https://redirect.github.com/nodejs/node/pull/60520)
-
\[[`33ad11a764`](https://redirect.github.com/nodejs/node/commit/33ad11a764)]
- **doc**: instantiate resolver object (Donghoon Nam)
[#&#8203;60476](https://redirect.github.com/nodejs/node/pull/60476)
-
\[[`81a61274f3`](https://redirect.github.com/nodejs/node/commit/81a61274f3)]
- **doc**: correct module loading descriptions (Joyee Cheung)
[#&#8203;60346](https://redirect.github.com/nodejs/node/pull/60346)
-
\[[`77911185fe`](https://redirect.github.com/nodejs/node/commit/77911185fe)]
- **doc**: clarify --use-system-ca support status (Joyee Cheung)
[#&#8203;60340](https://redirect.github.com/nodejs/node/pull/60340)
-
\[[`185f6e95d9`](https://redirect.github.com/nodejs/node/commit/185f6e95d9)]
- **doc,crypto**: link keygen to supported types (Filip Skokan)
[#&#8203;60585](https://redirect.github.com/nodejs/node/pull/60585)
-
\[[`772d6c6608`](https://redirect.github.com/nodejs/node/commit/772d6c6608)]
- **doc,src,lib**: clarify experimental status of Web Storage support
(Antoine du Hamel)
[#&#8203;60708](https://redirect.github.com/nodejs/node/pull/60708)
-
\[[`ad98e11ac2`](https://redirect.github.com/nodejs/node/commit/ad98e11ac2)]
- **esm**: use sync loading/resolving on non-loader-hook thread (Joyee
Cheung)
[#&#8203;60380](https://redirect.github.com/nodejs/node/pull/60380)
-
\[[`1a00b5f68a`](https://redirect.github.com/nodejs/node/commit/1a00b5f68a)]
- **(SEMVER-MINOR)** **http**: add optimizeEmptyRequests server option
(Rafael Gonzaga)
[#&#8203;59778](https://redirect.github.com/nodejs/node/pull/59778)
-
\[[`5703ce68bc`](https://redirect.github.com/nodejs/node/commit/5703ce68bc)]
- **http**: replace startsWith with strict equality (btea)
[#&#8203;59394](https://redirect.github.com/nodejs/node/pull/59394)
-
\[[`2b696ffad8`](https://redirect.github.com/nodejs/node/commit/2b696ffad8)]
- **http2**: add diagnostics channels for client stream request body
(Darshan Sen)
[#&#8203;60480](https://redirect.github.com/nodejs/node/pull/60480)
-
\[[`dbdf4cb5a5`](https://redirect.github.com/nodejs/node/commit/dbdf4cb5a5)]
- **inspector**: inspect HTTP response body (Chengzhong Wu)
[#&#8203;60572](https://redirect.github.com/nodejs/node/pull/60572)
-
\[[`9dc9a7d33d`](https://redirect.github.com/nodejs/node/commit/9dc9a7d33d)]
- **inspector**: support inspecting HTTP/2 request and response bodies
(Darshan Sen)
[#&#8203;60483](https://redirect.github.com/nodejs/node/pull/60483)
-
\[[`89fa2befe4`](https://redirect.github.com/nodejs/node/commit/89fa2befe4)]
- **inspector**: fix crash when receiving non json message (Shima
Ryuhei)
[#&#8203;60388](https://redirect.github.com/nodejs/node/pull/60388)
-
\[[`ff5754077d`](https://redirect.github.com/nodejs/node/commit/ff5754077d)]
- **(SEMVER-MINOR)** **lib**: add options to util.deprecate (Rafael
Gonzaga)
[#&#8203;59982](https://redirect.github.com/nodejs/node/pull/59982)
-
\[[`33baaf42c8`](https://redirect.github.com/nodejs/node/commit/33baaf42c8)]
- **lib**: replace global SharedArrayBuffer constructor with bound
method (Renegade334)
[#&#8203;60497](https://redirect.github.com/nodejs/node/pull/60497)
-
\[[`b047586a08`](https://redirect.github.com/nodejs/node/commit/b047586a08)]
- **meta**: bump actions/download-artifact from 5.0.0 to 6.0.0
(dependabot\[bot])
[#&#8203;60532](https://redirect.github.com/nodejs/node/pull/60532)
-
\[[`64192176d7`](https://redirect.github.com/nodejs/node/commit/64192176d7)]
- **meta**: bump actions/upload-artifact from 4.6.2 to 5.0.0
(dependabot\[bot])
[#&#8203;60531](https://redirect.github.com/nodejs/node/pull/60531)
-
\[[`af6d4a6b9b`](https://redirect.github.com/nodejs/node/commit/af6d4a6b9b)]
- **meta**: bump github/codeql-action from 3.30.5 to 4.31.2
(dependabot\[bot])
[#&#8203;60533](https://redirect.github.com/nodejs/node/pull/60533)
-
\[[`c17276fd24`](https://redirect.github.com/nodejs/node/commit/c17276fd24)]
- **meta**: bump actions/setup-node from 5.0.0 to 6.0.0
(dependabot\[bot])
[#&#8203;60529](https://redirect.github.com/nodejs/node/pull/60529)
-
\[[`6e8b52a7dc`](https://redirect.github.com/nodejs/node/commit/6e8b52a7dc)]
- **meta**: bump actions/stale from 10.0.0 to 10.1.0 (dependabot\[bot])
[#&#8203;60528](https://redirect.github.com/nodejs/node/pull/60528)
-
\[[`a12658595b`](https://redirect.github.com/nodejs/node/commit/a12658595b)]
- **meta**: call `create-release-post.yml` post release (Aviv Keller)
[#&#8203;60366](https://redirect.github.com/nodejs/node/pull/60366)
-
\[[`8987159234`](https://redirect.github.com/nodejs/node/commit/8987159234)]
- **(SEMVER-MINOR)** **module**: mark type stripping as stable (Marco
Ippolito)
[#&#8203;60600](https://redirect.github.com/nodejs/node/pull/60600)
-
\[[`36da413663`](https://redirect.github.com/nodejs/node/commit/36da413663)]
- **module**: fix directory option in the enableCompileCache() API
(Joyee Cheung)
[#&#8203;59931](https://redirect.github.com/nodejs/node/pull/59931)
-
\[[`92c484ebf4`](https://redirect.github.com/nodejs/node/commit/92c484ebf4)]
- **(SEMVER-MINOR)** **node-api**: add
napi\_create\_object\_with\_properties (Miguel Marcondes Filho)
[#&#8203;59953](https://redirect.github.com/nodejs/node/pull/59953)
-
\[[`545162b0d4`](https://redirect.github.com/nodejs/node/commit/545162b0d4)]
- **node-api**: use local files for instanceof test (Vladimir Morozov)
[#&#8203;60190](https://redirect.github.com/nodejs/node/pull/60190)
-
\[[`526c011d89`](https://redirect.github.com/nodejs/node/commit/526c011d89)]
- **perf\_hooks**: fix stack overflow error (Antoine du Hamel)
[#&#8203;60084](https://redirect.github.com/nodejs/node/pull/60084)
-
\[[`1de0476939`](https://redirect.github.com/nodejs/node/commit/1de0476939)]
- **perf\_hooks**: move non-standard performance properties to
perf\_hooks (Chengzhong Wu)
[#&#8203;60370](https://redirect.github.com/nodejs/node/pull/60370)
-
\[[`07ec1239ef`](https://redirect.github.com/nodejs/node/commit/07ec1239ef)]
- **repl**: fix pasting after moving the cursor to the left (Ruben
Bridgewater)
[#&#8203;60470](https://redirect.github.com/nodejs/node/pull/60470)
-
\[[`b11bc5984e`](https://redirect.github.com/nodejs/node/commit/b11bc5984e)]
- **(SEMVER-MINOR)** **sqlite**: allow setting defensive flag (Bart
Louwers)
[#&#8203;60217](https://redirect.github.com/nodejs/node/pull/60217)
-
\[[`273c9661fd`](https://redirect.github.com/nodejs/node/commit/273c9661fd)]
- **sqlite,doc**: fix StatementSync section (Edy Silva)
[#&#8203;60474](https://redirect.github.com/nodejs/node/pull/60474)
-
\[[`d92ec21a4c`](https://redirect.github.com/nodejs/node/commit/d92ec21a4c)]
- **src**: use CP\_UTF8 for wide file names on win32 (Fedor Indutny)
[#&#8203;60575](https://redirect.github.com/nodejs/node/pull/60575)
-
\[[`baef0468ed`](https://redirect.github.com/nodejs/node/commit/baef0468ed)]
- **src**: move Node-API version detection to where it is used (Anna
Henningsen)
[#&#8203;60512](https://redirect.github.com/nodejs/node/pull/60512)
-
\[[`e7da5b4b7d`](https://redirect.github.com/nodejs/node/commit/e7da5b4b7d)]
- **(SEMVER-MINOR)** **src**: add watch config namespace (Marco
Ippolito)
[#&#8203;60178](https://redirect.github.com/nodejs/node/pull/60178)
-
\[[`a7f7d10c06`](https://redirect.github.com/nodejs/node/commit/a7f7d10c06)]
- **(SEMVER-MINOR)** **src**: add an option to make compile cache
portable (Aditi)
[#&#8203;58797](https://redirect.github.com/nodejs/node/pull/58797)
-
\[[`566add0b19`](https://redirect.github.com/nodejs/node/commit/566add0b19)]
- **src**: avoid C strings in more C++ exception throws (Anna
Henningsen)
[#&#8203;60592](https://redirect.github.com/nodejs/node/pull/60592)
-
\[[`9b796347c1`](https://redirect.github.com/nodejs/node/commit/9b796347c1)]
- **src**: add internal binding for constructing SharedArrayBuffers
(Renegade334)
[#&#8203;60497](https://redirect.github.com/nodejs/node/pull/60497)
-
\[[`3b01cbb411`](https://redirect.github.com/nodejs/node/commit/3b01cbb411)]
- **src**: move `napi_addon_register_func` to `node_api_types.h` (Anna
Henningsen)
[#&#8203;60512](https://redirect.github.com/nodejs/node/pull/60512)
-
\[[`02fb7f4ecb`](https://redirect.github.com/nodejs/node/commit/02fb7f4ecb)]
- **src**: remove unconditional NAPI\_EXPERIMENTAL in node.h (Chengzhong
Wu) [#&#8203;60345](https://redirect.github.com/nodejs/node/pull/60345)
-
\[[`bd09ae24e4`](https://redirect.github.com/nodejs/node/commit/bd09ae24e4)]
- **src**: clean up generic counter implementation (Anna Henningsen)
[#&#8203;60447](https://redirect.github.com/nodejs/node/pull/60447)
-
\[[`cd6bf51dbd`](https://redirect.github.com/nodejs/node/commit/cd6bf51dbd)]
- **src**: add enum handle for ToStringHelper + formatting (Burkov Egor)
[#&#8203;56829](https://redirect.github.com/nodejs/node/pull/56829)
-
\[[`92ea669240`](https://redirect.github.com/nodejs/node/commit/92ea669240)]
- **(SEMVER-MINOR)** **src,permission**: add --allow-inspector ability
(Rafael Gonzaga)
[#&#8203;59711](https://redirect.github.com/nodejs/node/pull/59711)
-
\[[`ac3dbe48f7`](https://redirect.github.com/nodejs/node/commit/ac3dbe48f7)]
- **stream**: don't try to read more if reading (Robert Nagy)
[#&#8203;60454](https://redirect.github.com/nodejs/node/pull/60454)
-
\[[`790288a93b`](https://redirect.github.com/nodejs/node/commit/790288a93b)]
- **test**: ensure assertions are reachable in `test/internet` (Antoine
du Hamel)
[#&#8203;60513](https://redirect.github.com/nodejs/node/pull/60513)
-
\[[`0a85132989`](https://redirect.github.com/nodejs/node/commit/0a85132989)]
- **test**: fix status when compiled without inspector (Antoine du
Hamel)
[#&#8203;60289](https://redirect.github.com/nodejs/node/pull/60289)
-
\[[`2f57673172`](https://redirect.github.com/nodejs/node/commit/2f57673172)]
- **test**: deflake test-perf-hooks-timerify-histogram-sync (Joyee
Cheung)
[#&#8203;60639](https://redirect.github.com/nodejs/node/pull/60639)
-
\[[`09726269de`](https://redirect.github.com/nodejs/node/commit/09726269de)]
- **test**: apply a delay to `watch-mode-kill-signal` tests (Joyee
Cheung)
[#&#8203;60610](https://redirect.github.com/nodejs/node/pull/60610)
-
\[[`45537b9562`](https://redirect.github.com/nodejs/node/commit/45537b9562)]
- **test**: async iife in repl (Tony Gorez)
[#&#8203;44878](https://redirect.github.com/nodejs/node/pull/44878)
-
\[[`4ca81f101d`](https://redirect.github.com/nodejs/node/commit/4ca81f101d)]
- **test**: parallelize sea tests when there's enough disk space (Joyee
Cheung)
[#&#8203;60604](https://redirect.github.com/nodejs/node/pull/60604)
-
\[[`ea71e96191`](https://redirect.github.com/nodejs/node/commit/ea71e96191)]
- **test**: only show overridden env in child process failures (Joyee
Cheung)
[#&#8203;60556](https://redirect.github.com/nodejs/node/pull/60556)
-
\[[`06b2e348c7`](https://redirect.github.com/nodejs/node/commit/06b2e348c7)]
- **test**: ensure assertions are reached on more tests (Antoine du
Hamel)
[#&#8203;60498](https://redirect.github.com/nodejs/node/pull/60498)
-
\[[`de9c8cb670`](https://redirect.github.com/nodejs/node/commit/de9c8cb670)]
- **test**: ensure assertions are reachable in `test/es-module` (Antoine
du Hamel)
[#&#8203;60501](https://redirect.github.com/nodejs/node/pull/60501)
-
\[[`75bc40fced`](https://redirect.github.com/nodejs/node/commit/75bc40fced)]
- **test**: ensure assertions are reached on more tests (Antoine du
Hamel)
[#&#8203;60485](https://redirect.github.com/nodejs/node/pull/60485)
-
\[[`1a6084cfd3`](https://redirect.github.com/nodejs/node/commit/1a6084cfd3)]
- **test**: ensure assertions are reached on more tests (Antoine du
Hamel)
[#&#8203;60500](https://redirect.github.com/nodejs/node/pull/60500)
-
\[[`2c651c90cf`](https://redirect.github.com/nodejs/node/commit/2c651c90cf)]
- **test**: split test-perf-hooks-timerify (Joyee Cheung)
[#&#8203;60568](https://redirect.github.com/nodejs/node/pull/60568)
-
\[[`6e8b5f7345`](https://redirect.github.com/nodejs/node/commit/6e8b5f7345)]
- **test**: add more logs to test-esm-loader-hooks-inspect-wait (Joyee
Cheung)
[#&#8203;60466](https://redirect.github.com/nodejs/node/pull/60466)
-
\[[`9dea7ffa30`](https://redirect.github.com/nodejs/node/commit/9dea7ffa30)]
- **test**: mark stringbytes-external-exceed-max tests as flaky on AIX
(Joyee Cheung)
[#&#8203;60565](https://redirect.github.com/nodejs/node/pull/60565)
-
\[[`0b3c3b710a`](https://redirect.github.com/nodejs/node/commit/0b3c3b710a)]
- **test**: split test-esm-wasm.js (Joyee Cheung)
[#&#8203;60491](https://redirect.github.com/nodejs/node/pull/60491)
-
\[[`a15b795b34`](https://redirect.github.com/nodejs/node/commit/a15b795b34)]
- **test**: correct conditional secure heap flags test (Shelley Vohr)
[#&#8203;60385](https://redirect.github.com/nodejs/node/pull/60385)
-
\[[`38b77b3a44`](https://redirect.github.com/nodejs/node/commit/38b77b3a44)]
- **test**: fix flaky test-watch-mode-kill-signal-\* (Joyee Cheung)
[#&#8203;60443](https://redirect.github.com/nodejs/node/pull/60443)
-
\[[`e8d7598057`](https://redirect.github.com/nodejs/node/commit/e8d7598057)]
- **test**: capture stack trace in debugger timeout errors (Joyee
Cheung)
[#&#8203;60457](https://redirect.github.com/nodejs/node/pull/60457)
-
\[[`674befeb81`](https://redirect.github.com/nodejs/node/commit/674befeb81)]
- **test**: ensure assertions are reachable in `test/sequential`
(Antoine du Hamel)
[#&#8203;60412](https://redirect.github.com/nodejs/node/pull/60412)
-
\[[`952c08a735`](https://redirect.github.com/nodejs/node/commit/952c08a735)]
- **test**: ensure assertions are reachable in more folders (Antoine du
Hamel)
[#&#8203;60411](https://redirect.github.com/nodejs/node/pull/60411)
-
\[[`bbca57584b`](https://redirect.github.com/nodejs/node/commit/bbca57584b)]
- **test**: split test-runner-watch-mode (Joyee Cheung)
[#&#8203;60391](https://redirect.github.com/nodejs/node/pull/60391)
-
\[[`e78e0cf6e7`](https://redirect.github.com/nodejs/node/commit/e78e0cf6e7)]
- **test**: move test-runner-watch-mode helper into common (Joyee
Cheung)
[#&#8203;60391](https://redirect.github.com/nodejs/node/pull/60391)
-
\[[`84576ef021`](https://redirect.github.com/nodejs/node/commit/84576ef021)]
- **test**: ensure assertions are reachable in `test/addons` (Antoine du
Hamel)
[#&#8203;60142](https://redirect.github.com/nodejs/node/pull/60142)
-
\[[`1659078c11`](https://redirect.github.com/nodejs/node/commit/1659078c11)]
- **test**: ignore EPIPE errors in https proxy invalid URL test (Joyee
Cheung)
[#&#8203;60269](https://redirect.github.com/nodejs/node/pull/60269)
-
\[[`79ffee80ec`](https://redirect.github.com/nodejs/node/commit/79ffee80ec)]
- **test**: ensure assertions are reachable in `test/client-proxy`
(Antoine du Hamel)
[#&#8203;60175](https://redirect.github.com/nodejs/node/pull/60175)
-
\[[`e5a812243a`](https://redirect.github.com/nodejs/node/commit/e5a812243a)]
- **test**: ensure assertions are reachable in `test/async-hooks`
(Antoine du Hamel)
[#&#8203;60150](https://redirect.github.com/nodejs/node/pull/60150)
-
\[[`e924fd72e3`](https://redirect.github.com/nodejs/node/commit/e924fd72e3)]
- **test,crypto**: handle a few more BoringSSL tests (Shelley Vohr)
[#&#8203;59030](https://redirect.github.com/nodejs/node/pull/59030)
-
\[[`a55ac11611`](https://redirect.github.com/nodejs/node/commit/a55ac11611)]
- **test,crypto**: update x448 and ed448 expectation when on boringssl
(Shelley Vohr)
[#&#8203;60387](https://redirect.github.com/nodejs/node/pull/60387)
-
\[[`55d5e9ec73`](https://redirect.github.com/nodejs/node/commit/55d5e9ec73)]
- **tls**: fix leak on invalid protocol method (Shelley Vohr)
[#&#8203;60427](https://redirect.github.com/nodejs/node/pull/60427)
-
\[[`5763c96e7c`](https://redirect.github.com/nodejs/node/commit/5763c96e7c)]
- **tools**: replace invalid expression in dependabot config (Riddhi)
[#&#8203;60649](https://redirect.github.com/nodejs/node/pull/60649)
-
\[[`b6e21b47d7`](https://redirect.github.com/nodejs/node/commit/b6e21b47d7)]
- **tools**: skip unaffected GHA jobs for changes in `test/internet`
(Antoine du Hamel)
[#&#8203;60517](https://redirect.github.com/nodejs/node/pull/60517)
-
\[[`999664c76d`](https://redirect.github.com/nodejs/node/commit/999664c76d)]
- **tools**: do not use short hashes for deps versioning to avoid
collision (Antoine du Hamel)
[#&#8203;60407](https://redirect.github.com/nodejs/node/pull/60407)
-
\[[`ada856d0fb`](https://redirect.github.com/nodejs/node/commit/ada856d0fb)]
- **tools**: only add test reporter args when node:test is used (Joyee
Cheung)
[#&#8203;60551](https://redirect.github.com/nodejs/node/pull/60551)
-
\[[`1812c56bb3`](https://redirect.github.com/nodejs/node/commit/1812c56bb3)]
- **tools**: fix update-icu script (Michaël Zasso)
[#&#8203;60521](https://redirect.github.com/nodejs/node/pull/60521)
-
\[[`747040438a`](https://redirect.github.com/nodejs/node/commit/747040438a)]
- **tools**: fix linter for semver-major release proposals (Antoine du
Hamel)
[#&#8203;60481](https://redirect.github.com/nodejs/node/pull/60481)
-
\[[`f170551e40`](https://redirect.github.com/nodejs/node/commit/f170551e40)]
- **tools**: fix failing release-proposal linter for LTS transitions
(Antoine du Hamel)
[#&#8203;60465](https://redirect.github.com/nodejs/node/pull/60465)
-
\[[`2db4ea0ce4`](https://redirect.github.com/nodejs/node/commit/2db4ea0ce4)]
- **tools**: remove undici from daily wpt.fyi job (Filip Skokan)
[#&#8203;60444](https://redirect.github.com/nodejs/node/pull/60444)
-
\[[`2a85aa4e7b`](https://redirect.github.com/nodejs/node/commit/2a85aa4e7b)]
- **tools**: add lint rule to ensure assertions are reached (Antoine du
Hamel)
[#&#8203;60125](https://redirect.github.com/nodejs/node/pull/60125)
-
\[[`48299ef5fb`](https://redirect.github.com/nodejs/node/commit/48299ef5fb)]
- **tools,doc**: update JavaScript primitive types to match MDN Web Docs
(JustApple)
[#&#8203;60581](https://redirect.github.com/nodejs/node/pull/60581)
-
\[[`7ec04cf936`](https://redirect.github.com/nodejs/node/commit/7ec04cf936)]
- **util**: fix stylize of special properties in inspect (Ge Gao)
[#&#8203;60479](https://redirect.github.com/nodejs/node/pull/60479)
-
\[[`05d7509bd2`](https://redirect.github.com/nodejs/node/commit/05d7509bd2)]
- **(SEMVER-MINOR)** **v8**: add cpu profile (theanarkh)
[#&#8203;59807](https://redirect.github.com/nodejs/node/pull/59807)
-
\[[`884fe884a1`](https://redirect.github.com/nodejs/node/commit/884fe884a1)]
- **vm**: hint module identifier in instantiate errors (Chengzhong Wu)
[#&#8203;60199](https://redirect.github.com/nodejs/node/pull/60199)
-
\[[`a2caf19f70`](https://redirect.github.com/nodejs/node/commit/a2caf19f70)]
- **watch**: fix interaction with multiple env files (Marco Ippolito)
[#&#8203;60605](https://redirect.github.com/nodejs/node/pull/60605)

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-10 19:13:30 +00:00
renovate[bot] 67c523f2fc
chore(deps): update cypress/browsers:latest docker digest to c03803e (#1961)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| cypress/browsers | container | digest | `ff79e75` -> `c03803e` |
| cypress/browsers |  | digest | `ff79e75` -> `c03803e` |

---

### Configuration

📅 **Schedule**: 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 these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-10 19:12:26 +00:00
kolaente 4aae270694
feat(tasks): move tasks between projects with drag and drop (#1945)
Drag and drop tasks between projects from list and kanban views, with cross-project move handling and success notification. With visual drop-target highlighting when hovering a project during a drag.
2025-12-10 18:59:38 +00:00
renovate[bot] 6628acffce
chore(deps): update dependency vue-tsc to v3.1.6 (#1957)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [vue-tsc](https://redirect.github.com/vuejs/language-tools)
([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`3.1.5` ->
`3.1.6`](https://renovatebot.com/diffs/npm/vue-tsc/3.1.5/3.1.6) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/3.1.6?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/3.1.5/3.1.6?slim=true)
|

---

### Release Notes

<details>
<summary>vuejs/language-tools (vue-tsc)</summary>

###
[`v3.1.6`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#316-2025-12-06)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v3.1.5...v3.1.6)

##### Features

- feat(vscode): add settings to enable per-block formatting
([#&#8203;5784](https://redirect.github.com/vuejs/language-tools/issues/5784))
- Thanks to [@&#8203;serkodev](https://redirect.github.com/serkodev)!
- feat(language-service): enhanced component auto import
([#&#8203;5790](https://redirect.github.com/vuejs/language-tools/issues/5790))
- feat(component-meta): add component name and description fields
([#&#8203;5797](https://redirect.github.com/vuejs/language-tools/issues/5797))
- feat(typescript-plugin): add support for template "Add Import" quick
fix
([#&#8203;5799](https://redirect.github.com/vuejs/language-tools/issues/5799))
- Thanks to [@&#8203;serkodev](https://redirect.github.com/serkodev)!
- feat(typescript-plugin): mapping JSDoc informations from `<script
setup>`
([#&#8203;5805](https://redirect.github.com/vuejs/language-tools/issues/5805))
- feat(vscode): support tsdk path for Eclipse Theia
([#&#8203;5806](https://redirect.github.com/vuejs/language-tools/issues/5806))
- Thanks to [@&#8203;serkodev](https://redirect.github.com/serkodev)!

##### Bug Fixes

- fix(language-service): ignore intrinsic elements when detect tag name
casing
([#&#8203;5771](https://redirect.github.com/vuejs/language-tools/issues/5771))
- fix(language-core): `createParsedCommandLineByJson` parsed incorrect
options since v3.1.5 ([#&#8203;5768
(comment)](https://redirect.github.com/vuejs/language-tools/pull/5768#issuecomment-3569623037))
- fix(vscode): make `vue.server.path` compatible with Windows
([#&#8203;5772](https://redirect.github.com/vuejs/language-tools/issues/5772))
- fix(vscode): analyze interpolation highlight ranges based on AST
([#&#8203;5777](https://redirect.github.com/vuejs/language-tools/issues/5777))
- fix(vscode): sync latest vscode html language configuration
([#&#8203;5740](https://redirect.github.com/vuejs/language-tools/issues/5740))
- fix(language-core): enhance `getVIfNode` to support `v-else-if`
directives
([#&#8203;5765](https://redirect.github.com/vuejs/language-tools/issues/5765))
- Thanks to [@&#8203;serkodev](https://redirect.github.com/serkodev)!
- fix(language-core): generate `{}` instead of its string value for
`style="..."`
([#&#8203;5781](https://redirect.github.com/vuejs/language-tools/issues/5781))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): `v-bind="$attrs"` loses navigation when
`inferTemplateDollarAttrs` is disabled
([#&#8203;5783](https://redirect.github.com/vuejs/language-tools/issues/5783))
- fix(language-service): skip `const props =` completion in
StringLiteral
([#&#8203;5786](https://redirect.github.com/vuejs/language-tools/issues/5786))
- fix(language-core): unable to get completion for the second scoped
class name
- fix(language-service): format components with HTML void-element names
([#&#8203;5788](https://redirect.github.com/vuejs/language-tools/issues/5788))
- Thanks to [@&#8203;serkodev](https://redirect.github.com/serkodev)!
- fix(language-service): properly handle promise when resolving CSS
links
([#&#8203;5785](https://redirect.github.com/vuejs/language-tools/issues/5785))
- fix(language-core): infer `$el` type for generic components using
`inferComponentDollarEl`
([#&#8203;5794](https://redirect.github.com/vuejs/language-tools/issues/5794))
- fix(language-core): ensure `<script>` content generates before
`<script setup>`
([#&#8203;5795](https://redirect.github.com/vuejs/language-tools/issues/5795))
- fix(language-core): remove `bypassDefineComponent` hack for better JS
support
([#&#8203;4876](https://redirect.github.com/vuejs/language-tools/issues/4876))
([#&#8203;5379](https://redirect.github.com/vuejs/language-tools/issues/5379))
- fix(language-core): `Prettify<T>` caused generic props gets inferred
as `unknown`
([#&#8203;5667](https://redirect.github.com/vuejs/language-tools/issues/5667))
- Thanks to [@&#8203;so1ve](https://redirect.github.com/so1ve)!
- fix(vscode): handle leading `<` as operator in SFC scripts
([#&#8203;5801](https://redirect.github.com/vuejs/language-tools/issues/5801))
- Thanks to [@&#8203;serkodev](https://redirect.github.com/serkodev)!
- fix(vscode): patch `isTypeScriptDocument` in VSCode for
`typescript.preferences.autoImportSpecifierExcludeRegexes` config
support
([#&#8203;5364](https://redirect.github.com/vuejs/language-tools/issues/5364))
- fix(language-core): ensure type consistency for optional boolean props
([#&#8203;5803](https://redirect.github.com/vuejs/language-tools/issues/5803))
- fix(language-core): add compatibility for `vapor` attr
([#&#8203;5496](https://redirect.github.com/vuejs/language-tools/issues/5496))
- fix(language-core): AST fault tolerance for key binding on template
([#&#8203;5807](https://redirect.github.com/vuejs/language-tools/issues/5807))

##### Performance

- perf(language-core): reuse ts asts for `:class` - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Other Changes

- Revert "refactor(typescript-plugin): remove go to definition trick for
auto imported components
([#&#8203;5733](https://redirect.github.com/vuejs/language-tools/issues/5733))"
- docs(typescript-plugin): update Neovim configuration link
([#&#8203;5775](https://redirect.github.com/vuejs/language-tools/issues/5775))
- Thanks to
[@&#8203;AlexVagrant](https://redirect.github.com/AlexVagrant)!
- refactor(language-core): normalize template AST
([#&#8203;5782](https://redirect.github.com/vuejs/language-tools/issues/5782))
- refactor(language-core): split style codegen
([#&#8203;5787](https://redirect.github.com/vuejs/language-tools/issues/5787))
- refactor(language-core): remove `debugger` from virtual code for
tsslint compatibility
- refactor(language-core): remove legacy navigation support in
`ref="xxx"`
- refactor(language-core): reduce codegen options
([#&#8203;5804](https://redirect.github.com/vuejs/language-tools/issues/5804))
- refactor(component-meta): deprecated `rawType` and `__internal__.tsLs`
([#&#8203;5808](https://redirect.github.com/vuejs/language-tools/issues/5808))
- chore: update volar to 2.4.26
- feat: fallback resolution mode for `createResolveModuleName`
([volarjs/volar.js#293](https://redirect.github.com/volarjs/volar.js/pull/293))
([#&#8203;5644](https://redirect.github.com/vuejs/language-tools/issues/5644))
- Thanks to [@&#8203;serkodev](https://redirect.github.com/serkodev)!

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMi4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-10 12:41:02 +01:00
Frederick [Bot] 34c560eca8 chore(i18n): update translations via Crowdin 2025-12-10 00:59:00 +00:00
kolaente 798ffc0582
fix: prevent emoji picker from closing when clicking search input (#1959)
Resolves
https://community.vikunja.io/t/cannot-search-for-reaction-emoji/4207/1

- Fixes the emoji reaction picker closing immediately when clicking
inside the search box
- The issue occurred because `vuemoji-picker` wraps
`emoji-picker-element` which uses Shadow DOM
- The `closeWhenClickedOutside` helper was using `parentElement`
traversal which doesn't cross shadow boundaries
2025-12-09 12:59:01 +01:00
kolaente 767aa05096 feat(kanban): reorder items on kanban task card
This makes the items on the kanban task card flow more visually logical and look nicer overall.
2025-12-08 22:16:33 +01:00
kolaente 831e26bad8
refactor(kanban): use gap spacing in Kanban card footer (#1950)
Replace individual `margin` properties with CSS `gap` for consistent
spacing between footer elements in Kanban cards.
2025-12-08 17:57:47 +00:00
renovate[bot] d231ebb78d chore(deps): update dependency postcss-preset-env to v10.5.0 2025-12-08 08:55:46 +01:00
kolaente 819e1d6fab
fix(editor): link input appearing behind modals
Resolves https://github.com/go-vikunja/vikunja/issues/1929
2025-12-07 22:06:39 +00:00
renovate[bot] f14f6ba38f fix(deps): update dependency @sentry/vue to v10.29.0 2025-12-07 21:58:07 +01:00
renovate[bot] 9034b13dde chore(deps): update dev-dependencies 2025-12-07 11:04:45 +01:00
renovate[bot] 4a4cd72a0b fix(deps): update dependency @sentry/vue to v10.28.0 2025-12-06 11:01:45 +01:00
renovate[bot] 5f02098d12
chore(deps): update dev-dependencies (#1936)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`8.48.0` ->
`8.48.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.48.0/8.48.1)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/8.48.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/8.48.0/8.48.1?slim=true)
|
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`8.48.0` ->
`8.48.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.48.0/8.48.1)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/8.48.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/8.48.0/8.48.1?slim=true)
|
| [caniuse-lite](https://redirect.github.com/browserslist/caniuse-lite)
| [`1.0.30001757` ->
`1.0.30001759`](https://renovatebot.com/diffs/npm/caniuse-lite/1.0.30001757/1.0.30001759)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/caniuse-lite/1.0.30001759?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/caniuse-lite/1.0.30001757/1.0.30001759?slim=true)
|
| [vite](https://vite.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`7.2.4` ->
`7.2.6`](https://renovatebot.com/diffs/npm/vite/7.2.4/7.2.6) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vite/7.2.6?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/7.2.4/7.2.6?slim=true)
|

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v8.48.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8481-2025-12-02)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.48.0...v8.48.1)

##### 🩹 Fixes

- **eslint-plugin:** \[restrict-template-expressions] check base types
in allow list
([#&#8203;11764](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11764),
[#&#8203;11759](https://redirect.github.com/typescript-eslint/typescript-eslint/issues/11759))
- **eslint-plugin:** honor ignored base types on generic classes
([#&#8203;11767](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11767))
- **eslint-plugin:** \[consistent-type-exports] check value flag before
resolving alias
([#&#8203;11769](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11769))

##### ❤️ Thank You

- Josh Goldberg
- OleksandraKordonets
- SangheeSon [@&#8203;Higangssh](https://redirect.github.com/Higangssh)
- tao

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v8.48.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8481-2025-12-02)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.48.0...v8.48.1)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>browserslist/caniuse-lite (caniuse-lite)</summary>

###
[`v1.0.30001759`](https://redirect.github.com/browserslist/caniuse-lite/compare/1.0.30001757...1.0.30001759)

[Compare
Source](https://redirect.github.com/browserslist/caniuse-lite/compare/1.0.30001757...1.0.30001759)

</details>

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v7.2.6`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-726-2025-12-01-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.2.4...v7.2.6)

####
<small>[7.2.6](https://redirect.github.com/vitejs/vite/compare/v7.2.5...v7.2.6)
(2025-12-01)</small>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zMi4yIiwidXBkYXRlZEluVmVyIjoiNDIuMzIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-06 11:00:50 +01:00
Frederick [Bot] cec8daba59 chore(i18n): update translations via Crowdin 2025-12-04 00:57:27 +00:00
renovate[bot] 780c5b3b6f
chore(deps): update cypress/browsers:latest docker digest to ff79e75 (#1923)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| cypress/browsers | container | digest | `7331c59` -> `ff79e75` |
| cypress/browsers |  | digest | `7331c59` -> `ff79e75` |

---

### Configuration

📅 **Schedule**: 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 these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS45IiwidXBkYXRlZEluVmVyIjoiNDIuMTkuOSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-03 11:23:11 +01:00
Mithilesh Gupta a0a8111acb
feat: Added background brightness setting (#1915)
Closes https://github.com/go-vikunja/vikunja/pull/1142

---------

Co-authored-by: Mithilesh Gupta <guptamithilesh@protonmail.com>
Co-authored-by: kolaente <k@knt.li>
2025-12-02 16:27:00 +00:00
kolaente 2b98cf643f
chore(deps): update js-yaml 2025-12-02 10:39:36 +01:00
kolaente 478d7b253d
chore(deps): update mdast-util-to-hast 2025-12-02 10:37:36 +01:00
kolaente a5376d7dd3
chore(deps): update glob 2025-12-02 10:35:42 +01:00
renovate[bot] 35c0ecc72e
fix(deps): update dependency vue-i18n to v11.2.2 (#1908)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[vue-i18n](https://redirect.github.com/intlify/vue-i18n/tree/master/packages/vue-i18n#readme)
([source](https://redirect.github.com/intlify/vue-i18n/tree/HEAD/packages/vue-i18n))
| [`11.2.1` ->
`11.2.2`](https://renovatebot.com/diffs/npm/vue-i18n/11.2.1/11.2.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-i18n/11.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-i18n/11.2.1/11.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>intlify/vue-i18n (vue-i18n)</summary>

###
[`v11.2.2`](https://redirect.github.com/intlify/vue-i18n/releases/tag/v11.2.2)

[Compare
Source](https://redirect.github.com/intlify/vue-i18n/compare/v11.2.1...v11.2.2)

<!-- Release notes generated using configuration in .github/release.yml
at v11.2.2 -->

#### What's Changed

##### 🐛 Bug Fixes

- fix: avoid bundler static analysis for namespace import by
[@&#8203;kazupon](https://redirect.github.com/kazupon) in
[#&#8203;2326](https://redirect.github.com/intlify/vue-i18n/pull/2326)

**Full Changelog**:
<https://github.com/intlify/vue-i18n/compare/v11.2.1...v11.2.2>

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS45IiwidXBkYXRlZEluVmVyIjoiNDIuMTkuOSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-01 22:56:38 +01:00
kolaente e48a8d1717 fix(test): replace project creation in history test with for loop
This fixes a race condition when the project_views table was locked.

For example https://github.com/go-vikunja/vikunja/actions/runs/19826720209/job/56802103014
2025-12-01 16:01:22 +01:00
kolaente dbb4046d51 fix(reaction): use the actual button element to compute rect, not the vue component
Resolves https://github.com/go-vikunja/vikunja/issues/1913
2025-12-01 15:48:59 +01:00
renovate[bot] 5fc9b74f50
chore(deps): update dev-dependencies (#1909)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[@vueuse/shared](https://redirect.github.com/vueuse/vueuse/tree/main/packages/shared#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/shared))
| [`14.0.0` ->
`14.1.0`](https://renovatebot.com/diffs/npm/@vueuse%2fshared/14.0.0/14.1.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fshared/14.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fshared/14.0.0/14.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [electron](https://redirect.github.com/electron/electron) | [`37.10.2`
->
`37.10.3`](https://renovatebot.com/diffs/npm/electron/37.10.2/37.10.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/electron/37.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/electron/37.10.2/37.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [eslint-plugin-vue](https://eslint.vuejs.org)
([source](https://redirect.github.com/vuejs/eslint-plugin-vue)) |
[`10.6.0` ->
`10.6.2`](https://renovatebot.com/diffs/npm/eslint-plugin-vue/10.6.0/10.6.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-vue/10.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-vue/10.6.0/10.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) |
[`20.0.10` ->
`20.0.11`](https://renovatebot.com/diffs/npm/happy-dom/20.0.10/20.0.11)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/20.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/20.0.10/20.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [stylelint](https://stylelint.io)
([source](https://redirect.github.com/stylelint/stylelint)) | [`16.26.0`
->
`16.26.1`](https://renovatebot.com/diffs/npm/stylelint/16.26.0/16.26.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/stylelint/16.26.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/stylelint/16.26.0/16.26.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[vite-plugin-pwa](https://redirect.github.com/vite-pwa/vite-plugin-pwa)
| [`1.1.0` ->
`1.2.0`](https://renovatebot.com/diffs/npm/vite-plugin-pwa/1.1.0/1.2.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite-plugin-pwa/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite-plugin-pwa/1.1.0/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vueuse/vueuse (@&#8203;vueuse/shared)</summary>

###
[`v14.1.0`](https://redirect.github.com/vueuse/vueuse/releases/tag/v14.1.0)

[Compare
Source](https://redirect.github.com/vueuse/vueuse/compare/v14.0.0...v14.1.0)

#####    🚀 Features

- **useDropZone**: Add checkValidity function  -  by
[@&#8203;kolaente](https://redirect.github.com/kolaente) in
[#&#8203;5169](https://redirect.github.com/vueuse/vueuse/issues/5169)
[<samp>(aee84)</samp>](https://redirect.github.com/vueuse/vueuse/commit/aee846cb)
- **useElementVisibility**: Add `initialValue` option  -  by
[@&#8203;kricsleo](https://redirect.github.com/kricsleo) and
[@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5159](https://redirect.github.com/vueuse/vueuse/issues/5159)
[<samp>(13f36)</samp>](https://redirect.github.com/vueuse/vueuse/commit/13f361fa)
- **useMouseInElement**: Add support for tracking inline-level elements
 -  by [@&#8203;siavava](https://redirect.github.com/siavava) and
[@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5049](https://redirect.github.com/vueuse/vueuse/issues/5049)
[<samp>(62dfb)</samp>](https://redirect.github.com/vueuse/vueuse/commit/62dfb80a)
- **useTimeAgoIntl**: Custom units  -  by
[@&#8203;Menci](https://redirect.github.com/Menci) in
[#&#8203;5188](https://redirect.github.com/vueuse/vueuse/issues/5188)
[<samp>(c7d09)</samp>](https://redirect.github.com/vueuse/vueuse/commit/c7d09ef4)
- **useWebSocket**: `autoConnect.delay` support function  -  by
[@&#8203;YuchenWell](https://redirect.github.com/YuchenWell), **Anthony
Fu** and [@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5089](https://redirect.github.com/vueuse/vueuse/issues/5089)
[<samp>(176f2)</samp>](https://redirect.github.com/vueuse/vueuse/commit/176f2515)

#####    🐞 Bug Fixes

- Typescript type of `isIOS` constant  -  by
[@&#8203;toofishes](https://redirect.github.com/toofishes) in
[#&#8203;5163](https://redirect.github.com/vueuse/vueuse/issues/5163)
[<samp>(60888)</samp>](https://redirect.github.com/vueuse/vueuse/commit/60888d43)
- **computedWithControl**: Allow different types in watch sources array
 -  by [@&#8203;kricsleo](https://redirect.github.com/kricsleo) in
[#&#8203;5184](https://redirect.github.com/vueuse/vueuse/issues/5184)
[<samp>(bc4ac)</samp>](https://redirect.github.com/vueuse/vueuse/commit/bc4aca90)
- **types**: Allow async functions in useDebounceFn and useThrottleFn
 -  by
[@&#8203;xiaoxiaohuayu](https://redirect.github.com/xiaoxiaohuayu) in
[#&#8203;5131](https://redirect.github.com/vueuse/vueuse/issues/5131)
[<samp>(7fb7a)</samp>](https://redirect.github.com/vueuse/vueuse/commit/7fb7a05a)
- **types**: Deprecate embeded `ResizeObserverSize` types  -  by
[@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5127](https://redirect.github.com/vueuse/vueuse/issues/5127)
[<samp>(d7a07)</samp>](https://redirect.github.com/vueuse/vueuse/commit/d7a07010)
- **useArrayReduce**: Export `UseArrayReduceReturn` type  -  by
[@&#8203;michaelcozzolino](https://redirect.github.com/michaelcozzolino)
in [#&#8203;5177](https://redirect.github.com/vueuse/vueuse/issues/5177)
[<samp>(e1204)</samp>](https://redirect.github.com/vueuse/vueuse/commit/e1204722)
- **useAsyncQueue**: Trigger onFinished when the last task is rejected
 -  by
[@&#8203;keeplearning66](https://redirect.github.com/keeplearning66) and
[@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5144](https://redirect.github.com/vueuse/vueuse/issues/5144)
[<samp>(c4a46)</samp>](https://redirect.github.com/vueuse/vueuse/commit/c4a46025)
- **useClipboard**: Add readonly attribute to textarea fallback to
support Safari 15  -  by
[@&#8203;huajianjiu](https://redirect.github.com/huajianjiu) in
[#&#8203;5179](https://redirect.github.com/vueuse/vueuse/issues/5179)
[<samp>(ef0c4)</samp>](https://redirect.github.com/vueuse/vueuse/commit/ef0c4f82)
- **useInfiniteScroll**: Make canLoadMore reactive  -  by
[@&#8203;nhquyss](https://redirect.github.com/nhquyss) in
[#&#8203;5110](https://redirect.github.com/vueuse/vueuse/issues/5110)
[<samp>(3dc2d)</samp>](https://redirect.github.com/vueuse/vueuse/commit/3dc2d831)
- **useMagicKeys**: Handle empty key events to prevent errors  -  by
[@&#8203;babu-ch](https://redirect.github.com/babu-ch) and
[@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5149](https://redirect.github.com/vueuse/vueuse/issues/5149)
[<samp>(f8aec)</samp>](https://redirect.github.com/vueuse/vueuse/commit/f8aecd82)
- **useScroll**: Use configurable window's `getComputedStyle`  -  by
[@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5150](https://redirect.github.com/vueuse/vueuse/issues/5150)
[<samp>(f74a6)</samp>](https://redirect.github.com/vueuse/vueuse/commit/f74a68d4)
- **useSpeechRecognition**: Catch the error while calling method start
 -  by [@&#8203;ben-lau](https://redirect.github.com/ben-lau),
**liubaobin** and [@&#8203;9romise](https://redirect.github.com/9romise)
in [#&#8203;5142](https://redirect.github.com/vueuse/vueuse/issues/5142)
[<samp>(94f1e)</samp>](https://redirect.github.com/vueuse/vueuse/commit/94f1e9e7)
- **useTimeout**: Fix type typo  -  by
[@&#8203;keeplearning66](https://redirect.github.com/keeplearning66),
**Robin** and **Anthony Fu** in
[#&#8203;5147](https://redirect.github.com/vueuse/vueuse/issues/5147)
[<samp>(31e5c)</samp>](https://redirect.github.com/vueuse/vueuse/commit/31e5cb0c)

#####     [View changes on
GitHub](https://redirect.github.com/vueuse/vueuse/compare/v14.0.0...v14.1.0)

</details>

<details>
<summary>electron/electron (electron)</summary>

###
[`v37.10.3`](https://redirect.github.com/electron/electron/releases/tag/v37.10.3):
electron v37.10.3

[Compare
Source](https://redirect.github.com/electron/electron/compare/v37.10.2...v37.10.3)

### Release Notes for v37.10.3

#### Fixes

- Fixed an issue where `systemPreferences.getAccentColor` inverted the
color.
[#&#8203;49067](https://redirect.github.com/electron/electron/pull/49067)
<span style="font-size:small;">(Also in
[39](https://redirect.github.com/electron/electron/pull/48624))</span>

</details>

<details>
<summary>vuejs/eslint-plugin-vue (eslint-plugin-vue)</summary>

###
[`v10.6.2`](https://redirect.github.com/vuejs/eslint-plugin-vue/blob/HEAD/CHANGELOG.md#1062)

[Compare
Source](https://redirect.github.com/vuejs/eslint-plugin-vue/compare/v10.6.1...v10.6.2)

##### Patch Changes

- Fixed false positives in non-intersecting conditions in
[`vue/no-duplicate-class-names`](https://eslint.vuejs.org/rules/no-duplicate-class-names.html)
and correctly detect duplicates in combining expressions
([#&#8203;2980](https://redirect.github.com/vuejs/eslint-plugin-vue/pull/2980))
- Fixed false positives for `TSImportType` in
[`vue/script-indent`](https://eslint.vuejs.org/rules/script-indent.html)
rule
([#&#8203;2969](https://redirect.github.com/vuejs/eslint-plugin-vue/pull/2969))
- Improved performance and type safety in
[`vue/prefer-use-template-ref`](https://eslint.vuejs.org/rules/prefer-use-template-ref.html)
([#&#8203;2982](https://redirect.github.com/vuejs/eslint-plugin-vue/pull/2982))

###
[`v10.6.1`](https://redirect.github.com/vuejs/eslint-plugin-vue/blob/HEAD/CHANGELOG.md#1061)

[Compare
Source](https://redirect.github.com/vuejs/eslint-plugin-vue/compare/v10.6.0...v10.6.1)

##### Patch Changes

- Fixed false positives for comments outside `<template>` in
[vue/no-multiple-template-root](https://eslint.vuejs.org/rules/no-multiple-template-root.html)
rule
([#&#8203;2964](https://redirect.github.com/vuejs/eslint-plugin-vue/pull/2964))

</details>

<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>

###
[`v20.0.11`](https://redirect.github.com/capricorn86/happy-dom/compare/v20.0.10...b435ce751aa2a105398c4c27cc6b086f93d7f7bd)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v20.0.10...v20.0.11)

</details>

<details>
<summary>stylelint/stylelint (stylelint)</summary>

###
[`v16.26.1`](https://redirect.github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16261---2025-11-28)

[Compare
Source](https://redirect.github.com/stylelint/stylelint/compare/16.26.0...16.26.1)

It fixes numerous false positive bugs, including many in the
`declaration-property-value-no-unknown` rule for the latest CSS
specifications.

- Fixed: `*-no-unknown` false positives for latest specs by integrating
`@csstools/css-syntax-patches-for-csstree`
([#&#8203;8850](https://redirect.github.com/stylelint/stylelint/pull/8850))
([@&#8203;romainmenke](https://redirect.github.com/romainmenke)).
- Fixed: `at-rule-no-unknown` false positives for `@function`
([#&#8203;8851](https://redirect.github.com/stylelint/stylelint/pull/8851))
([@&#8203;jeddy3](https://redirect.github.com/jeddy3)).
- Fixed: `declaration-property-value-no-unknown` false positives for
`attr()`, `if()` and custom functions
([#&#8203;8853](https://redirect.github.com/stylelint/stylelint/pull/8853))
([@&#8203;jeddy3](https://redirect.github.com/jeddy3)).
- Fixed: `function-url-quotes` false positives when URLs require quoting
([#&#8203;8804](https://redirect.github.com/stylelint/stylelint/pull/8804))
([@&#8203;taearls](https://redirect.github.com/taearls)).
- Fixed: `selector-pseudo-element-no-unknown` false positives for
`::scroll-button()`
([#&#8203;8856](https://redirect.github.com/stylelint/stylelint/pull/8856))
([@&#8203;Mouvedia](https://redirect.github.com/Mouvedia)).

</details>

<details>
<summary>vite-pwa/vite-plugin-pwa (vite-plugin-pwa)</summary>

###
[`v1.2.0`](https://redirect.github.com/vite-pwa/vite-plugin-pwa/releases/tag/v1.2.0)

[Compare
Source](https://redirect.github.com/vite-pwa/vite-plugin-pwa/compare/v1.1.0...v1.2.0)

*No significant changes*

#####     [View changes on
GitHub](https://redirect.github.com/vite-pwa/vite-plugin-pwa/compare/v1.1.0...v1.2.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS45IiwidXBkYXRlZEluVmVyIjoiNDIuMTkuOSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-01 11:15:09 +01:00
renovate[bot] 2bcecac91d
fix(deps): update vueuse to v14.1.0 (#1910)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [@vueuse/core](https://redirect.github.com/vueuse/vueuse)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/core))
| [`14.0.0` ->
`14.1.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/14.0.0/14.1.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcore/14.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcore/14.0.0/14.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vueuse/router](https://redirect.github.com/vueuse/vueuse/tree/main/packages/router#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/router))
| [`14.0.0` ->
`14.1.0`](https://renovatebot.com/diffs/npm/@vueuse%2frouter/14.0.0/14.1.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2frouter/14.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2frouter/14.0.0/14.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vueuse/vueuse (@&#8203;vueuse/core)</summary>

###
[`v14.1.0`](https://redirect.github.com/vueuse/vueuse/releases/tag/v14.1.0)

[Compare
Source](https://redirect.github.com/vueuse/vueuse/compare/v14.0.0...v14.1.0)

#####    🚀 Features

- **useDropZone**: Add checkValidity function  -  by
[@&#8203;kolaente](https://redirect.github.com/kolaente) in
[#&#8203;5169](https://redirect.github.com/vueuse/vueuse/issues/5169)
[<samp>(aee84)</samp>](https://redirect.github.com/vueuse/vueuse/commit/aee846cb)
- **useElementVisibility**: Add `initialValue` option  -  by
[@&#8203;kricsleo](https://redirect.github.com/kricsleo) and
[@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5159](https://redirect.github.com/vueuse/vueuse/issues/5159)
[<samp>(13f36)</samp>](https://redirect.github.com/vueuse/vueuse/commit/13f361fa)
- **useMouseInElement**: Add support for tracking inline-level elements
 -  by [@&#8203;siavava](https://redirect.github.com/siavava) and
[@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5049](https://redirect.github.com/vueuse/vueuse/issues/5049)
[<samp>(62dfb)</samp>](https://redirect.github.com/vueuse/vueuse/commit/62dfb80a)
- **useTimeAgoIntl**: Custom units  -  by
[@&#8203;Menci](https://redirect.github.com/Menci) in
[#&#8203;5188](https://redirect.github.com/vueuse/vueuse/issues/5188)
[<samp>(c7d09)</samp>](https://redirect.github.com/vueuse/vueuse/commit/c7d09ef4)
- **useWebSocket**: `autoConnect.delay` support function  -  by
[@&#8203;YuchenWell](https://redirect.github.com/YuchenWell), **Anthony
Fu** and [@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5089](https://redirect.github.com/vueuse/vueuse/issues/5089)
[<samp>(176f2)</samp>](https://redirect.github.com/vueuse/vueuse/commit/176f2515)

#####    🐞 Bug Fixes

- Typescript type of `isIOS` constant  -  by
[@&#8203;toofishes](https://redirect.github.com/toofishes) in
[#&#8203;5163](https://redirect.github.com/vueuse/vueuse/issues/5163)
[<samp>(60888)</samp>](https://redirect.github.com/vueuse/vueuse/commit/60888d43)
- **computedWithControl**: Allow different types in watch sources array
 -  by [@&#8203;kricsleo](https://redirect.github.com/kricsleo) in
[#&#8203;5184](https://redirect.github.com/vueuse/vueuse/issues/5184)
[<samp>(bc4ac)</samp>](https://redirect.github.com/vueuse/vueuse/commit/bc4aca90)
- **types**: Allow async functions in useDebounceFn and useThrottleFn
 -  by
[@&#8203;xiaoxiaohuayu](https://redirect.github.com/xiaoxiaohuayu) in
[#&#8203;5131](https://redirect.github.com/vueuse/vueuse/issues/5131)
[<samp>(7fb7a)</samp>](https://redirect.github.com/vueuse/vueuse/commit/7fb7a05a)
- **types**: Deprecate embeded `ResizeObserverSize` types  -  by
[@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5127](https://redirect.github.com/vueuse/vueuse/issues/5127)
[<samp>(d7a07)</samp>](https://redirect.github.com/vueuse/vueuse/commit/d7a07010)
- **useArrayReduce**: Export `UseArrayReduceReturn` type  -  by
[@&#8203;michaelcozzolino](https://redirect.github.com/michaelcozzolino)
in [#&#8203;5177](https://redirect.github.com/vueuse/vueuse/issues/5177)
[<samp>(e1204)</samp>](https://redirect.github.com/vueuse/vueuse/commit/e1204722)
- **useAsyncQueue**: Trigger onFinished when the last task is rejected
 -  by
[@&#8203;keeplearning66](https://redirect.github.com/keeplearning66) and
[@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5144](https://redirect.github.com/vueuse/vueuse/issues/5144)
[<samp>(c4a46)</samp>](https://redirect.github.com/vueuse/vueuse/commit/c4a46025)
- **useClipboard**: Add readonly attribute to textarea fallback to
support Safari 15  -  by
[@&#8203;huajianjiu](https://redirect.github.com/huajianjiu) in
[#&#8203;5179](https://redirect.github.com/vueuse/vueuse/issues/5179)
[<samp>(ef0c4)</samp>](https://redirect.github.com/vueuse/vueuse/commit/ef0c4f82)
- **useInfiniteScroll**: Make canLoadMore reactive  -  by
[@&#8203;nhquyss](https://redirect.github.com/nhquyss) in
[#&#8203;5110](https://redirect.github.com/vueuse/vueuse/issues/5110)
[<samp>(3dc2d)</samp>](https://redirect.github.com/vueuse/vueuse/commit/3dc2d831)
- **useMagicKeys**: Handle empty key events to prevent errors  -  by
[@&#8203;babu-ch](https://redirect.github.com/babu-ch) and
[@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5149](https://redirect.github.com/vueuse/vueuse/issues/5149)
[<samp>(f8aec)</samp>](https://redirect.github.com/vueuse/vueuse/commit/f8aecd82)
- **useScroll**: Use configurable window's `getComputedStyle`  -  by
[@&#8203;9romise](https://redirect.github.com/9romise) in
[#&#8203;5150](https://redirect.github.com/vueuse/vueuse/issues/5150)
[<samp>(f74a6)</samp>](https://redirect.github.com/vueuse/vueuse/commit/f74a68d4)
- **useSpeechRecognition**: Catch the error while calling method start
 -  by [@&#8203;ben-lau](https://redirect.github.com/ben-lau),
**liubaobin** and [@&#8203;9romise](https://redirect.github.com/9romise)
in [#&#8203;5142](https://redirect.github.com/vueuse/vueuse/issues/5142)
[<samp>(94f1e)</samp>](https://redirect.github.com/vueuse/vueuse/commit/94f1e9e7)
- **useTimeout**: Fix type typo  -  by
[@&#8203;keeplearning66](https://redirect.github.com/keeplearning66),
**Robin** and **Anthony Fu** in
[#&#8203;5147](https://redirect.github.com/vueuse/vueuse/issues/5147)
[<samp>(31e5c)</samp>](https://redirect.github.com/vueuse/vueuse/commit/31e5cb0c)

#####     [View changes on
GitHub](https://redirect.github.com/vueuse/vueuse/compare/v14.0.0...v14.1.0)

</details>

---

### Configuration

📅 **Schedule**: 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 these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS45IiwidXBkYXRlZEluVmVyIjoiNDIuMTkuOSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-01 11:14:41 +01:00
renovate[bot] 9062f78bd3
chore(deps): update pnpm to v10.24.0 (#1912)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.23.0` ->
`10.24.0`](https://renovatebot.com/diffs/npm/pnpm/10.23.0/10.24.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.23.0/10.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>pnpm/pnpm (pnpm)</summary>

###
[`v10.24.0`](https://redirect.github.com/pnpm/pnpm/compare/v10.23.0...v10.24.0)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.23.0...v10.24.0)

</details>

---

### Configuration

📅 **Schedule**: 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/go-vikunja/vikunja).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xOS45IiwidXBkYXRlZEluVmVyIjoiNDIuMTkuOSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 23:09:13 +01:00
kolaente e43bac7fbc
fix(test): include response body in error 2025-11-28 16:48:08 +01:00
renovate[bot] d1add5c621
chore(deps): update dev-dependencies (#1898)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-28 10:17:36 +01:00
Frederick [Bot] f7e91f4b19 chore(i18n): update translations via Crowdin 2025-11-28 00:54:33 +00:00
kolaente 9626382667 fix(editor): close only editor when pressing escape
This fixes a bug where when the task was opened in a modal and the user was editing the description and then pressing escape it would also close the task modal instead of only escaping from the editor itself.
2025-11-27 22:24:22 +01:00
renovate[bot] 6bee4a40ae
fix(deps): update dependency @sentry/vue to v10.26.0 (#1878)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-27 19:53:03 +00:00
renovate[bot] 33ba7073c2
fix(deps): update dependency vue to v3.5.25 (#1888)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-27 19:30:18 +00:00
kolaente 16790e19f9
fix(editor): preserve consecutive whitespace in comments in TipTap (#1893)
* fix(editor): preserve consecutive whitespace in comments in TipTap

Ensure multiple spaces in comment content are no longer collapsed when editing/saving by:
- Adding SetContentOptions with parseOptions.preserveWhitespace = 'full'
- Applying those options to all setContent calls (initial load, exit edit mode, post-upload cleanup)
- Enabling preserveWhitespace in editor parseOptions

Previously, repeated spaces were normalized away after setContent(false), causing comments with deliberate spacing to be altered unexpectedly.

No behavioral changes beyond whitespace retention; renders identical except space fidelity.

* fix(editor): use preserveWhitespace true instead of full to avoid duplicate checklist items

The 'full' mode preserves all whitespace including between block elements,
which caused the HTML parser to create extra empty list items from newlines
between <li> tags. Using 'true' preserves whitespace in inline content only,
which still achieves the goal of preserving consecutive spaces in text while
not creating spurious nodes from formatting whitespace.

---------

Co-authored-by: maggch <maggch@outlook.com>
2025-11-27 19:10:22 +00:00
renovate[bot] cbbaf540a5
fix(deps): update dependency vue-i18n to v11.2.1 (#1891)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-27 20:07:57 +01:00
kolaente 5922d1fa1e fix(test): correctly set fixed time in login test 2025-11-27 19:57:23 +01:00
kolaente 566ff99e6c
fix(editor): prevent upload overlay from intercepting text drag operations (#1890) 2025-11-27 17:49:38 +00:00
renovate[bot] f7d5122638
fix(deps): update dependency marked to v17 (#1797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-27 17:35:33 +01:00
renovate[bot] c3a75bbd4d
chore(deps): update pnpm to v10.23.0 (#1877)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-27 17:35:20 +01:00
renovate[bot] 5c4ea721c7
fix(deps): update dependency workbox-precaching to v7.4.0 (#1879)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-27 16:37:42 +01:00
kolaente 51512c1cb4
feat: migrate cypress e2e tests to playwright (#1739) 2025-11-27 16:34:48 +01:00
Mithilesh Gupta 7dddc5dfa2
feat: task unread tracking (#1857)
---------

Co-authored-by: Mithilesh Gupta <guptamithilesh@protonmail.com>
Co-authored-by: kolaente <k@knt.li>
2025-11-27 15:14:42 +01:00
kolaente 2976d6f676 fix: use shift+r for reminder shortcut on apple devices 2025-11-26 23:58:01 +01:00
kolaente f7acdf4ac1
fix: don't try to switch to project 0 when reloading the page (#1855) 2025-11-26 23:28:05 +01:00
kolaente 34575e4eb7 fix(editor): don't convert text that's pasted into a code block to markdown
Resolves https://community.vikunja.io/t/pasting-into-code-block-renders-markdown/4181
2025-11-26 23:27:33 +01:00
renovate[bot] f7bdb996ca chore(deps): update dev-dependencies 2025-11-26 13:47:07 +01:00
kolaente 719d06a991
feat(editor): automatically save draft comments locally (#1868)
Resolves https://github.com/go-vikunja/vikunja/issues/1867
2025-11-24 22:23:58 +00:00
Frederick [Bot] fd9693cb6a chore(i18n): update translations via Crowdin 2025-11-24 00:59:57 +00:00
kolaente 4b4684961b fix: emit null 2025-11-22 17:23:03 +01:00
kolaente e7c0f5fab3 fix(components): fix all type errors in FilterAutocomplete.ts
- Add type filters for label and project arrays to remove undefined values
- Add @ts-expect-error for projectId parameter in getAll call
- Add type assertion for userService.getAll empty object parameter
- Add default value for prefix in destructuring
- Add null check for match.index
- Add type assertions for union type property access (username/title)
- Add null check for autocompleteContext
- Fix Selection.near call with @ts-expect-error comment
- Add optional chaining for array access that could be undefined
2025-11-22 17:23:03 +01:00
kolaente fe9bc02d10 fix(components): use ts-expect-error in mentionSuggestion.ts
- Replace 'as any' with @ts-expect-error comment
- This is needed because projectId is used for URL replacement but not part of IAbstract
2025-11-22 17:23:03 +01:00
kolaente 412fd3a221 fix(components): add type assertions in MentionUser.vue
- Import IUser type
- Add type assertion for username from node.attrs.id
- Add type assertion for fetchAvatarBlobUrl return value
2025-11-22 17:23:03 +01:00
kolaente 642cd08b9d fix(components): add type annotations in MentionList.vue
- Import PropType and MentionNodeAttrs
- Add MentionItem interface
- Add PropType for items array and command function
2025-11-22 17:23:03 +01:00
kolaente 30101308ea fix(components): add type annotations in suggestion.ts
- Import Editor and Range types from @tiptap/core
- Add TranslateFunction type for t parameter
- Add SuggestionProps interface for props parameter
- Add type annotations for all command callbacks
- Add null check for document.getElementById result
- Add null check for props.event in onKeyDown
2025-11-22 17:23:03 +01:00
kolaente ddf018e791 fix(components): add type annotations in setLinkInEditor.ts
- Import Editor type from @tiptap/core
- Add DOMRect type for pos parameter
- Add Editor | null | undefined type for editor parameter
2025-11-22 17:23:03 +01:00
kolaente d46afda42b fix(components): add type annotations in commands.ts
- Import Editor and Range types from @tiptap/core
- Add CommandProps interface for command callback
- Add type annotations for command callback parameters
2025-11-22 17:23:03 +01:00
kolaente 3a52a86980 fix(components): add undefined checks in TipTap.vue
- Add null check for DataTransferItem from items array
- Add undefined checks for check.children[1] before accessing
- Extract secondChild variable for safer access
2025-11-22 17:23:03 +01:00
kolaente 0987e382e4 fix(components): add type annotations for event parameters in TipTap.vue
- Add Event type for triggerImageInput and addImage
- Add MouseEvent type for setLink and clickTasklistCheckbox
- Add KeyboardEvent type for setFocusToEditor
- Add type assertions for event.target as HTMLElement
2025-11-22 17:23:03 +01:00
kolaente bff5ed6403 fix(components): use correct SetContentOptions in TipTap.vue
- Replace false with {emitUpdate: false} in setContent calls
- Fix 3 SetContentOptions type errors
2025-11-22 17:23:03 +01:00
kolaente eab1a211ae fix(components): fix clipboard data null checks in TipTap.vue
- Add proper null check for clipboardData.items before accessing length
- Replace for...of loop with indexed for loop to avoid iterator issue with DataTransferItemList
2025-11-22 17:23:03 +01:00
kolaente 278eae387c fix(components): add type guards and assertions in TipTap.vue
- Add HTMLImageElement instanceof check before accessing src property
- Add type assertions for getBlobUrl return value and cache access
2025-11-22 17:23:03 +01:00
kolaente 1275cb7fc5 fix(components): correct FontAwesome icon format in TipTap.vue
- Change icon format from ['fa', 'fa-bold'] to ['fas', 'bold']
- Fix 6 icon type errors by using correct IconPrefix and IconName format
2025-11-22 17:23:03 +01:00
kolaente ab8b93e9ab fix(components): suppress complex union type error in Button.vue
- Remove BaseButtonProps extension to avoid complex union type
- Use @ts-expect-error to suppress TS2590 error caused by IconProp
- Add computed properties for variant, shadow, and wrap with proper defaults
2025-11-22 17:23:03 +01:00
kolaente d96cecec09 fix(components): use undefined instead of empty object in ImportHint
- Replace empty object with undefined to use default parameter in TaskService.getAll
2025-11-22 17:23:03 +01:00
kolaente a615afa934 fix(components): add undefined checks in GanttChartPrimitive
- Add undefined check for first row before accessing cellsByRow
- Add nullish coalescing for focusedRow.value in emit calls
2025-11-22 17:23:03 +01:00
kolaente 59fedb6757 fix(components): add type guards and null checks in Multiselect
- Add null check for multiselectRoot before passing to closeWhenClickedOutside
- Add early return for null object in select function
- Add type guards for string vs object in setSelectedObject
- Add type guards for focus method in preSelect function
- Remove invalid length check on Element type
2025-11-22 17:23:03 +01:00
kolaente 81f85a3849 fix(components): add generic constraints and null checks in AutocompleteDropdown
- Add 'extends string' constraint to generic type T
- Add null check for model.value with nullish coalescing
- Add null check for scroller before accessing properties
- Add instanceof check for HTMLElement before accessing offsetTop
2025-11-22 17:23:03 +01:00
kolaente a575159424 fix(components): handle null values in DatepickerWithValues
- Add null to date ref type to match props.modelValue type
- Convert Date to string before passing to parseDateOrString
- Add null coalescing for flatpickrDate assignment
2025-11-22 17:23:03 +01:00
kolaente 8e089f5789 chore: add TYPECHECK_ISSUES.md to .gitignore 2025-11-22 17:23:03 +01:00
kolaente 658946b029 fix: resolve readonly project type issue in AppHeader.vue
Create mutable copy of currentProject from Pinia store to satisfy type
requirements. The readonly deep object from the store has readonly tasks
array which is incompatible with IProject type.

Fixes TypeScript errors on lines 25 and 40 where readonly project was
passed to getProjectTitle() and ProjectSettingsDropdown component.

Related to issue #29 from TYPECHECK_ISSUES.md
2025-11-22 17:23:03 +01:00
kolaente f67af55204 fix: resolve readonly array type issue in Navigation.vue
Cast readonly project arrays from Pinia store to mutable IProject[] type.
The arrays are not actually mutated by the component, so the cast is safe.

Fixes TypeScript errors on lines 86, 97, 105 where readonly arrays were
incompatible with ProjectsNavigation component props.

Related to issue #28 from TYPECHECK_ISSUES.md
2025-11-22 17:23:03 +01:00
kolaente 4cd53c204d fix: add proper type definitions for CommandItem in CommandsList.vue 2025-11-22 17:23:03 +01:00
kolaente 83191eb24d fix: add null/undefined handling in GanttChart.vue 2025-11-22 17:23:03 +01:00
kolaente 618c85a0a7 fix: handle readonly arrays and type conversions in DatepickerWithRange.vue 2025-11-22 17:23:03 +01:00
kolaente cc76b87b89 fix: use proper FontAwesome icon types in EditorToolbar.vue 2025-11-22 17:23:03 +01:00
kolaente 508f91a97b fix: initialize date ref with null instead of undefined in Datepicker.vue 2025-11-22 17:23:03 +01:00
kolaente 3742234540 fix: add comprehensive null/undefined checks in Reactions.vue 2025-11-22 17:23:03 +01:00
kolaente 575cf149b0 fix: add undefined checks and null coalescing in Datepicker.vue 2025-11-22 17:23:03 +01:00
kolaente aadf0e4c17 fix: add null/undefined checks for maxPermission in AppHeader.vue 2025-11-22 17:23:03 +01:00
kolaente cdb39c945c fix: add null checks for project.maxPermission in ProjectsNavigationItem.vue 2025-11-22 17:23:03 +01:00
kolaente 8f062f21d8 fix: add null checks and type assertion in ProjectsNavigation.vue 2025-11-22 17:23:03 +01:00
kolaente 75dafd18e3 fix: return undefined instead of null in ContentLinkShare getProjectRoute() 2025-11-22 17:23:03 +01:00
kolaente 4a2f961a77 fix: ContentAuth types 2025-11-22 17:23:03 +01:00
kolaente a89855a9d1 fix: default language in App.vue types 2025-11-22 17:23:03 +01:00
kolaente 7543b3b5cd fix: types for Multiselect 2025-11-22 17:23:03 +01:00
kolaente db531ab1c4 fix: types for DatepickerInline 2025-11-22 17:23:03 +01:00
kolaente 3fadacbb76 fix: event type 2025-11-22 17:23:03 +01:00
kolaente 5b38a825e3 fix: service worker types 2025-11-22 17:23:03 +01:00
kolaente a6d31dad08 fix: type issues with expandable 2025-11-22 17:23:03 +01:00
kolaente 21d9724572 fix: add pagination type 2025-11-22 17:23:03 +01:00
kolaente 6831f3c347 fix: tycheck issues in Story 2025-11-22 17:23:03 +01:00
kolaente 2bc2311212
feat: show task card preview when hovering over task title in list and table view (#1863) 2025-11-22 12:10:58 +01:00
renovate[bot] 953623c132
chore(deps): update cypress/browsers:latest docker digest to 7331c59 (#1852)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-22 01:20:13 +01:00
Weijie Zhao cfab3ff922
fix: update mention format to use custom HTML element with usernames (#1843) 2025-11-21 15:29:15 +01:00
Weijie Zhao b3b420121d
fix(editor): prevent image insertion from triggering save (#1846)
Ensure inserting an image only updates editor content without firing implicit save or switching out of edit mode. This keeps user in edit flow and avoids unintended save events.
2025-11-21 15:22:46 +01:00
kolaente e3ca310c05
fix: remove empty style block from Label.vue
Fixes a regression introduced in 3c75e0a9b6
2025-11-20 15:10:17 +01:00
rudd6617 b6dcde7f6c
chore(i18n): add Traditional Chinese locale and translations (#1839) 2025-11-20 13:42:31 +01:00
kolaente 3c75e0a9b6
fix(table): label spacing when wrapping 2025-11-19 22:51:02 +01:00
kolaente a76ff31dbc
fix: don't hide filter icon on hover 2025-11-19 22:37:52 +01:00
renovate[bot] 39ba18a04a
chore(deps): update dev-dependencies (#1832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-17 23:17:58 +00:00
kolaente d5a46310a7
chore: delete frontend/package-lock.json
Since we're using pnpm and not npm, this feels pretty useless.
2025-11-18 00:02:53 +01:00
Copilot 6b0a05b5ca
Use Cmd+K for quick actions on macOS instead of Ctrl+K (#1837)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <13721712+kolaente@users.noreply.github.com>
2025-11-17 22:56:54 +00:00
Frederick [Bot] 0b0928e273 chore(i18n): update translations via Crowdin 2025-11-17 00:57:26 +00:00
kolaente 067cc5674b
fix(filters): handle multiple projects correctly in parsing, fixing autocomplete
Resolves https://github.com/go-vikunja/vikunja/issues/1395
2025-11-16 15:53:40 +01:00
kolaente 675a550247
fix(filter): restore cursor position when making changes
Related https://github.com/go-vikunja/vikunja/issues/1395
2025-11-16 15:38:24 +01:00
kolaente 2e3b2cb770
fix: ensure project filters are retained correctly across views (#1643) 2025-11-16 14:29:50 +00:00
kolaente 85fc8fffd4 feat: restrict attachment drop to files
Resolves https://github.com/go-vikunja/vikunja/issues/1663
2025-11-16 12:22:30 +01:00
kolaente abbf2ce183 chore: copy useDropZone from vueuse 2025-11-16 12:22:30 +01:00
kolaente 3f1f92c410 fix: always allow dropping files 2025-11-16 12:22:30 +01:00
renovate[bot] 374730056d
chore(deps): update dev-dependencies (#1830)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-16 00:14:51 +00:00
Copilot d057afb781
feat: display assignee names on mobile for accessibility (#1828)
Fixes https://github.com/go-vikunja/vikunja/issues/1741

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <13721712+kolaente@users.noreply.github.com>
Co-authored-by: kolaente <k@knt.li>
2025-11-16 01:05:40 +01:00
Copilot 25827f432e
feat: hide link share creation form by default in sharing dialogue (#1827)
The link share creation form is now hidden by default and only shown when users explicitly click the "Create" button. This reduces confusion in the sharing dialogue where users might mistake link sharing for team sharing.

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <13721712+kolaente@users.noreply.github.com>
2025-11-15 19:05:28 +00:00
kolaente 14c7bd88f2
fix: lint 2025-11-15 18:13:06 +01:00
Copilot 6903bb67c7
feat: add clickable labels on Labels page for task filtering (#1825)
Resolves https://community.vikunja.io/t/click-label-to-show-all-matching-tasks/3082

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <13721712+kolaente@users.noreply.github.com>
Co-authored-by: kolaente <k@knt.li>
2025-11-15 17:10:32 +00:00
kolaente 162ec33613
fix(filter): don't duplicate subtasks in list view
Resolves https://github.com/go-vikunja/vikunja/issues/1786
2025-11-15 17:07:40 +01:00
kolaente 411cfbef92
fix: correctly store fetched task positions
Resolves https://github.com/go-vikunja/vikunja/issues/1392#issuecomment-3516180532
2025-11-15 16:57:13 +01:00
renovate[bot] aa08780f52
chore(deps): update dev-dependencies (#1822)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-15 08:55:50 +01:00
Frederick [Bot] 832b7cf1cd chore(i18n): update translations via Crowdin 2025-11-15 00:54:42 +00:00
Copilot 7cd3f69096
fix: prevent date picker from selecting past times at hour breakpoints (#1814)
The function previously used <= for hour comparisons, which caused it to
return a breakpoint hour even if the current time had passed it. For example,
at 15:54, it would return 15 (3:00 PM), which is in the past.

Now the function checks both hours and minutes:
- If current time is before a breakpoint hour, return that hour
- If current time is exactly at a breakpoint hour with 0 minutes, return that hour
- If current time is past a breakpoint (hour with minutes > 0), return the next breakpoint

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <13721712+kolaente@users.noreply.github.com>
2025-11-13 10:46:24 +01:00
Copilot 9990a1f60f
fix(date picker): hide "this weekend" option on Sunday after 9pm (#1813)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <13721712+kolaente@users.noreply.github.com>
2025-11-13 09:08:48 +00:00
Copilot 650fb94978
feat: add time display with configurable format (12h/24h) to non-relative date formats (#1807)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <k@knt.li>
2025-11-13 08:57:06 +00:00
Frederick [Bot] 7a0b55307b chore(i18n): update translations via Crowdin 2025-11-13 00:56:40 +00:00
Copilot 409edb82c6
fix: downgrade tiptap to v3.8.0 to resolve editor crash (#1806)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <13721712+kolaente@users.noreply.github.com>
2025-11-12 22:47:25 +00:00
renovate[bot] 1b995024a9
fix(deps): update dependency @sentry/vue to v10.25.0 (#1780)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-12 21:37:36 +01:00
renovate[bot] df5084b8e7
chore(deps): update pnpm to v10.22.0 (#1800)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-12 21:37:23 +01:00
renovate[bot] 9ed848efe1
chore(deps): update cypress/browsers:latest docker digest to e85371f (#1798)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-12 21:08:47 +01:00
kolaente dcfd096588
feat: allow setting dark custom logo
Resolves https://github.com/go-vikunja/vikunja/issues/1799
2025-11-12 21:07:01 +01:00
renovate[bot] 0c59383abb
chore(deps): update dev-dependencies (#1790)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-12 15:26:35 +01:00
renovate[bot] 9a1fe91a9b
chore(deps): update node.js to v24.11.1 (#1787)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-12 13:08:44 +00:00
Mithilesh Gupta 01a84dd2d5
feat: add comment count to tasks (#1771) 2025-11-11 23:00:05 +01:00
renovate[bot] e371ee6f12
chore(deps): update pnpm to v10.21.0 (#1779)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-11 11:56:08 +01:00
renovate[bot] d8d118be62
fix(deps): update dependency vue to v3.5.24 (#1772)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-11 11:55:07 +01:00
renovate[bot] be2bd90de4
fix(deps): update tiptap to v3.10.5 (#1773)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-11 11:12:17 +01:00
Frederick [Bot] 7dac1c7539 chore(i18n): update translations via Crowdin 2025-11-11 00:56:52 +00:00
kolaente 435d029f33
feat: show avatar for mentioned users 2025-11-10 11:25:47 +01:00
kolaente 0d83a568ce
chore: reorganize mention setup 2025-11-10 11:24:45 +01:00
Weijie Zhao 43a5ae1309
feat: enable user mentions in task description & comments (#1754) 2025-11-09 19:42:38 +01:00
renovate[bot] 9efec4983e
fix(deps): update dependency marked to v16.4.2 (#1767)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 15:42:44 +01:00
Copilot e424689ed9
fix: migrate Sentry integration to SDK v8 API (#1769) 2025-11-07 15:20:57 +00:00
renovate[bot] 77779350d2
fix(deps): update dependency vue to v3.5.23 (#1760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-06 11:22:22 +00:00
renovate[bot] 08525bcb4b
fix(deps): update tiptap to v3.10.2 (#1735)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-06 07:23:21 +00:00
renovate[bot] 6ee83283e0
fix(deps): update dependency @sentry/vue to v10.23.0 (#1755)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-06 08:08:06 +01:00
renovate[bot] 5987874165
fix(deps): update dependency pinia to v3.0.4 (#1753)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-05 10:37:59 +00:00
kolaente 03f04f0787
fix(task): slash menu appearing behind modals (#1752)
The slash menu in the editor was appearing behind task detail modals
(z-index 4000) because it had a z-index of only 1000. This made the
menu inaccessible when editing task descriptions in Kanban view.

Updated the z-index to 4700 to place it above modals while keeping
it below system notifications (z-index 9999).

Fixes #1746
2025-11-05 10:29:19 +00:00
renovate[bot] f4d0cc7ffa
chore(deps): update cypress/browsers:latest docker digest to 33dbe61 (#1749)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-05 10:10:23 +01:00
renovate[bot] 7c93d9fe1b
chore(deps): update dependency @cypress/vite-dev-server to v7.0.1 (#1750)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-05 10:10:11 +01:00
renovate[bot] 7fe4573211
fix(deps): update dependency axios to v1.13.2 (#1748)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-05 00:26:43 +01:00
renovate[bot] 615c076fcb
chore(deps): update dev-dependencies (#1740)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 21:54:26 +00:00
renovate[bot] 15cba4cd27
chore(deps): update cypress/browsers:latest docker digest to 368e300 (#1734)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-31 12:24:52 +00:00
renovate[bot] 4f26fae25b
fix(deps): update dependency dayjs to v1.11.19 (#1736)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-31 12:24:34 +00:00
Frederick [Bot] 2b92564132 chore(i18n): update translations via Crowdin 2025-10-31 00:54:52 +00:00
renovate[bot] d2a097f07d
fix(deps): update tiptap to v3.9.1 (#1731)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-30 11:45:00 +00:00
renovate[bot] 25898a7049
chore(deps): update pnpm to v10.20.0 (#1732)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-30 11:44:46 +00:00
renovate[bot] 993d24a548
fix(deps): update dependency axios to v1.13.1 (#1727)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-29 14:44:11 +00:00
renovate[bot] 5d8ab9b4b6
fix(deps): update dependency @kyvg/vue3-notification to v3.4.2 (#1726)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-29 14:43:54 +00:00
renovate[bot] 458081986d
fix(deps): update dependency @sentry/vue to v10.22.0 (#1712)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-29 14:28:50 +00:00
renovate[bot] 63bf32cb4c
chore(deps): update node.js to v24 (#1721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-29 14:12:42 +00:00
renovate[bot] c3b2bb92eb
fix(deps): update tiptap to v3.9.0 (#1723)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-29 14:12:16 +00:00
renovate[bot] c66cf8b75a
fix(deps): update dependency axios to v1.13.0 (#1720)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-28 00:34:28 +01:00
renovate[bot] 68c3c33820
chore(deps): update cypress/browsers:latest docker digest to 1b0e8df (#1697)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-27 12:47:28 +00:00
renovate[bot] fedb486e70
chore(deps): update dev-dependencies (#1708)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-27 13:24:05 +01:00
renovate[bot] 087e6294d4
fix(deps): update tiptap to v3.8.0 (#1713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-27 13:23:32 +01:00
Frederick [Bot] b8c8e2a03d chore(i18n): update translations via Crowdin 2025-10-27 00:59:22 +00:00
renovate[bot] 262e890dc9
fix(deps): update vueuse to v14 (major) (#1707)
fix(deps): update vueuse to v14

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-22 22:55:54 +00:00
renovate[bot] f360bc20ce
chore(deps): update pnpm to v10.19.0 (#1704)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-23 00:55:18 +02:00
renovate[bot] 0e1c16849c
fix(deps): update dependency @sentry/vue to v10.21.0 (#1706)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-23 00:55:06 +02:00
renovate[bot] 9a82e4a744
chore(deps): update dev-dependencies (#1700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-22 08:06:39 +00:00
renovate[bot] c0d812e1db
chore(deps): update dev-dependencies (#1692)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 07:11:54 +02:00
renovate[bot] 48c1853523
chore(deps): update node.js to v22.21.0 (#1693)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 07:11:42 +02:00
renovate[bot] 022c627ad6
chore(deps): update dev-dependencies (#1686)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-20 08:36:45 +02:00
Frederick [Bot] ba84e78222 chore(i18n): update translations via Crowdin 2025-10-20 00:57:36 +00:00
renovate[bot] f077088483
chore(deps): update dev-dependencies (#1682)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-19 09:21:42 +02:00
renovate[bot] f9ed940e5d
chore(deps): update cypress/browsers:latest docker digest to b7d45cd (#1680)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-18 09:57:00 +02:00
renovate[bot] 35167bbff3
chore(deps): update cypress/browsers:latest docker digest to f47e21d (#1674)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-17 16:11:11 +02:00
renovate[bot] 22d03d4309
fix(deps): update tiptap to v3.7.2 (#1669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-17 16:10:59 +02:00
renovate[bot] ddc78cd1d0
fix(deps): update dependency vue-router to v4.6.3 (#1671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-17 16:10:45 +02:00
renovate[bot] 2d728fff08
chore(deps): update dev-dependencies (#1676)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-17 16:10:17 +02:00
renovate[bot] 36872d8274
fix(deps): update dependency marked to v16.4.1 (#1677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-17 16:10:03 +02:00
renovate[bot] a5e2fbbe69
chore(deps): update dev-dependencies (#1662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 21:23:00 +00:00
renovate[bot] 71287778d3
chore(deps): update dependency happy-dom to v20.0.2 [security] (#1668)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 21:05:20 +00:00
renovate[bot] cf0b05324e
fix(deps): update dependency vue-router to v4.6.2 (#1665)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 23:03:32 +02:00
renovate[bot] 79d07c833b
fix(deps): update dependency @sentry/vue to v10.20.0 (#1666)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 23:03:22 +02:00
renovate[bot] 1094edab80
fix(deps): update dependency vue-router to v4.6.0 (#1657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-14 19:12:16 +00:00
renovate[bot] 96606bf913
fix(deps): update tiptap to v3.7.0 (#1660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-14 19:04:32 +00:00
renovate[bot] aa08a89c65
fix(deps): update dependency dompurify to v3.3.0 (#1651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-14 10:42:34 +00:00
renovate[bot] 9ebaea5d9b
fix(deps): update tiptap to v3.6.7 (#1656)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-14 10:25:57 +00:00
renovate[bot] aaae3ccd34
chore(deps): update dev-dependencies (#1644)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-14 12:24:53 +02:00
renovate[bot] abcdb2c537
chore(deps): update pnpm to v10.18.3 (#1655)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-14 12:24:19 +02:00
kolaente 2977a11a2c
fix: show cross-project subtasks in List view (#1649) 2025-10-13 18:43:40 +02:00
kolaente c8837aeaeb
fix(filters): support project filter in parentheses (#1647)
The filter regex pattern was not matching values inside parentheses correctly.
The lookahead pattern only allowed `&&`, `||`, or end-of-string after filter
values, but when filters are wrapped in parentheses like `( project = Filtertest )`,
the closing `)` appears after the value.

Fixed by adding `\)` to the lookahead pattern so it correctly handles closing
parentheses. This allows the project filter (and other filters) to work
properly when nested in parentheses.

- Added tests for project filters in parentheses (both frontend and backend)
- Backend tests confirm the backend already handled this correctly
- Frontend regex pattern now matches the backend behavior

Fixes #1645
2025-10-13 11:10:22 +02:00
kolaente 4383948275
fix: prevent duplicate CreateEdit submissions (#1541) 2025-10-11 20:24:21 +00:00
kolaente 215605db77
fix(project): correctly set last project when navigating from a saved filter (#1642) 2025-10-11 20:11:43 +00:00
renovate[bot] c723b2dffb
chore(deps): update dependency happy-dom to v20 [security] (#1640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-11 09:26:17 +02:00
renovate[bot] cf9e5d0829
chore(deps): update pnpm to v10.18.2 (#1636)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-10 09:27:03 +02:00
renovate[bot] d77853e940
chore(deps): update dependency @types/node to v22.18.9 (#1635)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-10 09:26:44 +02:00
renovate[bot] b6f61b08a7
fix(deps): update tiptap to v3.6.6 (#1633)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-09 20:46:47 +02:00
renovate[bot] 27015e0ab7
fix(deps): update dependency @sentry/vue to v10.19.0 (#1632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-09 11:58:32 +00:00
renovate[bot] 4220e8219e
chore(deps): update dev-dependencies (#1625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-09 08:34:06 +00:00
kolaente 0c602d10b8
fix: preserve link share hash on task back navigation (#1623) 2025-10-09 10:07:37 +02:00
kolaente dd245cf35e
fix: restore quick add magic modal close button on mobile (#1622)
* fix(frontend): add close control to quick add magic modal
2025-10-08 21:49:43 +00:00
kolaente 28f9e5b83b
fix: style lint 2025-10-08 18:51:44 +02:00
kolaente 1f1e0b227d
fix(date parsing): 12pm/12am edge case
Fixes a regression introduced in
c2e224dbb1
2025-10-08 18:35:11 +02:00
kolaente c63b3550d5
fix(rtl): correct spacing for user avatar menu
Resolves https://github.com/go-vikunja/vikunja/issues/1544
2025-10-08 18:28:54 +02:00
kolaente 5568d751bf
fix(rtl): make sure modals are centered
Resolves https://github.com/go-vikunja/vikunja/issues/1544
2025-10-08 18:28:54 +02:00
kolaente d3319544e3
fix(rtl): put the menu to the correct side on rtl languages
Resolves https://github.com/go-vikunja/vikunja/issues/1544
2025-10-08 18:28:54 +02:00
kolaente c2e224dbb1
fix: correct case-sensitivity in duedate time parsing (#1613)
Co-authored-by: mechanarchy <1166756+mechanarchy@users.noreply.github.com>
2025-10-08 16:24:54 +00:00
renovate[bot] d001c7f9d9
chore(deps): update cypress/browsers:latest docker digest to 1f1adf3 (#1608)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-08 10:29:50 +00:00
renovate[bot] 74a86a510b
chore(deps): update ghcr.io/go-vikunja/dex-testing:main docker digest to d401c06 (#1604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 20:46:12 +00:00
renovate[bot] aa400bb532
fix(deps): update dependency @sentry/vue to v10.18.0 (#1606)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 22:35:33 +02:00
renovate[bot] 866aedf94a
chore(deps): update dev-dependencies (#1601)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 10:01:25 +02:00
renovate[bot] 4bf3f73df2
fix(deps): update dependency marked to v16.4.0 (#1603)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-07 10:00:55 +02:00
Weijie Zhao d7d3078de5
fix: prevent keyboard events during IME composition (#1535) 2025-10-06 18:17:52 +02:00
renovate[bot] 1af48aacb9
chore(deps): update pnpm to v10.18.1 (#1598)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-06 13:57:53 +00:00
renovate[bot] 4206354849
fix(deps): update font awesome to v7.1.0 (#1587)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-06 15:32:35 +02:00
renovate[bot] adda31c60c
fix(deps): update tiptap to v3.6.5 (#1595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-06 15:32:20 +02:00
renovate[bot] 7fce68dd9c
chore(deps): update pnpm to v10.18.0 (#1596)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-06 15:32:06 +02:00
renovate[bot] 714b8f82cf
fix(deps): update dependency tailwindcss to v3.4.18 (#1585)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-06 11:54:29 +00:00
renovate[bot] 4177363e46
chore(deps): update dev-dependencies (#1584)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-06 11:51:37 +02:00
renovate[bot] c0bd5539f3
chore(deps): update dev-dependencies (#1578)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-01 08:47:32 +02:00
kolaente 2d37c0fede
fix(user): race condition during email confirmation (#1575) 2025-09-30 20:14:25 +02:00
kolaente 5c4f6dab6b
fix(test): set cypress api url when running tests locally 2025-09-30 18:56:53 +02:00
kolaente 46b4f65da0
fix(test): prune leftover task duplicates 2025-09-30 16:50:11 +02:00
renovate[bot] e63b349b5f
fix(deps): update dependency @sentry/vue to v10.17.0 (#1574)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-30 14:12:49 +00:00
renovate[bot] 2e666e8021
chore(deps): update ghcr.io/go-vikunja/dex-testing:main docker digest to 738f7db (#1571)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-30 07:30:15 +00:00
renovate[bot] df0e9ccefa
chore(deps): update dev-dependencies (#1569)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-30 09:16:11 +02:00
renovate[bot] 93e17929a9
fix(deps): update dependency @sentry/vue to v10.16.0 (#1568)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 16:33:42 +00:00
renovate[bot] 75e05c45c8
fix(deps): update tiptap to v3.6.2 (#1566)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 17:46:17 +02:00
renovate[bot] 6c7ccfdc20
chore(deps): update dev-dependencies (#1563)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 07:47:24 +02:00
renovate[bot] 2625348347
chore(deps): update node.js to v22.20.0 (#1561)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-28 23:24:58 +02:00
renovate[bot] be4daaad8e
chore(deps): update cypress/browsers:latest docker digest to 79a28dd (#1555)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-28 20:51:37 +02:00
renovate[bot] 3e45f9d87e
chore(deps): update ghcr.io/go-vikunja/dex-testing:main docker digest to e374904 (#1556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-28 20:51:25 +02:00
renovate[bot] f6947952de
fix(deps): update dependency vue to v3.5.22 (#1558)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-28 20:51:00 +02:00
renovate[bot] a6d4a8333f
fix(deps): update dependency @sentry/vue to v10.13.0 (#1538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-28 17:04:57 +00:00
renovate[bot] c71d56ee5e
fix(deps): update tiptap to v3.4.5 (#1534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-28 16:21:43 +00:00
renovate[bot] 2e72455b39
chore(deps): update pnpm to v10.17.1 (#1537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-28 15:17:09 +00:00
kolaente 90605f8fcd
chore(deps): update tar-fs to 3.1.1 2025-09-28 16:25:16 +02:00
kolaente a7eebaffb0
fix: position dropdown absolute, not fixed (#1552)
Fixes a regression introduced in 32501bc93b
2025-09-28 16:18:25 +02:00
Frederick [Bot] 48d202f3ce chore(i18n): update translations via Crowdin 2025-09-26 00:51:58 +00:00
kolaente 8c4fc4780e
fix: lint 2025-09-22 14:10:46 +02:00
kolaente 32501bc93b
fix(menu): make sure dropdown menu changes direction when screen is too
small

Resolves https://github.com/go-vikunja/vikunja/issues/1523
2025-09-22 14:03:13 +02:00
renovate[bot] 0654712cbd
chore(deps): update dev-dependencies (#1527)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-21 20:17:38 +02:00
Frederick [Bot] d53f4079ae chore(i18n): update translations via Crowdin 2025-09-19 00:53:14 +00:00
renovate[bot] 3242650713
chore(deps): update dev-dependencies (#1522)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-18 08:21:53 +02:00
Frederick [Bot] 3397d88f0e chore(i18n): update translations via Crowdin 2025-09-18 00:51:01 +00:00
renovate[bot] a9239ecc62
chore(deps): update pnpm to v10.17.0 (#1521)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 19:58:21 +02:00
renovate[bot] 26b251172c
fix(deps): update tiptap to v3.4.4 (#1519)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 15:07:30 +00:00
renovate[bot] 4ba9537e84
fix(deps): update dependency dompurify to v3.2.7 (#1517)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 15:07:06 +00:00
renovate[bot] fc666e57da
chore(deps): update ghcr.io/go-vikunja/dex-testing:main docker digest to 5713289 (#1511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 16:47:01 +02:00
renovate[bot] 908df8cd5f
fix(deps): update dependency @sentry/vue to v10.12.0 (#1515)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-17 16:46:16 +02:00
Frederick [Bot] 57b4e27278 chore(i18n): update translations via Crowdin 2025-09-17 00:51:22 +00:00
renovate[bot] 4e9cc597aa
fix(deps): update tiptap to v3.4.3 (#1506)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 22:37:09 +02:00
renovate[bot] 35d11efec7
chore(deps): update dev-dependencies (#1316)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kolaente <k@knt.li>
2025-09-15 15:31:47 +00:00
renovate[bot] 243a0f51c6
chore(deps): update pnpm to v10.16.1 (#1496)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 16:52:40 +02:00
renovate[bot] 9bb1f89383
fix(deps): update dependency marked to v16.3.0 (#1500)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-15 16:52:06 +02:00
renovate[bot] d33b3f2052
fix(deps): update dependency axios to v1.12.2 (#1495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-14 15:41:19 +02:00
Frederick [Bot] a1c4d46d37 chore(i18n): update translations via Crowdin 2025-09-14 00:55:43 +00:00
Frederick [Bot] aad0764cce chore(i18n): update translations via Crowdin 2025-09-13 00:47:39 +00:00
kolaente 583623bd6c
fix(task): go back to project or saved filter, depending on where the user came from
Resolves https://github.com/go-vikunja/vikunja/issues/1492
2025-09-12 15:45:52 +02:00
renovate[bot] e6abbd5fca
fix(deps): update dependency @intlify/unplugin-vue-i18n to v11.0.1 (#1488)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-12 11:55:33 +02:00
renovate[bot] 5111f245ad
fix(deps): update dependency axios to v1.12.0 [security] (#1487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-12 09:52:34 +00:00
renovate[bot] b2b1ea776d
fix(deps): update dependency @sentry/vue to v10.11.0 (#1485)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-12 08:23:30 +02:00
kolaente b99ea2deb0
fix(filters): persist url filter query across views (#1482) 2025-09-11 22:12:33 +00:00
kolaente fcc204dc88
fix(link share): add better error handling, ensure projects are shown (#1481) 2025-09-11 22:39:16 +02:00
kolaente decee24e12
fix(task): provide back button when opening task detail (#1475) 2025-09-11 22:26:52 +02:00
kolaente d14443d2f2
feat(gantt): natural day-boundary rounding in Gantt chart (#1476) 2025-09-11 15:51:15 +00:00
renovate[bot] 3fd73f3ca8
chore(deps): update ghcr.io/go-vikunja/dex-testing:main docker digest to 408e999 (#1444)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-11 15:32:14 +00:00
kolaente 0dee1789a2
fix(filter): ensure filter query param is added to the page correctly (#1471) 2025-09-11 15:24:12 +00:00
kolaente 8ce8d445ba
fix(kanban): guard task modal race conditions (#1472) 2025-09-11 17:15:57 +02:00
renovate[bot] c25b906e6f
fix(deps): update dependency @fortawesome/vue-fontawesome to v3.1.2 (#1474)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-11 17:12:41 +02:00
kolaente 25b33102f1
fix(task): only save description when clicking away if it actually changed 2025-09-11 15:53:27 +02:00
kolaente d147a01c18
fix(filter): add close button for filter popup on mobile with accurate spacing (#1466)
Resolves #1464
2025-09-11 11:27:05 +00:00
renovate[bot] f5d59a99cc
chore(deps): update cypress/browsers:latest docker digest to 34cbe59 (#1454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-11 13:21:03 +02:00
kolaente 4353b1e9c7
fix: guard saved filter requests (#1462) 2025-09-11 09:36:47 +02:00
kolaente 6914badeb7
fix: reload list view when marking recurring task done (#1457) 2025-09-11 08:56:08 +02:00
renovate[bot] 9e6e5f993f
chore(deps): update dependency vite to v7.1.5 [security] (#1451)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-10 13:25:10 +02:00
renovate[bot] 2538806512
fix(deps): update tiptap to v3.4.2 (#1446)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-09 21:10:01 +02:00
kolaente cd711fd11c
fix(task): autosave description when closing task modal
Resolves https://github.com/go-vikunja/vikunja/issues/1437
2025-09-09 12:27:55 +02:00
Frederick [Bot] 6f45d56055 chore(i18n): update translations via Crowdin 2025-09-07 00:56:28 +00:00
kolaente 61f0cc9507
fix(frontend): hide drag handle for fixed project lists (#1421) 2025-09-05 10:51:44 +00:00
renovate[bot] 02da0116a9
fix(deps): update dependency vue-i18n to v11.1.12 (#1420)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 09:38:51 +00:00
renovate[bot] d296352a01
fix(deps): update dependency @intlify/unplugin-vue-i18n to v11 (#1418)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 16:15:37 +00:00
kolaente bd74733632
fix: show pagination controls for task comments (#1413)
Resolves https://community.vikunja.io/t/task-comment-pagination-in-1-0-0-rc1/3988
2025-09-04 16:04:05 +00:00
renovate[bot] 5bde234859
fix(deps): update dependency @sentry/vue to v10.10.0 (#1416)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 15:46:03 +00:00
kolaente 12842a5e35
fix: remove leftover console.log 2025-09-04 17:13:41 +02:00
kolaente bb07b33dc2
fix(task): update task comment when switching between related tasks 2025-09-04 17:06:34 +02:00
renovate[bot] 6892e8e447
fix(deps): update tiptap to v3.4.1 (#1412)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 14:51:03 +00:00
kolaente 4393d0cdb8
fix(kanban): update task on board when changing details
Fixes a regression introduced in 7ef7163bfe
2025-09-04 16:33:06 +02:00
renovate[bot] 7605fc255b
fix(deps): update tiptap to v3.4.0 (#1406)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 06:33:01 +00:00
renovate[bot] d78291acf7
fix(deps): update dependency @sentry/vue to v10.9.0 (#1400)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-03 16:09:05 +02:00
Frederick [Bot] 98a9e736f4 chore(i18n): update translations via Crowdin 2025-09-03 00:50:31 +00:00
renovate[bot] d34a3a2c77
fix(deps): update font awesome to v7.0.1 (#1394)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-02 21:14:14 +00:00
Copilot 91f81e7dee
feat(kanban): allow folding done column by clicking green checkmarks in Kanban view (#1393) 2025-09-02 21:06:57 +00:00
renovate[bot] 795afad9c1
fix(deps): update tiptap to v3.3.1 (#1386)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-02 14:01:23 +00:00
renovate[bot] 7dafd07879
fix(deps): update dependency vue to v3.5.21 (#1382)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-02 13:05:44 +00:00
renovate[bot] bc04abedb5
chore(deps): update ghcr.io/go-vikunja/dex-testing:main docker digest to 10cc6d5 (#1377)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-02 07:12:37 +00:00
Frederick [Bot] 4b47f0c3cd chore(i18n): update translations via Crowdin 2025-09-02 00:54:00 +00:00
renovate[bot] 67befec053
fix(deps): update vueuse to v13.9.0 (#1374)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-01 21:18:09 +00:00
renovate[bot] 9800b2a8f8
chore(deps): update pnpm to v10.15.1 (#1371)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-01 21:09:27 +00:00
William Guinaudie fda440bd08
fix: mobile device minimum width (#1337) 2025-09-01 22:49:42 +02:00
Frederick [Bot] 11d9462fdc chore(i18n): update translations via Crowdin 2025-09-01 01:03:21 +00:00
kolaente 0262ab7d9e
fix(editor): do not apply filter input styles to all editor instances 2025-08-31 21:34:29 +02:00
kolaente 9610ae780f
fix(multiselect): do not try getting label when value is undefined
Resolves https://github.com/go-vikunja/vikunja/issues/1346
2025-08-31 21:31:42 +02:00
kolaente 3baf6cd477
fix(task): do not parse task comment reactions so that they actually
appear

Resolves https://github.com/go-vikunja/vikunja/issues/1343
2025-08-31 21:25:48 +02:00
Copilot 14e1bd2f55
fix: prevent null history.state errors in modal routing and task navigation (#1368) 2025-08-31 19:14:25 +00:00
kolaente 7510f8d4be
fix(task): default to medium priority when none is configured
Resolves https://github.com/go-vikunja/vikunja/issues/1328
2025-08-31 21:07:30 +02:00
zapp88 a73d0258e4
fix(task): priority label task link spacing (#1322) 2025-08-31 18:36:56 +00:00
zapp88 cbbc5e731a
fix(frontend): add missing permission translation keys (#1320) 2025-08-31 18:06:55 +00:00
kolaente 7ef7163bfe
fix(task): set project after loading task details
Resolves https://github.com/go-vikunja/vikunja/issues/1342
2025-08-31 19:40:54 +02:00
kolaente 61400e93a9
feat(task): make default project relation configurable
Resolves https://community.vikunja.io/t/change-default-task-relation/3637
2025-08-31 19:29:13 +02:00
Simone (Saxos) 4c9f112103
fix(filter): don't crash when filtering for labels in (#1333) 2025-08-31 14:35:16 +00:00
William Guinaudie 07d6630891
fix: stop event propagation for clicks inside the DeferTask popup (#1338) 2025-08-31 14:21:40 +00:00
renovate[bot] db9d842a5b
fix(deps): update vueuse to v13.8.0 (#1367)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-31 15:59:55 +02:00
renovate[bot] 9d28b2247a
fix(deps): update tiptap to v3.3.0 (#1366)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-31 10:24:47 +00:00
renovate[bot] 1f88680a27
fix(deps): update dependency dayjs to v1.11.18 (#1360)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-31 09:23:28 +02:00
renovate[bot] a5ac5dfcf1
fix(deps): update dependency @sentry/vue to v10.8.0 (#1361)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-31 00:34:25 +02:00
renovate[bot] 9a14ccf487
chore(deps): update node.js to v22.19.0 (#1356)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-29 20:57:56 +00:00
renovate[bot] 37b501c029
fix(deps): update dependency dayjs to v1.11.17 (#1355)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-29 20:53:17 +00:00
renovate[bot] 150c75286c
chore(deps): update cypress/browsers:latest docker digest to eeb9b35 (#1352)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-29 15:39:28 +00:00
renovate[bot] 136690b31e
fix(deps): update dependency marked to v16.2.1 (#1350)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-28 17:36:31 +00:00
renovate[bot] d45b381a96
fix(deps): update dependency dayjs to v1.11.15 (#1349)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-28 17:28:32 +00:00
renovate[bot] daafb3843d
chore(deps): update ghcr.io/go-vikunja/dex-testing:main docker digest to 3877bee (#1348)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-28 19:11:34 +02:00
renovate[bot] 1d25c29e9a
fix(deps): update dependency vue to v3.5.20 (#1327)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-28 19:11:02 +02:00
renovate[bot] f099fce4fe
chore(deps): update pnpm to v10.15.0 (#1314)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-28 13:20:27 +02:00
renovate[bot] b37e2b9389
fix(deps): update dependency @floating-ui/dom to v1.7.4 (#1332)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-28 13:19:23 +02:00
renovate[bot] ad7f386ddc
chore(deps): update cypress/browsers:latest docker digest to 4e0a347 (#1297)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-28 13:18:47 +02:00
Frederick [Bot] f6b6fadb51 chore(i18n): update translations via Crowdin 2025-08-23 00:52:11 +00:00
Frederick [Bot] 1b5ddfd11c chore(i18n): update translations via Crowdin 2025-08-22 00:54:32 +00:00
Frederick [Bot] 8ca2487784 chore(i18n): update translations via Crowdin 2025-08-21 00:53:22 +00:00
Frederick [Bot] 871861aad3 chore(i18n): update translations via Crowdin 2025-08-20 00:54:16 +00:00
renovate[bot] f05d799185
chore(deps): update ghcr.io/go-vikunja/dex-testing:main docker digest to 4abbc4f (#1312)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-19 11:08:15 +02:00
renovate[bot] 9f9a71a01f
chore(deps): update dev-dependencies (#1310)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-19 09:43:13 +02:00
Frederick [Bot] f5c6295f42 chore(i18n): update translations via Crowdin 2025-08-19 00:56:39 +00:00
renovate[bot] b794874cd4
fix(deps): update vueuse to v13.7.0 (#1305)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-18 10:42:54 +00:00
kolaente c1ce33019c
fix: set test fixture in e2e test
Fixes a regression introduced in 63b1082951
2025-08-18 11:55:55 +02:00
kolaente 86fb28c732
chore(i18n): clarify wording 2025-08-18 11:44:41 +02:00
kolaente 63b1082951
chore(i18n): improve wording 2025-08-18 11:39:12 +02:00
renovate[bot] 99c1035191
chore(deps): update dev-dependencies (#1298)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-18 07:20:45 +00:00
renovate[bot] 6178daf9b2
fix(deps): update dependency marked to v16.2.0 (#1304)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-18 09:08:17 +02:00
Frederick [Bot] a5407e3f99 chore(i18n): update translations via Crowdin 2025-08-18 01:01:59 +00:00