kolaente
6d2bf1f084
fix: resolve TDZ error on password update settings page
...
Move the watchEffect call after the validate function declaration
to fix "Cannot access 'c' before initialization" error that occurred
when visiting the password update page with validateInitially=true.
Fixes #2463
2026-03-24 15:17:32 +00:00
renovate[bot]
4b16d72e28
chore(deps): update dev-dependencies
2026-03-24 15:14:31 +00:00
Frederick [Bot]
74ecc6fffd
chore(i18n): update translations via Crowdin
2026-03-24 01:11:44 +00:00
kolaente
772316b47f
chore: v2.2.2 release preparations
2026-03-23 21:49:15 +01:00
kolaente
74d1bddb3a
fix: hide link sharing section in UI for non-admin users
2026-03-23 20:39:31 +00:00
kolaente
6d5d3e051f
chore: v2.2.1 release preparations
2026-03-23 19:50:19 +01:00
renovate[bot]
2c1104ca86
chore(deps): update dev-dependencies to v8.57.2
2026-03-23 18:30:13 +00:00
kolaente
07b9742d98
fix: skip quick add magic parsing when text is wrapped in quotes
...
Closes go-vikunja/vikunja#2392
2026-03-23 17:34:56 +00:00
kolaente
8538b4c885
test: add failing tests for quote-escaped task text parsing
2026-03-23 17:34:56 +00:00
renovate[bot]
36bd716e04
chore(deps): update dev-dependencies
2026-03-23 16:33:59 +00:00
MidoriKurage
4dd18e379e
fix(frontend): origUrlToCheck references the same object as urlToCheck
...
When later `urlToCheck` is restored in catch blocks, `origUrlToCheck`
will already be mutated.
Fixed by storing the original pathname as a string copy instead of
keeping a reference to the same URL object.
2026-03-23 15:43:23 +00:00
kolaente
1d45b385a5
fix(deps): update flatted to 3.4.2 to fix prototype pollution vulnerability
2026-03-23 12:53:13 +01:00
renovate[bot]
8bf450b98f
chore(deps): update dependency caniuse-lite to v1.0.30001781
2026-03-23 10:28:55 +00:00
Frederick [Bot]
1ebe913181
chore(i18n): update translations via Crowdin
2026-03-23 01:19:01 +00:00
Claude
cb81cf1aa8
refactor: reorganize quick add magic into focused modules
...
Split the monolithic parseTaskText.ts into a parseTaskText/ directory with
separate files for types, prefixes, prefix parsing, priority parsing, repeat
parsing, date parsing, and text cleanup. Moved parseDate.ts from helpers/time/
into the module since it's only consumed by the task text parser. Barrel export
in index.ts maintains backward compatibility — no consumer import changes needed.
https://claude.ai/code/session_01Aeo1ZunQUGKbWx2watMFdW
2026-03-22 20:47:10 +00:00
MidoriKurage
c760a9bf72
fix(caldav): Replace href with pathname from parseURL for api base
...
`parseURL` only return `href` for special protocols. CalDAV api base
will always be root path. Use `pathname` which will not be undefined.
2026-03-22 14:30:38 +00:00
Claude
0085772b63
fix: include kanban bucket move permission in tasks preset
...
The kanban task move endpoint (POST /projects/:project/views/:view/
buckets/:bucket/tasks) is registered under the projects group as
views_buckets_tasks. Without this permission, the tasks preset cannot
move tasks between kanban buckets.
https://claude.ai/code/session_01QDWqXJmjriYoAcvMD43vmx
2026-03-22 14:24:23 +00:00
Claude
652eb9bba3
fix: remove small class from preset label
...
https://claude.ai/code/session_01QDWqXJmjriYoAcvMD43vmx
2026-03-22 14:24:23 +00:00
Claude
68097cf700
feat: add quick presets for API token permission selection
...
Add preset buttons (Read Only, Task Management, Project Management, Full
Access) to the API token creation form so users don't have to manually
select every individual permission.
https://claude.ai/code/session_01QDWqXJmjriYoAcvMD43vmx
2026-03-22 14:24:23 +00:00
renovate[bot]
79f807f4c2
chore(deps): update dependency rollup to v4.60.0
2026-03-22 14:23:41 +00:00
Frederick [Bot]
1b246a0ff7
chore(i18n): update translations via Crowdin
2026-03-21 01:09:32 +00:00
kolaente
b365be1881
chore: v2.2.0 release preparations
2026-03-20 13:40:18 +01:00
kolaente
c81b0eb463
fix(attachments): sync kanban store and task ref on attachment changes
...
When attachments are uploaded (either via file picker or pasting into
the description editor), update both the local task ref and the kanban
store so that the attachment list and kanban card icons stay in sync.
2026-03-20 10:38:47 +01:00
kolaente
ade91c92db
refactor(attachments): remove global attachment store
...
The attachment store was a global singleton shared between concurrent
TaskDetailView instances, causing a race condition when navigating
between tasks via related tasks from the Kanban view. Attachments
now live on the task ref like every other task field.
2026-03-20 10:38:47 +01:00
kolaente
2675bcb56c
refactor(attachments): use local state instead of global attachment store
...
TaskDetailView now computes hasAttachments from the task ref and
handles the update:attachments emit from the Attachments component.
2026-03-20 10:38:47 +01:00
kolaente
eaec206301
refactor(attachments): return uploaded attachments instead of writing to store
...
uploadFiles now returns the array of uploaded IAttachment objects
so callers can handle state updates themselves.
2026-03-20 10:38:47 +01:00
kolaente
5dbc906d47
refactor(attachments): read from task prop instead of global store
...
The Attachments component now reads attachments from its task prop
and emits update:attachments events instead of using the global
attachment store singleton.
2026-03-20 10:38:47 +01:00
renovate[bot]
9c3fa8e91b
chore(deps): update dependency stylelint to v17.5.0
2026-03-20 10:17:24 +01:00
Frederick [Bot]
de1d5d1241
chore(i18n): update translations via Crowdin
2026-03-20 01:14:18 +00:00
kolaente
3bc0093686
fix: invalidate all sessions when enabling TOTP
...
When a user enables two factor authentication, all existing sessions are
now invalidated, requiring re-authentication. This prevents pre-existing
sessions from bypassing 2FA. The frontend now shows a notice explaining
the logout before the user confirms, and properly logs out after enabling.
Ref: GHSA-pgc7-cmvg-mvp4
2026-03-19 12:27:44 +01:00
Weijie Zhao
7b6b432301
fix: collapse view buttons into dropdown when overflowing ( #2306 )
2026-03-19 00:09:29 +01:00
renovate[bot]
aed93b9389
chore(deps): update dev-dependencies to v4.2.2
2026-03-18 17:57:57 +01:00
kolaente
50eb68fb2b
fix(menu): show all project menu items in sidebar dropdown
...
The `simple` prop was introduced to hide some menu items (Views, Set
Background, Archive) in the sidebar to prevent overflow. Since the
Dropdown component now uses @floating-ui/dom with autoPlacement and
shift middleware, overflow is handled automatically, making the prop
unnecessary.
2026-03-17 19:19:36 +01:00
renovate[bot]
650ceabd3c
chore(deps): update dependency vue-tsc to v3.2.6
2026-03-17 19:01:11 +01:00
renovate[bot]
176588bf1d
chore(deps): update dev-dependencies
2026-03-17 10:12:15 +01:00
kolaente
e20af6df40
fix(deps): override flatted to 3.4.1 to fix unbounded recursion DoS
...
Adds pnpm override for flatted to resolve GHSA-25h7-pfq9-p65f.
2026-03-17 09:52:49 +01:00
renovate[bot]
88a011aadc
chore(deps): update dependency caniuse-lite to v1.0.30001779
2026-03-16 08:59:31 +01:00
renovate[bot]
9bcdbb6433
chore(deps): update dev-dependencies ( #2395 )
...
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/ ) |
[Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|
|
[@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 ))
| [`6.0.4` →
`6.0.5`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue/6.0.4/6.0.5 )
|

|

|
| [caniuse-lite](https://redirect.github.com/browserslist/caniuse-lite )
| [`1.0.30001777` →
`1.0.30001778`](https://renovatebot.com/diffs/npm/caniuse-lite/1.0.30001777/1.0.30001778 )
|

|

|
| [electron](https://redirect.github.com/electron/electron ) | [`40.8.0`
→ `40.8.2`](https://renovatebot.com/diffs/npm/electron/40.8.0/40.8.2 ) |

|

|
| [esbuild](https://redirect.github.com/evanw/esbuild ) | [`0.27.3` →
`0.27.4`](https://renovatebot.com/diffs/npm/esbuild/0.27.3/0.27.4 ) |

|

|
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom ) |
[`20.8.3` →
`20.8.4`](https://renovatebot.com/diffs/npm/happy-dom/20.8.3/20.8.4 ) |

|

|
| [vite-plugin-vue-devtools](https://redirect.github.com/vuejs/devtools )
([source](https://redirect.github.com/vuejs/devtools/tree/HEAD/packages/vite ))
| [`8.0.7` →
`8.1.0`](https://renovatebot.com/diffs/npm/vite-plugin-vue-devtools/8.0.7/8.1.0 )
|

|

|
| [vitest](https://vitest.dev )
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest ))
| [`4.0.18` →
`4.1.0`](https://renovatebot.com/diffs/npm/vitest/4.0.18/4.1.0 ) |

|

|
---
### Release Notes
<details>
<summary>vitejs/vite-plugin-vue (@​vitejs/plugin-vue)</summary>
###
[`v6.0.5`](https://redirect.github.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#small-605-2026-03-12-small )
##### Miscellaneous Chores
- remove Vite 8 beta from supported range
([#​746](https://redirect.github.com/vitejs/vite-plugin-vue/issues/746 ))
([b3f23e4](b3f23e4d08 ))
</details>
<details>
<summary>browserslist/caniuse-lite (caniuse-lite)</summary>
###
[`v1.0.30001778`](https://redirect.github.com/browserslist/caniuse-lite/compare/1.0.30001777...1.0.30001778 )
[Compare
Source](https://redirect.github.com/browserslist/caniuse-lite/compare/1.0.30001777...1.0.30001778 )
</details>
<details>
<summary>electron/electron (electron)</summary>
###
[`v40.8.2`](https://redirect.github.com/electron/electron/releases/tag/v40.8.2 ):
electron v40.8.2
[Compare
Source](https://redirect.github.com/electron/electron/compare/v40.8.1...v40.8.2 )
### Release Notes for v40.8.2
#### Other Changes
- Backported fix for b/491421267.
[#​50229](https://redirect.github.com/electron/electron/pull/50229 )
- Fixed an issue where running app icons were not correctly retrieved on
macOS Tahoe.
[#​50188](https://redirect.github.com/electron/electron/pull/50188 )
###
[`v40.8.1`](https://redirect.github.com/electron/electron/releases/tag/v40.8.1 ):
electron v40.8.1
[Compare
Source](https://redirect.github.com/electron/electron/compare/v40.8.0...v40.8.1 )
### Release Notes for v40.8.1
#### Fixes
- Added validation to protocol client methods to reject protocol names
that do not conform to the RFC 3986 URI scheme grammar.
[#​50158](https://redirect.github.com/electron/electron/pull/50158 )
<sup>(Also in
[38](https://redirect.github.com/electron/electron/pull/50157 ),
[39](https://redirect.github.com/electron/electron/pull/50156 ),
[41](https://redirect.github.com/electron/electron/pull/50155 ))</sup>
- Fixed an issue on macOS where calling `autoUpdater.quitAndInstall()`
could fail if `checkForUpdates()` was called again after an update was
already downloaded.
[#​50216](https://redirect.github.com/electron/electron/pull/50216 )
<sup>(Also in
[39](https://redirect.github.com/electron/electron/pull/50215 ),
[41](https://redirect.github.com/electron/electron/pull/50217 ))</sup>
- Fixed an issue where Chrome Devtools menus may not appear in certain
embedded windows.
[#​50138](https://redirect.github.com/electron/electron/pull/50138 )
<sup>(Also in
[39](https://redirect.github.com/electron/electron/pull/50136 ),
[41](https://redirect.github.com/electron/electron/pull/50137 ))</sup>
- Fixed an issue where `additionalData` passed to
`app.requestSingleInstanceLock` on Windows could be truncated or fail to
deserialize in the primary instance's `second-instance` event.
[#​50162](https://redirect.github.com/electron/electron/pull/50162 )
<sup>(Also in
[38](https://redirect.github.com/electron/electron/pull/50177 ),
[39](https://redirect.github.com/electron/electron/pull/50174 ),
[41](https://redirect.github.com/electron/electron/pull/50154 ))</sup>
- Fixed an issue where `screen.getCursorScreenPoint()` crashed on
Wayland when it was called before a `BrowserWindow` had been created.
[#​50104](https://redirect.github.com/electron/electron/pull/50104 )
<sup>(Also in
[39](https://redirect.github.com/electron/electron/pull/50106 ),
[41](https://redirect.github.com/electron/electron/pull/50105 ))</sup>
- Fixed an issue where calling `setBounds` on a `WebContentsView` could
trigger redundant `page-favicon-updated` events even when the favicon
had not changed.
[#​50084](https://redirect.github.com/electron/electron/pull/50084 )
<sup>(Also in
[39](https://redirect.github.com/electron/electron/pull/50086 ),
[41](https://redirect.github.com/electron/electron/pull/50085 ))</sup>
- Fixed an issue where invalid characters in custom protocol or
webRequest response header values were not rejected.
[#​50131](https://redirect.github.com/electron/electron/pull/50131 )
<sup>(Also in
[38](https://redirect.github.com/electron/electron/pull/50130 ),
[39](https://redirect.github.com/electron/electron/pull/50129 ),
[41](https://redirect.github.com/electron/electron/pull/50132 ))</sup>
- Fixed an issue where permission and device-chooser handlers received
the top-level page origin instead of the requesting subframe's origin.
[#​50149](https://redirect.github.com/electron/electron/pull/50149 )
<sup>(Also in
[38](https://redirect.github.com/electron/electron/pull/50151 ),
[39](https://redirect.github.com/electron/electron/pull/50147 ),
[41](https://redirect.github.com/electron/electron/pull/50148 ))</sup>
- Fixed an issue where traffic light buttons would flash at position
(0,0) when restoring a window with a custom `trafficLightPosition` from
minimization on macOS.
[#​50207](https://redirect.github.com/electron/electron/pull/50207 )
<sup>(Also in
[39](https://redirect.github.com/electron/electron/pull/50208 ),
[41](https://redirect.github.com/electron/electron/pull/50209 ))</sup>
- Fixed bug where opening a message box immediately upon closing a child
window may cause the parent window to freeze on Windows.
[#​50189](https://redirect.github.com/electron/electron/pull/50189 )
<sup>(Also in
[39](https://redirect.github.com/electron/electron/pull/50190 ),
[41](https://redirect.github.com/electron/electron/pull/50191 ))</sup>
- Reverted AltGr key fix that caused menu bar to no longer show on
Windows.
[#​50110](https://redirect.github.com/electron/electron/pull/50110 )
<sup>(Also in
[39](https://redirect.github.com/electron/electron/pull/50109 ),
[41](https://redirect.github.com/electron/electron/pull/50111 ))</sup>
#### Other Changes
- Backported fix for chromium:485622239.
[#​50168](https://redirect.github.com/electron/electron/pull/50168 )
</details>
<details>
<summary>evanw/esbuild (esbuild)</summary>
###
[`v0.27.4`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0274 )
[Compare
Source](https://redirect.github.com/evanw/esbuild/compare/v0.27.3...v0.27.4 )
- Fix a regression with CSS media queries
([#​4395](https://redirect.github.com/evanw/esbuild/issues/4395 ),
[#​4405](https://redirect.github.com/evanw/esbuild/issues/4405 ),
[#​4406](https://redirect.github.com/evanw/esbuild/issues/4406 ))
Version 0.25.11 of esbuild introduced support for parsing media queries.
This unintentionally introduced a regression with printing media queries
that use the `<media-type> and <media-condition-without-or>` grammar.
Specifically, esbuild was failing to wrap an `or` clause with
parentheses when inside `<media-condition-without-or>`. This release
fixes the regression.
Here is an example:
```css
/* Original code */
@​media only screen and ((min-width: 10px) or (min-height: 10px))
{
a { color: red }
}
/* Old output (incorrect) */
@​media only screen and (min-width: 10px) or (min-height: 10px) {
a {
color: red;
}
}
/* New output (correct) */
@​media only screen and ((min-width: 10px) or (min-height: 10px))
{
a {
color: red;
}
}
```
- Fix an edge case with the `inject` feature
([#​4407](https://redirect.github.com/evanw/esbuild/issues/4407 ))
This release fixes an edge case where esbuild's `inject` feature could
not be used with arbitrary module namespace names exported using an
`export {} from` statement with bundling disabled and a target
environment where arbitrary module namespace names is unsupported.
With the fix, the following `inject` file:
```js
import jquery from 'jquery';
export { jquery as 'window.jQuery' };
```
Can now always be rewritten as this without esbuild sometimes
incorrectly generating an error:
```js
export { default as 'window.jQuery' } from 'jquery';
```
- Attempt to improve API handling of huge metafiles
([#​4329](https://redirect.github.com/evanw/esbuild/issues/4329 ),
[#​4415](https://redirect.github.com/evanw/esbuild/issues/4415 ))
This release contains a few changes that attempt to improve the behavior
of esbuild's JavaScript API with huge metafiles (esbuild's name for the
build metadata, formatted as a JSON object). The JavaScript API is
designed to return the metafile JSON as a JavaScript object in memory,
which makes it easy to access from within a JavaScript-based plugin.
Multiple people have encountered issues where this API breaks down with
a pathologically-large metafile.
The primary issue is that V8 has an implementation-specific maximum
string length, so using the `JSON.parse` API with large enough strings
is impossible. This release will now attempt to use a fallback
JavaScript-based JSON parser that operates directly on the UTF8-encoded
JSON bytes instead of using `JSON.parse` when the JSON metafile is too
big to fit in a JavaScript string. The new fallback path has not yet
been heavily-tested. The metafile will also now be generated with
whitespace removed if the bundle is significantly large, which will
reduce the size of the metafile JSON slightly.
However, hitting this case is potentially a sign that something else is
wrong. Ideally you wouldn't be building something so enormous that the
build metadata can't even fit inside a JavaScript string. You may want
to consider optimizing your project, or breaking up your project into
multiple parts that are built independently. Another option could
potentially be to use esbuild's command-line API instead of its
JavaScript API, which is more efficient (although of course then you
can't use JavaScript plugins, so it may not be an option).
</details>
<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>
###
[`v20.8.4`](https://redirect.github.com/capricorn86/happy-dom/compare/v20.8.3...82a0888cb2c87a6123e05424b528f8e8c9b3e426 )
[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v20.8.3...v20.8.4 )
</details>
<details>
<summary>vuejs/devtools (vite-plugin-vue-devtools)</summary>
###
[`v8.1.0`](https://redirect.github.com/vuejs/devtools/releases/tag/v8.1.0 )
[Compare
Source](https://redirect.github.com/vuejs/devtools/compare/v8.0.7...v8.1.0 )
*No significant changes*
##### [View changes on
GitHub](https://redirect.github.com/vuejs/devtools/compare/v8.0.8...v8.1.0 )
</details>
<details>
<summary>vitest-dev/vitest (vitest)</summary>
###
[`v4.1.0`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.1.0 )
[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.0.18...v4.1.0 )
Vitest 4.1 is out!
This release page lists all changes made to the project during the 4.1
beta. To get a review of all the new features, read our [blog
post](https://vitest.dev/blog/vitest-4 ).
##### 🚀 Features
- Return a disposable from doMock() - by
[@​kirkwaiblinger](https://redirect.github.com/kirkwaiblinger ) in
[#​9332](https://redirect.github.com/vitest-dev/vitest/issues/9332 )
[<samp>(e3e65)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e3e659a96 )
- Added chai style assertions - by
[@​ronnakamoto](https://redirect.github.com/ronnakamoto ) and
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​8842](https://redirect.github.com/vitest-dev/vitest/issues/8842 )
[<samp>(841df)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/841df9ac5 )
- Update to sinon/fake-timers v15 and add `setTickMode` to timer
controls - by [@​atscott](https://redirect.github.com/atscott )
and [@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​8726](https://redirect.github.com/vitest-dev/vitest/issues/8726 )
[<samp>(4b480)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4b480aaed )
- Expose matcher types - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9448](https://redirect.github.com/vitest-dev/vitest/issues/9448 )
[<samp>(3e4b9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3e4b913b1 )
- Add `toTestSpecification` to reported tasks - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9464](https://redirect.github.com/vitest-dev/vitest/issues/9464 )
[<samp>(1a470)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1a4705da9 )
- Show a warning if `vi.mock` or `vi.hoisted` are declared outside of
top level of the module - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9387](https://redirect.github.com/vitest-dev/vitest/issues/9387 )
[<samp>(5db54)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5db54a468 )
- Track and display expectedly failed tests (.fails) in UI and CLI -
by [@​Copilot](https://redirect.github.com/Copilot ),
**sheremet-va** and
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9476](https://redirect.github.com/vitest-dev/vitest/issues/9476 )
[<samp>(77d75)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/77d75fd34 )
- Support tags - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9478](https://redirect.github.com/vitest-dev/vitest/issues/9478 )
[<samp>(de7c8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/de7c8a521 )
- Implement `aroundEach` and `aroundAll` hooks - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9450](https://redirect.github.com/vitest-dev/vitest/issues/9450 )
[<samp>(2a8cb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2a8cb9dc2 )
- Stabilize experimental features - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9529](https://redirect.github.com/vitest-dev/vitest/issues/9529 )
[<samp>(b5fd2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b5fd2a16a )
- Accept `new` or `all` in `--update` flag - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9543](https://redirect.github.com/vitest-dev/vitest/issues/9543 )
[<samp>(a5acf)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a5acf28a5 )
- Support `meta` in test options - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9535](https://redirect.github.com/vitest-dev/vitest/issues/9535 )
[<samp>(7d622)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7d622e3d1 )
- Support type inference with a new `test.extend` syntax - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9550](https://redirect.github.com/vitest-dev/vitest/issues/9550 )
[<samp>(e5385)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e53854fcc )
- Support vite 8 beta, fix type issues in the config with different vite
versions - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9587](https://redirect.github.com/vitest-dev/vitest/issues/9587 )
[<samp>(99028)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/990281dfd )
- Add assertion helper to hide internal stack traces - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and **Claude
Opus 4.6** in
[#​9594](https://redirect.github.com/vitest-dev/vitest/issues/9594 )
[<samp>(eeb0a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/eeb0ae2f8 )
- Store failure screenshots using artifacts API - by
[@​macarie](https://redirect.github.com/macarie ) in
[#​9588](https://redirect.github.com/vitest-dev/vitest/issues/9588 )
[<samp>(24603)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/24603e3c4 )
- Allow `vitest list` to statically collect tests instead of running
files to collect them - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9630](https://redirect.github.com/vitest-dev/vitest/issues/9630 )
[<samp>(7a8e7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7a8e7fc20 )
- Add `--detect-async-leaks` - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in
[#​9528](https://redirect.github.com/vitest-dev/vitest/issues/9528 )
[<samp>(c594d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c594d4af3 )
- Implement `mockThrow` and `mockThrowOnce` - by
[@​thor-juhasz](https://redirect.github.com/thor-juhasz ) and
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9512](https://redirect.github.com/vitest-dev/vitest/issues/9512 )
[<samp>(61917)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/619179fb7 )
- Support `update: "none"` and add docs about snapshots behavior on CI
- by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9700](https://redirect.github.com/vitest-dev/vitest/issues/9700 )
[<samp>(05f18)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/05f1854e2 )
- Support playwright `launchOptions` with `connectOptions` - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9702](https://redirect.github.com/vitest-dev/vitest/issues/9702 )
[<samp>(f0ff1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f0ff1b2a0 )
- Add `page/locator.mark` API to enhance playwright trace - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9652](https://redirect.github.com/vitest-dev/vitest/issues/9652 )
[<samp>(d0ee5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d0ee546fe )
- **api**:
- Support tests starting or ending with `test` in
`experimental_parseSpecification` - by
[@​jgillick](https://redirect.github.com/jgillick ) and **Jeremy
Gillick** in
[#​9235](https://redirect.github.com/vitest-dev/vitest/issues/9235 )
[<samp>(2f367)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2f367fad3 )
- Add filters to `createSpecification` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9336](https://redirect.github.com/vitest-dev/vitest/issues/9336 )
[<samp>(c8e6c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c8e6c7fbf )
- Expose `runTestFiles` as alternative to `runTestSpecifications` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9443](https://redirect.github.com/vitest-dev/vitest/issues/9443 )
[<samp>(43d76)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/43d761821 )
- Add `allowWrite` and `allowExec` options to `api` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9350](https://redirect.github.com/vitest-dev/vitest/issues/9350 )
[<samp>(20e00)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/20e00ef78 )
- Allow passing down test cases to `toTestSpecification` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9627](https://redirect.github.com/vitest-dev/vitest/issues/9627 )
[<samp>(6f17d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6f17d5ddf )
- **browser**:
- Add `userEvent.wheel` API - by
[@​macarie](https://redirect.github.com/macarie ) in
[#​9188](https://redirect.github.com/vitest-dev/vitest/issues/9188 )
[<samp>(66080)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/660801979 )
- Add `filterNode` option to prettyDOM for filtering browser assertion
error output - by
[@​Copilot](https://redirect.github.com/Copilot ), **sheremet-va**
and [@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9475](https://redirect.github.com/vitest-dev/vitest/issues/9475 )
[<samp>(d3220)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d3220fcd8 )
- Support playwright persistent context - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ), **Claude Opus
4.6** and [@​sheremet-va](https://redirect.github.com/sheremet-va )
in
[#​9229](https://redirect.github.com/vitest-dev/vitest/issues/9229 )
[<samp>(f865d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f865d2ba4 )
- Added `detailsPanelPosition` option and button - by
[@​shairez](https://redirect.github.com/shairez ) in
[#​9525](https://redirect.github.com/vitest-dev/vitest/issues/9525 )
[<samp>(c8a31)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c8a31147c )
- Use BlazeDiff instead of pixelmatch - by
[@​macarie](https://redirect.github.com/macarie ) in
[#​9514](https://redirect.github.com/vitest-dev/vitest/issues/9514 )
[<samp>(30936)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/309362089 )
- Add `findElement` and enable strict mode in webdriverio and preview
- by [@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9677](https://redirect.github.com/vitest-dev/vitest/issues/9677 )
[<samp>(c3f37)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c3f37721c )
- **cli**:
- Add [@​bomb](https://redirect.github.com/bomb ).sh/tab
completions - by
[@​AmirSa12](https://redirect.github.com/AmirSa12 ) and
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​8639](https://redirect.github.com/vitest-dev/vitest/issues/8639 )
[<samp>(200f3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/200f31704 )
- **coverage**:
- Support `ignore start/stop` ignore hints - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in
[#​9204](https://redirect.github.com/vitest-dev/vitest/issues/9204 )
[<samp>(e59c9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e59c94ba6 )
- Add `coverage.changed` option to report only changed files - by
[@​kykim00](https://redirect.github.com/kykim00 ) and
[@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in
[#​9521](https://redirect.github.com/vitest-dev/vitest/issues/9521 )
[<samp>(1d939)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1d9392c67 )
- **experimental**:
- Add `onModuleRunner` hook to `worker.init` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9286](https://redirect.github.com/vitest-dev/vitest/issues/9286 )
[<samp>(e977f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e977f3deb )
- Option to disable the module runner - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) and
[@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in
[#​9210](https://redirect.github.com/vitest-dev/vitest/issues/9210 )
[<samp>(9be61)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9be6121ee )
- Add `importDurations: { limit, print }` options - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ), **Claude Opus
4.6** and [@​sheremet-va](https://redirect.github.com/sheremet-va )
in
[#​9401](https://redirect.github.com/vitest-dev/vitest/issues/9401 )
[<samp>(7e10f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7e10fb356 )
- Add print and fail thresholds for `importDurations` - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and **Claude
Opus 4.6** in
[#​9533](https://redirect.github.com/vitest-dev/vitest/issues/9533 )
[<samp>(3f7a5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3f7a5f8f8 )
- **fixtures**:
- Pass down file context to `beforeAll`/`afterAll` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9572](https://redirect.github.com/vitest-dev/vitest/issues/9572 )
[<samp>(c8339)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c83395f2c )
- **reporters**:
- Add `agent` reporter to reduce ai agent token usage - by
[@​cpojer](https://redirect.github.com/cpojer ) in
[#​9779](https://redirect.github.com/vitest-dev/vitest/issues/9779 )
[<samp>(3e9e0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3e9e096a2 )
- **runner**:
- Enhance `retry` options - by
[@​MazenSamehR](https://redirect.github.com/MazenSamehR ), **Matan
Shavit**, [@​AriPerkkio](https://redirect.github.com/AriPerkkio )
and [@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9370](https://redirect.github.com/vitest-dev/vitest/issues/9370 )
[<samp>(9e4cf)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9e4cfd295 )
- **ui**:
- Allow run individual test/suites - by
[@​userquin](https://redirect.github.com/userquin ) in
[#​9465](https://redirect.github.com/vitest-dev/vitest/issues/9465 )
[<samp>(73b10)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/73b10f1b9 )
- Add project filter/sort support - by
[@​userquin](https://redirect.github.com/userquin ) in
[#​8689](https://redirect.github.com/vitest-dev/vitest/issues/8689 )
[<samp>(0c7ea)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0c7eaac16 )
- Add duration sorting to explorer - by
[@​julianhahn](https://redirect.github.com/julianhahn ) and
[@​cursoragent](https://redirect.github.com/cursoragent ) in
[#​9603](https://redirect.github.com/vitest-dev/vitest/issues/9603 )
[<samp>(209b1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/209b1b0e1 )
- Implement filter for slow tests - by
[@​DerYeger](https://redirect.github.com/DerYeger ) and
[@​userquin](https://redirect.github.com/userquin ) in
[#​9705](https://redirect.github.com/vitest-dev/vitest/issues/9705 )
[<samp>(8880c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8880c907a )
- **vitest**:
- Add run summary in GitHub Actions Reporter - by
[@​macarie](https://redirect.github.com/macarie ) and **jhnance**
in
[#​9579](https://redirect.github.com/vitest-dev/vitest/issues/9579 )
[<samp>(96bfc)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/96bfc8345 )
##### 🐞 Bug Fixes
- Deprecate several vitest/\* entry points - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9347](https://redirect.github.com/vitest-dev/vitest/issues/9347 )
[<samp>(fd459)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fd45928be )
- Use `meta.url` in `createRequire` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9441](https://redirect.github.com/vitest-dev/vitest/issues/9441 )
[<samp>(e3422)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e34225563 )
- Preact browser mode init example of render function not async - by
[@​WuMingDao](https://redirect.github.com/WuMingDao ) in
[#​9375](https://redirect.github.com/vitest-dev/vitest/issues/9375 )
[<samp>(2bea5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2bea549c7 )
- Deprecate unused types in matcher context - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9449](https://redirect.github.com/vitest-dev/vitest/issues/9449 )
[<samp>(20f87)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/20f8753a2 )
- Handle `external/noExternal` during `configEnvironment` hook - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and **Claude
Opus 4.6** in
[#​9508](https://redirect.github.com/vitest-dev/vitest/issues/9508 )
[<samp>(59ea2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/59ea27c1c )
- Replace default ssr environment runner with Vitest server module
runner - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa )
and **Claude Opus 4.6** in
[#​9506](https://redirect.github.com/vitest-dev/vitest/issues/9506 )
[<samp>(cd5db)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/cd5db660c )
- Propagate experimental CLI options to child projects - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and **Claude
Opus 4.6** in
[#​9531](https://redirect.github.com/vitest-dev/vitest/issues/9531 )
[<samp>(b624f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b624fae53 )
- Show a warning when `browser.isolate` is used - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9410](https://redirect.github.com/vitest-dev/vitest/issues/9410 )
[<samp>(3d48e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3d48ebcb9 )
- Fix `vi.mock({ spy: true })` node v8 coverage - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ), **hi-ogawa**
and **Claude Opus 4.6** in
[#​9541](https://redirect.github.com/vitest-dev/vitest/issues/9541 )
[<samp>(687b6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/687b633c1 )
- Don't show internal ssr handler in errors - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9547](https://redirect.github.com/vitest-dev/vitest/issues/9547 )
[<samp>(76c43)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/76c4397b5 )
- Close vitest if it failed to start - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9573](https://redirect.github.com/vitest-dev/vitest/issues/9573 )
[<samp>(728ba)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/728ba617f )
- Fix ssr environment runner in project - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9584](https://redirect.github.com/vitest-dev/vitest/issues/9584 )
[<samp>(09006)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/090064f97 )
- Trim trailing white spaces in code block - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9591](https://redirect.github.com/vitest-dev/vitest/issues/9591 )
[<samp>(f78be)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f78bea992 )
- Support inline snapshot inside test.for/each - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9590](https://redirect.github.com/vitest-dev/vitest/issues/9590 )
[<samp>(615fd)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/615fd521e )
- Apply source maps for external module stack trace - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9152](https://redirect.github.com/vitest-dev/vitest/issues/9152 )
[<samp>(79e20)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/79e20d5a3 )
- Remove the `.name` from statically collected test - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9596](https://redirect.github.com/vitest-dev/vitest/issues/9596 )
[<samp>(b66ff)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b66ff691a )
- Don't suppress warnings on pnp - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9602](https://redirect.github.com/vitest-dev/vitest/issues/9602 )
[<samp>(89cbd)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/89cbdaea3 )
- Support snapshot with `expect.soft` - by
[@​iumehara](https://redirect.github.com/iumehara ),
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and **Claude
Opus 4.6** in
[#​9231](https://redirect.github.com/vitest-dev/vitest/issues/9231 )
[<samp>(3eb2c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3eb2cd541 )
- Log seed when only `sequence.shuffle.tests` is enabled - by
[@​kaigritun](https://redirect.github.com/kaigritun ), **Kai
Gritun** and
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9576](https://redirect.github.com/vitest-dev/vitest/issues/9576 )
[<samp>(8182b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8182b77ad )
- Externalize `expect/src/utils` from `vitest` - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9616](https://redirect.github.com/vitest-dev/vitest/issues/9616 )
[<samp>(48739)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/487398422 )
- Ignore test.override during static collection - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9620](https://redirect.github.com/vitest-dev/vitest/issues/9620 )
[<samp>(09174)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0917470ce )
- Increase stacktrace limit for `--detect-async-leaks` - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in
[#​9638](https://redirect.github.com/vitest-dev/vitest/issues/9638 )
[<samp>(9fd4c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9fd4ce533 )
- Hanging-reporter link in cli - by
[@​flx-sta](https://redirect.github.com/flx-sta ) in
[#​9649](https://redirect.github.com/vitest-dev/vitest/issues/9649 )
[<samp>(7c103)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7c103055c )
- Fix teardown timeout of `aroundEach/All` when inner `aroundEach/All`
throws - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa )
in
[#​9657](https://redirect.github.com/vitest-dev/vitest/issues/9657 )
[<samp>(4ec6c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4ec6cb305 )
- Fix ui mode / html reporter and coverage integration - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and **Claude
Opus 4.6** in
[#​9626](https://redirect.github.com/vitest-dev/vitest/issues/9626 )
[<samp>(86fad)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/86fad4b42 )
- Don't continue when `aroundEach/All` setup timed out - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9670](https://redirect.github.com/vitest-dev/vitest/issues/9670 )
[<samp>(bb013)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bb013d54b )
- Align `VitestRunnerConfig` optional fields with `SerializedConfig` -
by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9661](https://redirect.github.com/vitest-dev/vitest/issues/9661 )
[<samp>(79520)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/79520d82d )
- Handle Symbol values in format utility - by
[@​nami8824](https://redirect.github.com/nami8824 ) in
[#​9658](https://redirect.github.com/vitest-dev/vitest/issues/9658 )
[<samp>(0583f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0583f067e )
- Deprecate `toBe*` spy assertions in favor of `toHaveBeen*` (and
`toThrowError`) - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9665](https://redirect.github.com/vitest-dev/vitest/issues/9665 )
[<samp>(4d390)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4d390dfe9 )
- Don't propagate nested `aroundEach/All` errors but aggregate them on
runner - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa )
in
[#​9673](https://redirect.github.com/vitest-dev/vitest/issues/9673 )
[<samp>(b6365)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b63653f5a )
- Show a better error if there is a pending dynamic import - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9676](https://redirect.github.com/vitest-dev/vitest/issues/9676 )
[<samp>(7ef5c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7ef5cf4b7 )
- Preserve stack trace of `resolves/rejects` chained assertion error -
by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9679](https://redirect.github.com/vitest-dev/vitest/issues/9679 )
[<samp>(c6151)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c61511d4a )
- Handle module-sync condition in vmThreads/vmForks require - by
[@​lesleh](https://redirect.github.com/lesleh ) in
[#​9650](https://redirect.github.com/vitest-dev/vitest/issues/9650 )
and
[#​9651](https://redirect.github.com/vitest-dev/vitest/issues/9651 )
[<samp>(bb203)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bb20389f4 )
- Hooks should respect `maxConcurrency` - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9653](https://redirect.github.com/vitest-dev/vitest/issues/9653 )
[<samp>(16d13)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/16d13d981 )
- Recursively autospy module object - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9687](https://redirect.github.com/vitest-dev/vitest/issues/9687 )
[<samp>(695a8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/695a86b41 )
- Remove trailing spaces from diff error log - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9680](https://redirect.github.com/vitest-dev/vitest/issues/9680 )
[<samp>(395d1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/395d1a29e )
- Respect project `resolve.conditions` for externals - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9717](https://redirect.github.com/vitest-dev/vitest/issues/9717 )
[<samp>(1d498)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1d4987498 )
- Use object for WeakMap instead of a symbol to support webcontainers
- by [@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9731](https://redirect.github.com/vitest-dev/vitest/issues/9731 )
[<samp>(c5225)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c52259330 )
- Fix re-mocking virtual module - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9748](https://redirect.github.com/vitest-dev/vitest/issues/9748 )
[<samp>(3cbbb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3cbbb17f1 )
- Cancelling should stop current test immediately - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in
[#​9729](https://redirect.github.com/vitest-dev/vitest/issues/9729 )
[<samp>(0cb2f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0cb2f7239 )
- Make `mockObject` change backwards compatible - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9744](https://redirect.github.com/vitest-dev/vitest/issues/9744 )
[<samp>(84c69)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/84c69497f )
- Fix `URL.name` on jsdom - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9767](https://redirect.github.com/vitest-dev/vitest/issues/9767 )
[<samp>(031f3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/031f3a374 )
- Save and restore module graph in blob reporter - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9740](https://redirect.github.com/vitest-dev/vitest/issues/9740 )
[<samp>(84355)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/843554bf0 )
- Don't silence reporter errors from test runtime events handler in
normal run and --merge-reports - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9727](https://redirect.github.com/vitest-dev/vitest/issues/9727 )
[<samp>(4072d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4072d0132 )
- Fix `vi.importActual()` for virtual modules - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and **Claude
Opus 4.6** in
[#​9772](https://redirect.github.com/vitest-dev/vitest/issues/9772 )
[<samp>(1e89e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1e89ec020 )
- Throw `FixtureAccessError` if suite hook accesses undefined fixture
- by [@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9786](https://redirect.github.com/vitest-dev/vitest/issues/9786 )
[<samp>(fc2ce)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fc2cea2b7 )
- Allow hyphens in project config file name pattern - by
[@​Koutaro-Hanabusa](https://redirect.github.com/Koutaro-Hanabusa )
and [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9760](https://redirect.github.com/vitest-dev/vitest/issues/9760 )
[<samp>(33e96)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/33e96311a )
- Manual and redirect mock shouldn't `load` or `transform` original
module - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa )
and **Claude Opus 4.6** in
[#​9774](https://redirect.github.com/vitest-dev/vitest/issues/9774 )
[<samp>(a8216)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a8216b001 )
- `hideSkippedTests` should not hide `test.todo` - by
[@​oilater](https://redirect.github.com/oilater ) in
[#​9562](https://redirect.github.com/vitest-dev/vitest/issues/9562 )
and
[#​9781](https://redirect.github.com/vitest-dev/vitest/issues/9781 )
[<samp>(8181e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8181e06e7 )
- Allow catch/finally for async assertion - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9827](https://redirect.github.com/vitest-dev/vitest/issues/9827 )
[<samp>(031f0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/031f02a89 )
- Resolve fixture overrides from test's suite in `beforeEach` hooks -
by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and **Claude
Opus 4.6** in
[#​9826](https://redirect.github.com/vitest-dev/vitest/issues/9826 )
[<samp>(99e52)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/99e52fe58 )
- Use isAgent check, not just TTY, for watch mode - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9841](https://redirect.github.com/vitest-dev/vitest/issues/9841 )
[<samp>(c3cac)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c3cac1c1b )
- Use `performance.now` to measure test timeout duration - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and **Claude
Opus 4.6** in
[#​9795](https://redirect.github.com/vitest-dev/vitest/issues/9795 )
[<samp>(f48a6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f48a60114 )
- Correctly identify concurrent test during static analysis - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9846](https://redirect.github.com/vitest-dev/vitest/issues/9846 )
[<samp>(1de0a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1de0aa22d )
- **browser**:
- Avoid updating screenshots when `toMatchScreenshot` passes - by
[@​macarie](https://redirect.github.com/macarie ) in
[#​9289](https://redirect.github.com/vitest-dev/vitest/issues/9289 )
[<samp>(46aab)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/46aabaa44 )
- Hide injected data-testid attributes - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9503](https://redirect.github.com/vitest-dev/vitest/issues/9503 )
[<samp>(c8d2c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c8d2c411c )
- Throw an error if iframe was reloaded - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9516](https://redirect.github.com/vitest-dev/vitest/issues/9516 )
[<samp>(73a81)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/73a81f880 )
- Encode projectName in browser client URL - by
[@​dkkim0122](https://redirect.github.com/dkkim0122 ) in
[#​9523](https://redirect.github.com/vitest-dev/vitest/issues/9523 )
[<samp>(5b164)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5b16483c3 )
- Don't take failure screenshot if tests have artifacts created by
`toMatchScreenshot` - by
[@​macarie](https://redirect.github.com/macarie ) in
[#​9552](https://redirect.github.com/vitest-dev/vitest/issues/9552 )
[<samp>(83ca0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/83ca02547 )
- Remove `--remote-debugging-address` from chrome args - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and
[@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in
[#​9712](https://redirect.github.com/vitest-dev/vitest/issues/9712 )
[<samp>(f09bb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f09bb5c32 )
- Make sure userEvent actions support `ensureAwaited` - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9732](https://redirect.github.com/vitest-dev/vitest/issues/9732 )
[<samp>(97685)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9768517b8 )
- Types of `getCDPSession` and `cdp()` - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in
[#​9716](https://redirect.github.com/vitest-dev/vitest/issues/9716 )
[<samp>(689a2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/689a22a1b )
- Skip esbuild.legalComments when using rolldown-vite - by
[@​Copilot](https://redirect.github.com/Copilot ), **hi-ogawa** and
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9803](https://redirect.github.com/vitest-dev/vitest/issues/9803 )
[<samp>(3505f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3505fa5a3 )
- **chai**:
- Don't allow `deepEqual` in the config because it's not serializable
- by [@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9666](https://redirect.github.com/vitest-dev/vitest/issues/9666 )
[<samp>(9ee99)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9ee999d73 )
- **coverage**:
- Infer transform mode for uncovered files - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in
[#​9435](https://redirect.github.com/vitest-dev/vitest/issues/9435 )
[<samp>(f3967)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f396792d6 )
- `thresholds.autoUpdate` to preserve ending whitespace - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in
[#​9436](https://redirect.github.com/vitest-dev/vitest/issues/9436 )
[<samp>(7e534)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7e534a0b6 )
- **deps**:
- Update all non-major dependencies - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in
[#​9192](https://redirect.github.com/vitest-dev/vitest/issues/9192 )
[<samp>(90c30)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/90c302f3b )
- Update all non-major dependencies - in
[#​9485](https://redirect.github.com/vitest-dev/vitest/issues/9485 )
[<samp>(c0118)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c01186022 )
- Update all non-major dependencies - in
[#​9567](https://redirect.github.com/vitest-dev/vitest/issues/9567 )
[<samp>(13c9e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/13c9e022b )
- **docs**:
- Fix old `/config/#option` hash links causing hydration errors - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ), **Claude Opus
4.6** and [@​sheremet-va](https://redirect.github.com/sheremet-va )
in
[#​9610](https://redirect.github.com/vitest-dev/vitest/issues/9610 )
[<samp>(a603c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a603c3a30 )
- **expect**:
- `toMatchObject(Map/Set)` should expect `Map/Set` on left hand side -
by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and **Claude
Opus 4.6** in
[#​9532](https://redirect.github.com/vitest-dev/vitest/issues/9532 )
[<samp>(381da)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/381da4a9d )
- Fix objectContaining with proxy - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and **Claude
Opus 4.6** in
[#​9554](https://redirect.github.com/vitest-dev/vitest/issues/9554 )
[<samp>(7ce34)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7ce3417b1 )
- Support arbitrary value equality for `toThrow` and make Error
detection robust - by
[@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and **Claude
Opus 4.6** in
[#​9570](https://redirect.github.com/vitest-dev/vitest/issues/9570 )
[<samp>(de215)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/de215c19c )
- **mock**:
- Inject helpers after hashbang if present - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9545](https://redirect.github.com/vitest-dev/vitest/issues/9545 )
[<samp>(65432)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/65432a74b )
- **mocker**:
- Update vite's peer dependency range - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9808](https://redirect.github.com/vitest-dev/vitest/issues/9808 )
[<samp>(36f9a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/36f9a81a2 )
- **reporter**:
- `dot` reporter leaves pending tests - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in
[#​9684](https://redirect.github.com/vitest-dev/vitest/issues/9684 )
[<samp>(4d793)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4d7938a56 )
- **runner**:
- Mark repeated tests as finished on last run - by
[@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in
[#​9707](https://redirect.github.com/vitest-dev/vitest/issues/9707 )
[<samp>(cc735)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/cc735970a )
- **spy**:
- Support deep partial in vi.mocked - by
[@​j2h30728](https://redirect.github.com/j2h30728 ) in
[#​8152](https://redirect.github.com/vitest-dev/vitest/issues/8152 )
and
[#​9493](https://redirect.github.com/vitest-dev/vitest/issues/9493 )
[<samp>(71cb5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/71cb51ffc )
- Fallback to object accessor if descriptor's value is `undefined` -
by [@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9511](https://redirect.github.com/vitest-dev/vitest/issues/9511 )
[<samp>(6f181)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6f18103fa )
- Throw correct errors when shorthand methods are used on a class - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9513](https://redirect.github.com/vitest-dev/vitest/issues/9513 )
[<samp>(5d0fd)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5d0fd3b62 )
- **types**:
- `bench.reporters` no longer gives type errors when passing file name
string paths - by
[@​Bertie690](https://redirect.github.com/Bertie690 ) in
[#​9695](https://redirect.github.com/vitest-dev/vitest/issues/9695 )
[<samp>(093c8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/093c8f6b5 )
- **ui**:
- Process artifact attachments when generating HTML reporter - by
[@​macarie](https://redirect.github.com/macarie ) in
[#​9472](https://redirect.github.com/vitest-dev/vitest/issues/9472 )
[<samp>(96eb9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/96eb92826 )
- Don't fail if --ui and --root are specified together - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9536](https://redirect.github.com/vitest-dev/vitest/issues/9536 )
[<samp>(d9305)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d93055fc7 )
##### 🏎 Performance
- **pretty-format**: Combine DOMElement plugins - by
[@​sheremet-va](https://redirect.github.com/sheremet-va ) in
[#​9581](https://redirect.github.com/vitest-dev/vitest/issues/9581 )
[<samp>(da85a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/da85a3267 )
##### [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.0.17...v4.1.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:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-14 22:49:09 +00:00
Tink
28cc9e0571
fix: prevent authenticated UI flash when server rejects JWT session ( #2387 )
2026-03-11 09:37:46 +01:00
renovate[bot]
c57c884fd4
chore(deps): update dependency sass-embedded to v1.98.0
2026-03-11 08:53:39 +01:00
kolaente
d196af0503
fix: remove debounce from color picker to prevent stale color on save
...
The color picker had a 500ms debounce before propagating the selected
color to the parent component. Since all usages save via an explicit
button click (not automatically), the debounce only caused a race
condition where the model value could be stale when the user clicked
Save within 500ms of picking a color.
Closes go-vikunja/vikunja#2312
2026-03-10 23:26:24 +01:00
Frederick [Bot]
30fccfb058
chore(i18n): update translations via Crowdin
2026-03-10 01:08:39 +00:00
renovate[bot]
271da6a2ec
chore(deps): update dev-dependencies to v8.57.0
2026-03-09 21:06:23 +01:00
kolaente
2e1648ef4c
feat: add user-level webhooks settings page
...
Add a new settings page for managing user-level webhooks. Extract
webhook form into shared WebhookManager component used by both
project and user webhook settings. Add routing, translations,
and navigation entry.
2026-03-08 19:45:53 +01:00
renovate[bot]
52e47c732f
chore(deps): update dependency eslint to v9.39.4
2026-03-08 12:09:25 +01:00
Frederick [Bot]
bc583b2efb
chore(i18n): update translations via Crowdin
2026-03-07 01:09:03 +00:00
renovate[bot]
c49d8e129a
chore(deps): update dev-dependencies
2026-03-06 10:02:55 +01:00
dependabot[bot]
b85ad9c298
chore(deps): bump dompurify from 3.3.1 to 3.3.2 in /frontend
...
Bumps [dompurify](https://github.com/cure53/DOMPurify ) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/cure53/DOMPurify/releases )
- [Commits](https://github.com/cure53/DOMPurify/compare/3.3.1...3.3.2 )
---
updated-dependencies:
- dependency-name: dompurify
dependency-version: 3.3.2
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 10:02:38 +01:00
renovate[bot]
e5701fc0e3
chore(deps): update dev-dependencies
2026-03-06 08:47:55 +01:00
Frederick [Bot]
4b5b7e69cc
chore(i18n): update translations via Crowdin
2026-03-06 01:17:05 +00:00
renovate[bot]
2dd4421fb5
chore(deps): update dependency vite-svg-loader to v5.1.1
2026-03-05 19:43:50 +01:00
Noah Neukam
d7722d0193
fix(menu): prevent dropdown from closing when cursor crosses offset gap ( #2367 )
2026-03-05 12:50:04 +01:00
kolaente
b5d8576c2a
chore(deps): update svgo to 3.3.3
2026-03-05 11:05:32 +01:00
kolaente
5f0f3cc820
chore(deps): update immutable to 5.1.5
2026-03-05 11:05:32 +01:00
Frederick [Bot]
74aec78701
chore(i18n): update translations via Crowdin
2026-03-05 01:13:59 +00:00
kolaente
6c9407c58f
feat: add duplicate button to task detail view
2026-03-04 17:20:26 +01:00
kolaente
2014d50b95
feat: add duplicateTask action to task store
2026-03-04 17:20:26 +01:00
kolaente
52bee379d4
feat: add task duplicate frontend model and service
2026-03-04 17:20:26 +01:00
renovate[bot]
3fad03d40f
chore(deps): update dependency rollup-plugin-visualizer to v6.0.11
2026-03-04 11:03:35 +01:00
kolaente
79ac50b99b
fix(test): update mobile kanban test to use close button instead of back button
...
The back button was removed from modal mode in the previous commit.
On mobile kanban, tasks open as modals, so the test now uses the
close button from the Heading component instead.
2026-03-03 16:04:37 +01:00
Claude
8a4f3a916f
fix: remove duplicate close button on mobile task detail view
...
When viewing a task in modal mode on mobile, both a back button and a close button were displayed, causing confusion. The back button condition `!isModal || isMobile` meant it would show on mobile even in modal mode.
This fix changes the back button to only display when not in modal mode (`!isModal`), ensuring only the close button appears when viewing tasks in a modal on mobile devices.
Also removed the now-unused `isMobile` variable and its import.
2026-03-03 16:04:37 +01:00
Copilot
c6f0d8babe
feat: surface API validation errors to registration form fields ( #1902 )
...
This PR surfaces API validation errors from the registration endpoint
directly onto the corresponding form fields, instead of only showing a
generic "invalid data" message. A new `parseValidationErrors` helper
extracts field names and messages from the API's `invalid_fields` array
(e.g. `["email: email is not a valid email address"]`) and maps them to
the appropriate form fields. The Register component integrates this
parser into its error handling, prioritizing client-side validation but
falling back to server-side field errors when present. Errors are
cleared as the user types.
A follow-up commit addressed PR review feedback: the `ValidationError`
interface is now exported from the parser module and reused in
`Register.vue` (eliminating a duplicate `ApiValidationError` interface),
the type guard was tightened to check specifically for `invalid_fields`
rather than broadly matching any object with a `message` property, the
fallback error message always uses the localized translation key instead
of potentially surfacing raw backend messages, and the
`serverValidationErrors` ref uses `Partial<Record>` to accurately
reflect that keys are optional.
🐰 A parser hops through error fields,
Catching field names as each one yields,
Client and server now both agree,
Validation flows harmoniously free!
Whitespace trimmed, no colon? It hops along,
Register form now validated strong! ✨
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <k@knt.li>
2026-03-03 14:27:24 +01:00
kolaente
da9cb87448
fix(shortcuts): track active sequences explicitly to prevent misfires
...
Replace the global sequenceBuffer (which only tracked key count) with
per-candidate ActiveSequence tracking. This fixes two bugs:
- Sequences with different prefixes could misfire once any sequence
started, since only buffer length was checked, not which sequence
was being matched.
- Single-key shortcuts could fire during an in-progress sequence,
preempting sequence completion depending on binding iteration order.
2026-03-03 14:00:25 +01:00
kolaente
f8763d812e
fix: correct package.json indentation after dependency removal
2026-03-03 14:00:25 +01:00
kolaente
8bf0d581ce
test(shortcuts): add unit tests for shortcut parsing logic
...
Add 46 tests covering:
- parseKey: single keys, modifiers, multi-modifier combos, special keys
- matchesKey: code matching, modifier matching, Mod platform-adaptive behavior
- eventToShortcutString: plain keys, modifiers, modifier-only filtering, non-Latin layouts
- isFormField: input/textarea/select/contentEditable detection
Export parseKey, matchesKey, and isFormField for testability.
2026-03-03 14:00:25 +01:00
kolaente
c5703acedf
fix(shortcuts): resolve lint errors in shortcut module
...
Replace `any` type assertions with proper types:
- Use WeakMap for element-to-binding mapping instead of expando properties
- Use typed intersection for Firefox's explicitOriginalTarget property
2026-03-03 14:00:25 +01:00
kolaente
18969e61be
chore(deps): remove @github/hotkey dependency
...
Remove @github/hotkey package, its patch file, and the
patchedDependencies entry since all shortcut handling is now done by
the custom @/helpers/shortcut module.
2026-03-03 14:00:25 +01:00
kolaente
79cd3433f5
refactor(shortcuts): use event.code for raw keyboard handlers
...
Change e.key to e.code in global keyboard shortcut handlers for
consistency with the new event.code-based shortcut system:
- ProjectList.vue: 'j'/'k'/'Enter' -> 'KeyJ'/'KeyK'/'Enter'
- useGanttBar.ts: 'ArrowLeft'/'ArrowRight' (identical values, for consistency)
- Modal.vue: 'Escape' (identical value, for consistency)
2026-03-03 14:00:25 +01:00
kolaente
e3fdaed94a
refactor(shortcuts): replace eventToHotkeyString with eventToShortcutString
...
Migrate all imperative shortcut matching from @github/hotkey's
eventToHotkeyString to the new event.code-based eventToShortcutString.
Updated comparison strings:
- 'Meta+k'/'Control+k' -> 'Meta+KeyK'/'Control+KeyK'
- 'Control+s'/'Meta+s' -> 'Control+KeyS'/'Meta+KeyS'
- 'Control+.' -> 'Control+Period'
- '.' -> 'Period'
- 'Enter' stays 'Enter' (identical in event.code)
2026-03-03 14:00:25 +01:00
kolaente
f2901deb00
refactor(shortcuts): update v-shortcut values to event.code format
...
Change all shortcut strings from character-based format to event.code
format:
- Single letters: 't' -> 'KeyT', 's' -> 'KeyS', etc.
- Sequences: 'g o' -> 'KeyG KeyO', etc.
- Modifiers: 'Mod+e' -> 'Mod+KeyE', 'Shift+?' -> 'Shift+Slash'
- edit-shortcut prop: 'e' -> 'KeyE'
Shortcuts like 'Escape' and 'Shift+Delete' remain unchanged as their
event.code values are identical.
2026-03-03 14:00:25 +01:00
kolaente
8dc6e77ba0
refactor(shortcuts): update directive to use new shortcut module
...
Change import in the v-shortcut directive from @github/hotkey to the
new @/helpers/shortcut module. The install/uninstall API is identical.
2026-03-03 14:00:25 +01:00
kolaente
61c1d9332d
feat(shortcuts): add event.code-based shortcut module
...
Replace the character-based @github/hotkey matching with a custom module
that matches against event.code (physical key position). This makes
shortcuts layout-independent so they work on non-Latin keyboard layouts
(Russian, Greek, Arabic, etc.).
The module provides:
- install/uninstall for declarative element shortcuts (v-shortcut)
- eventToShortcutString for imperative event matching
- Sequence support with 1500ms timeout
- Form field, IME, shadow DOM, and event.repeat guards
2026-03-03 14:00:25 +01:00
kolaente
1d02e76914
fix(deps): remove obsolete flexsearch 0.7.43 patch
...
The patch fixed missing module/types fields in flexsearch 0.7's
package.json. Version 0.8.212 ships with proper exports, making
the patch unnecessary.
2026-03-03 13:17:24 +01:00
renovate[bot]
4f1830768a
fix(deps): update dependency flexsearch to v0.8.212
2026-03-03 13:17:24 +01:00
kolaente
4e79fde17d
fix(gantt): render collapse chevron after bars for correct SVG paint order
2026-03-03 13:11:43 +01:00
kolaente
092e8fe45a
fix(gantt): remove unreachable hover rule on relation arrows
2026-03-03 13:11:43 +01:00
kolaente
aa6c3d85a7
fix(gantt): clamp collapse chevron x position to prevent negative offset
2026-03-03 13:11:43 +01:00
kolaente
ca808c7a4f
fix(gantt): only set hasDerivedDates when children have actual dates
2026-03-03 13:11:43 +01:00
kolaente
f1ab9edf29
fix(gantt): move parent diamonds outward with stroke and remove hover effect
2026-03-03 13:11:43 +01:00
kolaente
f6cac275e2
fix(gantt): make collapse/expand triangle smaller
2026-03-03 13:11:43 +01:00
kolaente
62bb4c33cf
fix(gantt): improve parent task bar styling and visual grouping
...
- Make parent task bars full height (32px) matching regular bars,
instead of the thin 8px summary bar
- Move collapse/expand chevron to sit right before the bar start
position so it moves with the task during drag/resize
- Remove fixed-position indent indicator lines
- Add light background band with rounded border to visually group
parent tasks with their children, sized to fit the bars
2026-03-03 13:11:43 +01:00
kolaente
19d77157e2
fix(gantt): spread overlapping relation arrows at shared endpoints
2026-03-03 13:11:43 +01:00
kolaente
bb5d6dee3f
fix(gantt): make relation arrows smaller and dash precedes lines
2026-03-03 13:11:43 +01:00
kolaente
71a2cdbb28
fix(gantt): update relation arrows in real-time during drag and resize
2026-03-03 13:11:43 +01:00
kolaente
df766a0636
fix(gantt): always show relation arrows and fix arrow Y positioning
...
Remove the toggle checkbox and always render relation arrows.
Wrap rows and arrow overlay in a position:relative container so
arrows anchor to the row area instead of the chart wrapper which
includes the timeline header.
2026-03-03 13:11:43 +01:00
kolaente
5731ce9c76
feat(gantt): wire relation arrows into GanttChart with toggle
2026-03-03 13:11:43 +01:00
kolaente
cd42406850
feat(gantt): create arrow SVG overlay component for relations
2026-03-03 13:11:43 +01:00
kolaente
7fca56a927
feat(gantt): render parent summary bars with diamond endpoints
2026-03-03 13:11:43 +01:00
kolaente
8361c9f301
feat(gantt): add collapse/expand chevron and indent indicators
2026-03-03 13:11:43 +01:00
kolaente
07446dc4e1
feat(gantt): integrate task tree into Gantt rendering with collapse
2026-03-03 13:11:43 +01:00
kolaente
73ced5b7d2
feat(gantt): add dependency arrow data builder
2026-03-03 13:11:43 +01:00
kolaente
1358c87e98
feat(gantt): add task tree builder utility for hierarchy
2026-03-03 13:11:43 +01:00
kolaente
8005a2fb92
feat(gantt): add expand=subtasks to Gantt API params
2026-03-03 13:11:43 +01:00
renovate[bot]
8b5ab62af9
chore(deps): update dev-dependencies
2026-03-03 13:05:59 +01:00
Dominik Pschenitschni
b92735b0e9
feat: mini tiptap improvements
...
The TipTap editor now uses Vue’s defineModel for its reactive value, simplifies editability control with watchEffect, and correctly types DOM image elements.
Summary
Imported watchEffect and switched to defineModel for the editor’s v-model, removing the old update:modelValue emit
Typed the retrieved image element as HTMLImageElement and removed debugging output from the paste handler
Replaced the watcher controlling editability with a simpler watchEffect and updated model handling to use the new model ref
2026-03-03 13:00:35 +01:00
renovate[bot]
9a4a2eb184
chore(deps): update dev-dependencies
2026-03-03 12:45:12 +01:00
Dominik Pschenitschni
e8a5631ffe
feat(frontend): highlight overdue tasks consistently ( #958 )
2026-03-03 12:37:21 +01:00
Dominik Pschenitschni
0a9586e8d4
feat: use offical vite plugin for sentry ( #873 )
2026-03-03 12:30:49 +01:00
Dominik Pschenitschni
e1d1e7c848
feat: ensure forms submit on Enter ( #959 )
2026-03-03 12:28:45 +01:00
kolaente
958bd133fd
fix(frontend): use mbs-2 utility class instead of scoped CSS
...
Replace the scoped .notification-actions rule with the project's
mbs-2 utility class for margin-block-start spacing.
2026-03-03 11:46:18 +01:00
kolaente
59b3dd32ac
fix(frontend): use semantic class instead of targeting Tailwind utility
...
Replace .tw\:flex CSS selector with a .notification-actions class
in Notification.vue, as suggested in review.
2026-03-03 11:46:18 +01:00
kolaente
a08667b669
feat(frontend): upgrade Tailwind CSS from v3 to v4
...
- Replace tailwindcss v3 with tailwindcss v4 + @tailwindcss/vite plugin
- Create dedicated tailwind.css entry with granular imports (skip preflight)
- Use CSS-first config with prefix(tw) instead of JS config
- Switch from PostCSS plugin to Vite plugin for better performance
- Update class prefix from tw- (dash) to tw: (colon) in all Vue files
- Remove @tailwind directives from global.scss
- Delete tailwind.config.js (replaced by CSS directives)
- Update stylelint at-rules for v4 directives
2026-03-03 11:46:18 +01:00
kolaente
51f789bf5c
fix(e2e): drain event handlers and stop browser between tests
...
Async event handlers (via Watermill) from the previous test can hold
SQLite connections, starving the next test's fixture setup PATCH request.
Three changes fix this:
1. Track in-flight event handler goroutines with a WaitGroup.
2. Call WaitForPendingHandlers() in the test endpoint before
truncating/inserting data.
3. Navigate the browser to about:blank in fixture teardown to stop
notification polling and other frontend requests between tests.
2026-03-03 10:41:19 +01:00
kolaente
1ba6a74383
fix(nav): project drag handle position
...
Resolves https://community.vikunja.io/t/color-ordering-menu-overlapping/4289
2026-03-02 11:38:45 +01:00
Weijie Zhao
7297682cad
fix: remove invalidateAvatarCache call that broke request deduplication ( #2317 )
...
When multiple avatar components mount with alternating sizes (e.g. 48
and 20), invalidateAvatarCache clears pending requests for ALL sizes of
the same user, causing each call to create a new HTTP request instead of
reusing the pending one.
I noticed this issue when I open a task with 20 comments, the avatar
requests make the service OOM.
<img width="733" height="551" alt="image"
src="https://github.com/user-attachments/assets/db45db31-294c-4363-ad27-38d454b5a6a2 "
/>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-02 09:18:20 +01:00
renovate[bot]
648605c066
chore(deps): update dependency @vue/tsconfig to v0.9.0
2026-03-02 09:06:20 +01:00
kolaente
8690332652
chore(deps): upgrade serialize-javascript to 7.0.3
2026-03-02 08:56:08 +01:00
kolaente
15aa773212
fix(frontend): add horizontal overflow handling to tables on mobile
...
Wraps all tables that were missing overflow handling in a
`has-horizontal-overflow` div to prevent horizontal overflow on mobile
viewports.
Affected components:
- Sessions.vue
- ApiTokens.vue
- ProjectSettingsWebhooks.vue
- LinkSharing.vue
- UserTeam.vue
- EditTeam.vue
- ProjectSettingsViews.vue
Fixes https://github.com/go-vikunja/vikunja/issues/2331
2026-03-02 08:35:35 +01:00
renovate[bot]
cb2647abbe
chore(deps): update dev-dependencies
2026-03-02 08:26:16 +01:00
Frederick [Bot]
6076384b1f
chore(i18n): update translations via Crowdin
2026-03-01 01:21:13 +00:00
Frederick [Bot]
059958b839
chore(i18n): update translations via Crowdin
2026-02-27 01:10:46 +00:00
kolaente
4cce6ed34c
chore(deps): upgrade transitive minimatch from 10.2.1 to 10.2.3+
2026-02-26 23:33:39 +01:00
kolaente
04590d959c
chore(deps): upgrade transitive basic-ftp from 5.0.5 to 5.2.0
...
Add pnpm override to bump basic-ftp (transitive dependency via
puppeteer/get-uri) from 5.0.5 to 5.2.0.
2026-02-26 23:16:01 +01:00
kolaente
f2a4a40e28
chore(deps): override transitive rollup 2.x to use direct dependency version
...
Add pnpm override to force all transitive rollup dependencies to use
the direct dependency version (4.59.0), eliminating the old 2.79.2
pulled in by workbox-build.
2026-02-26 23:16:00 +01:00
renovate[bot]
a76ba87939
chore(deps): update dev-dependencies
2026-02-26 22:54:58 +01:00
kolaente
838254bb51
feat(multiselect): add green plus icon and always-visible hint to create option
...
Make the "create new" option in multiselect dropdowns visually distinct
from regular search results by adding a green plus icon and making the
hint text always visible instead of only on hover.
2026-02-26 17:37:11 +01:00
kolaente
c4ec7f032f
feat(checklist): show green progress circle when all checkboxes are done
2026-02-26 17:07:03 +01:00
kolaente
80759831ec
fix(editor): use overflow-wrap instead of word-break for text wrapping
...
word-break: break-all breaks text at any character, causing mid-word
breaks even when the word could fit on the next line. overflow-wrap:
break-word wraps at word boundaries first and only breaks mid-word
when a single word exceeds the container width.
2026-02-26 16:30:55 +01:00
renovate[bot]
b6205bb809
chore(deps): update dependency autoprefixer to v10.4.26
2026-02-25 20:30:07 +01:00
renovate[bot]
89c9209de4
chore(deps): update dependency stylelint to v17.4.0
2026-02-25 15:23:20 +01:00
kolaente
a11d705571
feat(frontend): use Password component in password update settings
...
Replace FormField with Password component for new password input:
- Provides real-time validation feedback (8-72 char requirement)
- Remove redundant password confirmation field
- Disable save button when form is invalid (validation errors or empty fields)
2026-02-25 13:44:56 +01:00
kolaente
111ac9c726
fix: prevent XSS via innerHTML injection in link edit prompt
...
Replace innerHTML with DOM API calls in inputPrompt.ts. The oldValue
parameter (sourced from a link's href attribute in the TipTap editor)
was interpolated directly into an HTML string, allowing stored XSS if
an attacker crafted a malicious href. Using document.createElement and
setting .value as a property ensures the value is never parsed as HTML.
2026-02-25 12:01:57 +01:00
kolaente
a42b4f37bd
fix: prevent reflected HTML injection via filter URL parameter
...
TipTap's setContent() parses strings as HTML via DOMParser, allowing
crafted ?filter= URL parameters to inject SVG phishing buttons, anchor
tags, and formatted content into the trusted UI.
Use ProseMirror JSON document format instead of raw strings so the
filter value is always set as a text node, bypassing HTML parsing
entirely.
2026-02-25 12:01:57 +01:00
kolaente
cb091f981d
test: add e2e tests for session refresh and retry interceptor
...
- Verifies transparent retry and JWT rotation on 401 with code 11
- Verifies no retry for 401 with non-JWT error code
- Verifies current session appears on sessions settings page
- Increases rate limit for e2e test API to prevent 429 errors
2026-02-25 10:30:25 +01:00
kolaente
be1db018fe
feat: add frontend session management with refresh tokens
...
- Session model, type interface, and API service
- Sessions settings page showing active sessions with device info,
IP address, last active time, and current session indicator
- Auth store updated to use cookie-based refresh tokens for user
sessions and JWT-based renewal for link shares
- refreshToken() uses Web Locks API to coordinate across browser
tabs — only one tab performs the refresh, others adopt the result
- 401 response interceptor with automatic retry: detects expired JWT
(error code 11), refreshes the token, and replays the request
- Interceptor gated to user JWTs only (link shares skip refresh)
- checkAuth() attempts cookie refresh when JWT is expired, allowing
seamless session resumption after short TTL expiry
- Proactive token refresh on page focus/visibility via composable
- renewToken() tolerates refresh failures when JWT is still valid
2026-02-25 10:30:25 +01:00
kolaente
94edaefced
chore(deps): update ajv to 6.14.0
2026-02-24 21:52:28 +01:00
kolaente
4325eae4d4
fix(tasks): show drag handle icon on mobile devices ( #2286 )
...
Resolves https://github.com/go-vikunja/vikunja/issues/2228
2026-02-24 14:37:33 +01:00
kolaente
7c04d44e2e
fix: wait for router before dismissing loading screen
...
The loading screen was dismissed as soon as auth check completed, but
before Vue Router's initial navigation finished. This caused route.name
to be undefined momentarily, making showAuthLayout evaluate to false
and briefly flashing the NoAuthWrapper (login shell) before the
authenticated layout appeared.
Wait for router.isReady() before setting ready = true so the loading
screen stays visible until the route is fully resolved.
2026-02-24 13:13:30 +01:00
kolaente
f7a93e4ca3
fix: prevent cursor reset when typing in filter input ( #2287 )
...
Fixes #2268
2026-02-24 11:50:45 +00:00
kolaente
9e633b3e82
fix(task): disable Confirm button when no date is selected in absolute reminder picker
...
Prevents emitting a reminder with reminder=null/relativeTo=null when
the user clicks Confirm without selecting a date first.
Refs #2208
2026-02-24 11:57:39 +01:00
kolaente
5dcea199d2
fix(test): update existing reminder tests to click Confirm after date selection
...
The DatepickerInline quick-select buttons (Tomorrow, etc.) inside the
reminder popup no longer auto-save. Update existing tests to click
Confirm after selecting a date.
Refs #2208
2026-02-24 11:57:39 +01:00
kolaente
f6a35416e5
test(task): add e2e tests for reminder confirm-before-save behavior
...
- Test that clicking a date in the absolute reminder picker does not
auto-save, only saves when Confirm is clicked
- Test that the Confirm button is visible when task has no due date
(defaultRelativeTo is null)
Refs #2208
2026-02-24 11:57:39 +01:00
kolaente
b65773eb8f
fix(task): require explicit confirmation before saving reminders
...
Prevent reminders from being saved to the API until the user clicks
Confirm, matching the behavior of the due/start/end date pickers.
- Remove @update:modelValue handler on DatepickerInline so date/time
changes only update local state
- Change Confirm button condition from showFormSwitch to activeForm so
it renders even when defaultRelativeTo is null
- Add confirmAndClose function that handles both absolute and relative
reminder forms
- Remove debounce (useDebounceFn) since saves are now user-initiated
Refs #2208
2026-02-24 11:57:39 +01:00
kolaente
56eb5d3740
fix: show tasks spanning entire gantt date range
...
Tasks whose start date is before and end date is after the visible
gantt range were not shown because the API filter only checked whether
individual date fields fell within the range. Add a fourth filter
clause to match tasks that fully encompass the visible date range.
Fixes go-vikunja/vikunja#2269
2026-02-24 11:51:13 +01:00
kolaente
a13ecbd3cc
fix: prevent browser from caching API responses
...
Without explicit Cache-Control headers, browsers may heuristically cache
API JSON responses. This causes stale data to be served on normal page
refresh (F5) — for example, projects newly shared with a team not
appearing until the user performs a hard refresh (Ctrl+Shift+R).
Add Cache-Control: no-store to all API responses via middleware and
configure the service worker's NetworkOnly strategy to explicitly bypass
the browser HTTP cache for API requests.
Ref: https://community.vikunja.io/t/team-members-cannot-see-project/1876
2026-02-24 10:37:49 +01:00
Frederick [Bot]
19ccc3cb8e
chore(i18n): update translations via Crowdin
2026-02-24 01:13:27 +00:00
renovate[bot]
f362738e33
chore(deps): update dev-dependencies to v8.56.1
2026-02-23 20:50:07 +01:00
renovate[bot]
524d8f522d
chore(deps): update dependency caniuse-lite to v1.0.30001774
2026-02-23 10:24:42 +01:00
renovate[bot]
5ff1596314
chore(deps): update dev-dependencies
2026-02-23 10:14:21 +01:00
renovate[bot]
4babc477ef
chore(deps): update dev-dependencies
2026-02-21 23:12:36 +01:00
kolaente
4cee2cf128
fix: reset throttle on logout so checkAuth clears auth state
...
logout() calls checkAuth() to clear the authenticated flag and user
info. But since checkAuth() likely ran within the last minute (on the
navigation that triggered logout), the now-working throttle would
return early, leaving authenticated=true in the store despite the
token being removed. This could cause Login.vue to redirect back
to home.
Resetting lastUserInfoRefresh to null before checkAuth() ensures
the logout flow always runs fully.
2026-02-21 23:08:24 +01:00
kolaente
65806df605
fix: keep token expiry in sync when skipping setUser from JWT
...
When the setUser call is skipped for an already-loaded user,
info.value.exp was never updated with the renewed token's expiry.
This caused useRenewTokenOnFocus to compute a stale expiresIn,
eventually forcing a logout even though the token was still valid.
Now we always update exp from the JWT, even when skipping the
full setUser call.
2026-02-21 23:08:24 +01:00
kolaente
1d420dd1dc
fix: don't overwrite user info with incomplete JWT data on navigation
...
The JWT token only contains id, username, type, and exp — not the
display name. Previously, every route navigation called setUser() with
this incomplete data, causing the display name to flash to the username
before the API call completed and restored the full name.
Now we skip setUser() if a complete user object with the same ID is
already loaded.
Fixes https://github.com/go-vikunja/vikunja/issues/2270
2026-02-21 23:08:24 +01:00
kolaente
a11cde1afc
fix: correct broken throttle in checkAuth that never triggered
...
The throttle checked `lastUserInfoRefresh > now + 1 minute` which is
never true since lastUserInfoRefresh is set to the current time.
Changed to `now - 1 minute` so the check actually prevents redundant
API calls within a one-minute window.
2026-02-21 23:08:24 +01:00
kolaente
1dc625f9e8
test: add unit tests for getDisplayName
2026-02-21 23:08:24 +01:00
kolaente
6a4401eb7c
feat(frontend): make dev server port configurable via VIKUNJA_FRONTEND_PORT env var
2026-02-21 22:32:09 +01:00
Frederick [Bot]
05ff67b681
chore(i18n): update translations via Crowdin
2026-02-21 01:09:54 +00:00
Massimo Nadalin
8fd256a5d9
feat: clickable task notifications ( #2258 )
...
Make task-related notifications clickable, allowing users to directly
open the corresponding task.
2026-02-20 22:34:53 +00:00
renovate[bot]
d00bb999b5
chore(deps): update dev-dependencies
2026-02-20 22:44:24 +01:00
renovate[bot]
1c8b9e8810
chore(deps): update dependency rollup-plugin-visualizer to v6.0.8
2026-02-20 11:32:32 +01:00
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 )
|

|

|
| [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 ) |

|

|
---
### 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
**[@​acollins1991](https://redirect.github.com/acollins1991 )** in
task
[#​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 )
|

|

|
---
### 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 )
|

|

|
---
### Release Notes
<details>
<summary>getsentry/sentry-javascript (@​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 )
|

|

|
---
### Release Notes
<details>
<summary>FortAwesome/vue-fontawesome
(@​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 ) |

|

|
---
### 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
([#​293](https://redirect.github.com/unjs/ufo/pull/293 ))
##### 📖 Documentation
- Add more examples in jsdoc
([#​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
([@​ComfortablyCoding](https://redirect.github.com/ComfortablyCoding ))
- Pooya Parsa ([@​pi0](https://redirect.github.com/pi0 ))
- Alex Liu
([@​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 )
|

|

|
|
[@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 )
|

|

|
| [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 ) |

|

|
| [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 )
|

|

|
| [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 ) |

|

|
---
### Release Notes
<details>
<summary>typescript-eslint/typescript-eslint
(@​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
([#​11899](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11899 ))
##### 🩹 Fixes
- **eslint-plugin:** \[no-base-to-string] detect
@​[@​toPrimitive](https://redirect.github.com/toPrimitive )
and valueOf
([#​11901](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11901 ))
- **eslint-plugin:** \[no-useless-default-assignment] handle conditional
initializer
([#​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
(@​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
([#​6231](https://redirect.github.com/rollup/rollup/issues/6231 ))
##### Pull Requests
- [#​6231](https://redirect.github.com/rollup/rollup/pull/6231 ):
Fix OpenBSD artifacts and ensure OIDC is working
([@​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
[@​KazariEX](https://redirect.github.com/KazariEX )!
##### language-plugin-pug
- **feat:** accurate Pug shorthand mapping
([#​5906](https://redirect.github.com/vuejs/language-tools/issues/5906 ))
- **fix:** pre-map HTML to Pug offset attribute
([#​5905](https://redirect.github.com/vuejs/language-tools/issues/5905 ))
##### language-service
- **feat:** strip `=""` for boolean props completion edits
([#​5888](https://redirect.github.com/vuejs/language-tools/issues/5888 ))
- Thanks to [@​KazariEX](https://redirect.github.com/KazariEX )!
- **fix:** avoid duplicate directive modifiers in completion
([#​5920](https://redirect.github.com/vuejs/language-tools/issues/5920 ))
- Thanks to [@​KazariEX](https://redirect.github.com/KazariEX )!
##### typescript-plugin
- **fix:** only forward quick info and suggestion diagnostics for setup
bindings
([#​5892](https://redirect.github.com/vuejs/language-tools/issues/5892 ))
- Thanks to [@​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 )
|

|

|
---
### Release Notes
<details>
<summary>getsentry/sentry-javascript (@​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
([#​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
([#​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
([#​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
'@​sentry/tanstackstart-react';
import handler, { createServerEntry } from
'@​tanstack/react-start/server-entry';
export default createServerEntry(
wrapFetchWithSentry({
fetch(request: Request) {
return handler.fetch(request);
},
}),
);
```
- **feat(vue): Add TanStack Router integration
([#​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 '@​tanstack/vue-router';
import * as Sentry from '@​sentry/vue';
import { tanstackRouterBrowserTracingIntegration } from
'@​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
([#​18531](https://redirect.github.com/getsentry/sentry-javascript/pull/18531 ))
- feat(nextjs): Extract tracing logic from server component wrapper
templates
([#​18408](https://redirect.github.com/getsentry/sentry-javascript/pull/18408 ))
- feat(nextjs): added webpack treeshaking flags as config
([#​18359](https://redirect.github.com/getsentry/sentry-javascript/pull/18359 ))
- fix(solid/tanstackrouter): Ensure web vitals are sent on pageload
([#​18542](https://redirect.github.com/getsentry/sentry-javascript/pull/18542 ))
<details>
<summary> <strong>Internal Changes</strong> </summary>
- chore(changelog): Add entry for scope attributes
([#​18555](https://redirect.github.com/getsentry/sentry-javascript/pull/18555 ))
- chore(changelog): Add entry for tanstack start wrapFetchWithSentry
([#​18558](https://redirect.github.com/getsentry/sentry-javascript/pull/18558 ))
- chore(deps): bump
[@​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
([#​18530](https://redirect.github.com/getsentry/sentry-javascript/pull/18530 ))
- chore(deps): bump
[@​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
([#​18550](https://redirect.github.com/getsentry/sentry-javascript/pull/18550 ))
- chore(e2e): Pin to react-router 7.10.1 in spa e2e test
([#​18548](https://redirect.github.com/getsentry/sentry-javascript/pull/18548 ))
- chore(e2e): Remove check on
`http.response_content_length_uncompressed`
([#​18536](https://redirect.github.com/getsentry/sentry-javascript/pull/18536 ))
- chore(github): Add "Closes" to PR template
([#​18538](https://redirect.github.com/getsentry/sentry-javascript/pull/18538 ))
- test(cloudflare-mcp): Unpin mcp sdk
([#​18528](https://redirect.github.com/getsentry/sentry-javascript/pull/18528 ))
- test(nextjs): Add e2e tests for server component spans in next 16
([#​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 ) |

|

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

|

|
---
### Release Notes
<details>
<summary>getsentry/sentry-javascript (@​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
([#​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
([#​18476](https://redirect.github.com/getsentry/sentry-javascript/pull/18476 ))
- feat(bun): Expose spotlight option in TypeScript
([#​18436](https://redirect.github.com/getsentry/sentry-javascript/pull/18436 ))
- feat(core): Add additional exports for `captureException` and
`captureMessage` parameter types
([#​18521](https://redirect.github.com/getsentry/sentry-javascript/pull/18521 ))
- feat(core): Export `captureException` and `captureMessage` parameter
types
([#​18509](https://redirect.github.com/getsentry/sentry-javascript/pull/18509 ))
- feat(core): Parse individual cookies from cookie header
([#​18325](https://redirect.github.com/getsentry/sentry-javascript/pull/18325 ))
- feat(node): Add instrument OpenAI export to node
([#​18461](https://redirect.github.com/getsentry/sentry-javascript/pull/18461 ))
- feat(nuxt): Bump `@sentry/vite-plugin` and `@sentry/rollup-plugin` to
4.6.1
([#​18349](https://redirect.github.com/getsentry/sentry-javascript/pull/18349 ))
- feat(profiling): Add support for Node v24 in the prune script
([#​18447](https://redirect.github.com/getsentry/sentry-javascript/pull/18447 ))
- feat(tracing): strip inline media from messages
([#​18413](https://redirect.github.com/getsentry/sentry-javascript/pull/18413 ))
- feat(node): Add ESM support for postgres.js instrumentation
([#​17961](https://redirect.github.com/getsentry/sentry-javascript/pull/17961 ))
- fix(browser): Stringify span context in linked traces log statement
([#​18376](https://redirect.github.com/getsentry/sentry-javascript/pull/18376 ))
- fix(google-cloud-serverless): Move
[@​types/express](https://redirect.github.com/types/express ) to
optional peerDeps
([#​18452](https://redirect.github.com/getsentry/sentry-javascript/pull/18452 ))
- fix(node-core): passthrough node-cron context
([#​17835](https://redirect.github.com/getsentry/sentry-javascript/pull/17835 ))
- fix(tanstack-router): Check for `fromLocation` existence before
reporting pageload
([#​18463](https://redirect.github.com/getsentry/sentry-javascript/pull/18463 ))
- fix(tracing): add system prompt, model to google genai
([#​18424](https://redirect.github.com/getsentry/sentry-javascript/pull/18424 ))
- fix(tracing): Set span operations for AI spans with model ID only
([#​18471](https://redirect.github.com/getsentry/sentry-javascript/pull/18471 ))
- ref(browser): Improve profiling debug statement
([#​18507](https://redirect.github.com/getsentry/sentry-javascript/pull/18507 ))
<details>
<summary> <strong>Internal Changes</strong> </summary>
- chore: Add external contributor to CHANGELOG.md
([#​18473](https://redirect.github.com/getsentry/sentry-javascript/pull/18473 ))
- chore: upgrade Playwright to \~1.56.0 for WSL2 compatibility
([#​18468](https://redirect.github.com/getsentry/sentry-javascript/pull/18468 ))
- chore(bugbot): Add testing conventions code review rules
([#​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
([#​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
([#​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
([#​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
([#​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
([#​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
([#​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
([#​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
([#​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
([#​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
([#​18487](https://redirect.github.com/getsentry/sentry-javascript/pull/18487 ))
- chore(tests): Added test variant flag
([#​18458](https://redirect.github.com/getsentry/sentry-javascript/pull/18458 ))
- test(cloudflare-mcp): Pin mcp sdk to 1.24.0
([#​18524](https://redirect.github.com/getsentry/sentry-javascript/pull/18524 ))
</details>
Work in this release was contributed by
[@​sebws](https://redirect.github.com/sebws ) and
[@​TBeeren](https://redirect.github.com/TBeeren ). Thank you for
your contributions!
#### Bundle size 📦
| Path | Size |
|
-----------------------------------------------------------------------------------------------------
| --------- |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) |
24.23 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) -
with treeshaking flags | 22.76 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Tracing) | 40.58 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Tracing, Profiling) | 45.08 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Tracing, Replay) | 78.1 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Tracing, Replay) - with treeshaking flags | 68.07 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Tracing, Replay with Canvas) | 82.67 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Tracing, Replay, Feedback) | 94.62 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Feedback) | 40.54 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. sendFeedback) | 28.8 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. FeedbackAsync) | 33.68 KB |
| [@​sentry/react](https://redirect.github.com/sentry/react ) |
25.9 KB |
| [@​sentry/react](https://redirect.github.com/sentry/react )
(incl. Tracing) | 42.73 KB |
| [@​sentry/vue](https://redirect.github.com/sentry/vue ) | 28.58
KB |
| [@​sentry/vue](https://redirect.github.com/sentry/vue ) (incl.
Tracing) | 42.35 KB |
| [@​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 |
| [@​sentry/nextjs](https://redirect.github.com/sentry/nextjs )
(client) | 44.9 KB |
|
[@​sentry/sveltekit](https://redirect.github.com/sentry/sveltekit )
(client) | 40.94 KB |
|
[@​sentry/node-core](https://redirect.github.com/sentry/node-core )
| 50.39 KB |
| [@​sentry/node](https://redirect.github.com/sentry/node ) | 157.7
KB |
| [@​sentry/node](https://redirect.github.com/sentry/node ) -
without tracing | 90.85 KB |
|
[@​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 )
|

|

|
|
[@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 )
|

|

|
| [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 ) |

|

|
| [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 )
|

|

|
| [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 ) |

|

|
---
### Release Notes
<details>
<summary>typescript-eslint/typescript-eslint
(@​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
([#​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
(@​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
([#​6206](https://redirect.github.com/rollup/rollup/issues/6206 ))
- Generate spec-compliant sourcemaps when sources content is excluded
([#​6196](https://redirect.github.com/rollup/rollup/issues/6196 ))
##### Pull Requests
- [#​6196](https://redirect.github.com/rollup/rollup/pull/6196 ):
fix: set sourcesContent to undefined instead of null when excluding
sources content
([@​TrickyPi](https://redirect.github.com/TrickyPi ))
- [#​6206](https://redirect.github.com/rollup/rollup/pull/6206 ):
Fix semicolon order in JSX
([@​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.
([#​6209](https://redirect.github.com/rollup/rollup/issues/6209 ))
##### Pull Requests
- [#​6185](https://redirect.github.com/rollup/rollup/pull/6185 ):
chore(deps): update dependency
[@​inquirer/prompts](https://redirect.github.com/inquirer/prompts )
to v8 ([@​renovate](https://redirect.github.com/renovate )\[bot],
[@​lukastaegert](https://redirect.github.com/lukastaegert ))
- [#​6186](https://redirect.github.com/rollup/rollup/pull/6186 ):
fix(deps): lock file maintenance minor/patch updates
([@​renovate](https://redirect.github.com/renovate )\[bot])
- [#​6187](https://redirect.github.com/rollup/rollup/pull/6187 ):
chore(deps): lock file maintenance
([@​renovate](https://redirect.github.com/renovate )\[bot])
- [#​6188](https://redirect.github.com/rollup/rollup/pull/6188 ):
chore(deps): lock file maintenance minor/patch updates
([@​renovate](https://redirect.github.com/renovate )\[bot])
- [#​6190](https://redirect.github.com/rollup/rollup/pull/6190 ):
Fix syntax error in manualChunks example
([@​jonnyeom](https://redirect.github.com/jonnyeom ))
- [#​6194](https://redirect.github.com/rollup/rollup/pull/6194 ):
chore(deps): update actions/checkout action to v6
([@​renovate](https://redirect.github.com/renovate )\[bot])
- [#​6195](https://redirect.github.com/rollup/rollup/pull/6195 ):
fix(deps): lock file maintenance minor/patch updates
([@​renovate](https://redirect.github.com/renovate )\[bot],
[@​lukastaegert](https://redirect.github.com/lukastaegert ))
- [#​6202](https://redirect.github.com/rollup/rollup/pull/6202 ):
fix(deps): update swc monorepo (major)
([@​renovate](https://redirect.github.com/renovate )\[bot])
- [#​6203](https://redirect.github.com/rollup/rollup/pull/6203 ):
fix(deps): lock file maintenance minor/patch updates
([@​renovate](https://redirect.github.com/renovate )\[bot],
[@​lukastaegert](https://redirect.github.com/lukastaegert ))
- [#​6209](https://redirect.github.com/rollup/rollup/pull/6209 ):
Do not tree-shake handlers for "using"
([@​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 ) |

|

|
---
### 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 )
|

|

|
|
[@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 )
|

|

|
| [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 )
|

|

|
---
### Release Notes
<details>
<summary>tsconfig/bases (@​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
[@​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 )
|

|

|
| [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 ) |

|

|
⚠️ 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 (@​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
([#​707](https://redirect.github.com/vitejs/vite-plugin-vue/issues/707 ))
([799f419](799f419565 ))
- **hmr:** reload when components switch between vapor and vdom
([#​714](https://redirect.github.com/vitejs/vite-plugin-vue/issues/714 ))
([6c45fe5](6c45fe5294 ))
##### Performance Improvements
- replace debug with obug
([#​705](https://redirect.github.com/vitejs/vite-plugin-vue/issues/705 ))
([684ac30](684ac30f83 ))
##### Miscellaneous Chores
- **deps:** update upstream
([#​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 ) |

|

|
---
### 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
[@​posva](https://redirect.github.com/posva )
[<samp>(92efb)</samp>](https://redirect.github.com/vuejs/router/commit/92efba79 )
- Basic alias - by [@​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
[@​drylint](https://redirect.github.com/drylint ) in
[#​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
[@​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 )
|

|

|
---
### Release Notes
<details>
<summary>intlify/bundle-tools
(@​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 )
|

|

|
---
### Release Notes
<details>
<summary>getsentry/sentry-javascript (@​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
([#​18343](https://redirect.github.com/getsentry/sentry-javascript/pull/18343 ))
- feat(node): Capture scope when event loop blocked
([#​18040](https://redirect.github.com/getsentry/sentry-javascript/pull/18040 ))
- fix(aws-serverless): Remove hyphens from AWS-lambda origins
([#​18353](https://redirect.github.com/getsentry/sentry-javascript/pull/18353 ))
- fix(core): Parse method from Request object in fetch
([#​18453](https://redirect.github.com/getsentry/sentry-javascript/pull/18453 ))
- fix(react): Add transaction name guards for rapid lazy-route
navigations
([#​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
([#​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
([#​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
([#​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
([#​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
([#​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
([#​18439](https://redirect.github.com/getsentry/sentry-javascript/pull/18439 ))
- chore(publish): Fix publish order for `@sentry/types`
([#​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
([#​18362](https://redirect.github.com/getsentry/sentry-javascript/pull/18362 ))
</details>
#### Bundle size 📦
| Path | Size |
|
-----------------------------------------------------------------------------------------------------
| --------- |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) |
24.23 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) -
with treeshaking flags | 22.76 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Tracing) | 40.57 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Tracing, Profiling) | 45.06 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Tracing, Replay) | 78.09 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Tracing, Replay) - with treeshaking flags | 68.07 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Tracing, Replay with Canvas) | 82.66 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Tracing, Replay, Feedback) | 94.61 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. Feedback) | 40.54 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. sendFeedback) | 28.8 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser )
(incl. FeedbackAsync) | 33.68 KB |
| [@​sentry/react](https://redirect.github.com/sentry/react ) |
25.9 KB |
| [@​sentry/react](https://redirect.github.com/sentry/react )
(incl. Tracing) | 42.73 KB |
| [@​sentry/vue](https://redirect.github.com/sentry/vue ) | 28.58
KB |
| [@​sentry/vue](https://redirect.github.com/sentry/vue ) (incl.
Tracing) | 42.34 KB |
| [@​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 |
| [@​sentry/nextjs](https://redirect.github.com/sentry/nextjs )
(client) | 44.89 KB |
|
[@​sentry/sveltekit](https://redirect.github.com/sentry/sveltekit )
(client) | 40.94 KB |
|
[@​sentry/node-core](https://redirect.github.com/sentry/node-core )
| 50.06 KB |
| [@​sentry/node](https://redirect.github.com/sentry/node ) |
155.85 KB |
| [@​sentry/node](https://redirect.github.com/sentry/node ) -
without tracing | 90.74 KB |
|
[@​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 )
|

|

|
---
### 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 ) |

|

|
---
### 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 )
|

|

|
|
[@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 )
|

|

|
|
[@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 )
|

|

|
| [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 )
|

|

|
| [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 )
|

|

|
| [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 ) |

|

|
| [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 ) |

|

|
---
### Release Notes
<details>
<summary>typescript-eslint/typescript-eslint
(@​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`
([#​11804](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11804 ))
##### 🩹 Fixes
- **deps:** update dependency prettier to v3.7.2
([#​11820](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11820 ))
##### ❤️ Thank You
- Justin McBride
- Kirk Waiblinger
[@​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
(@​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
([#​5830](https://redirect.github.com/vuejs/language-tools/issues/5830 ))
- Thanks to [@​serkodev](https://redirect.github.com/serkodev )!
- feat(vscode): supports format with selected range
([#​5761](https://redirect.github.com/vuejs/language-tools/issues/5761 ))
- Thanks to [@​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
([#​5823](https://redirect.github.com/vuejs/language-tools/issues/5823 ))
- fix(language-core): restore default import bindings for template scope
([#​5824](https://redirect.github.com/vuejs/language-tools/issues/5824 ))
- Thanks to [@​serkodev](https://redirect.github.com/serkodev )!
- fix(typescript-plugin): get `preferences` and `formatOptions` in
tsserver
([#​5829](https://redirect.github.com/vuejs/language-tools/issues/5829 ))
- fix(language-core): avoid generating component options within the
setup scope
([#​5832](https://redirect.github.com/vuejs/language-tools/issues/5832 ))
##### Other Changes
- perf(language-core): dedupe component options generation
([#​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 ) |

|

|
---
### 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
[@​MariusRumpf](https://redirect.github.com/MariusRumpf )
- Updated the ESM import syntax to be more correct, thanks
[@​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 ) |

|

|
---
### 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 'Krypton' (LTS), @​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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é)
[#​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)
[#​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)
[#​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)
[#​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 (우혁)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​60348](https://redirect.github.com/nodejs/node/pull/60348 )
-
\[[`bbd7fdfff4`](https://redirect.github.com/nodejs/node/commit/bbd7fdfff4 )]
- **doc**: clarify require(esm) description (dynst)
[#​60520](https://redirect.github.com/nodejs/node/pull/60520 )
-
\[[`33ad11a764`](https://redirect.github.com/nodejs/node/commit/33ad11a764 )]
- **doc**: instantiate resolver object (Donghoon Nam)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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])
[#​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])
[#​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])
[#​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])
[#​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])
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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) [#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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)
[#​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 ) |

|

|
---
### 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
([#​5784](https://redirect.github.com/vuejs/language-tools/issues/5784 ))
- Thanks to [@​serkodev](https://redirect.github.com/serkodev )!
- feat(language-service): enhanced component auto import
([#​5790](https://redirect.github.com/vuejs/language-tools/issues/5790 ))
- feat(component-meta): add component name and description fields
([#​5797](https://redirect.github.com/vuejs/language-tools/issues/5797 ))
- feat(typescript-plugin): add support for template "Add Import" quick
fix
([#​5799](https://redirect.github.com/vuejs/language-tools/issues/5799 ))
- Thanks to [@​serkodev](https://redirect.github.com/serkodev )!
- feat(typescript-plugin): mapping JSDoc informations from `<script
setup>`
([#​5805](https://redirect.github.com/vuejs/language-tools/issues/5805 ))
- feat(vscode): support tsdk path for Eclipse Theia
([#​5806](https://redirect.github.com/vuejs/language-tools/issues/5806 ))
- Thanks to [@​serkodev](https://redirect.github.com/serkodev )!
##### Bug Fixes
- fix(language-service): ignore intrinsic elements when detect tag name
casing
([#​5771](https://redirect.github.com/vuejs/language-tools/issues/5771 ))
- fix(language-core): `createParsedCommandLineByJson` parsed incorrect
options since v3.1.5 ([#​5768
(comment)](https://redirect.github.com/vuejs/language-tools/pull/5768#issuecomment-3569623037 ))
- fix(vscode): make `vue.server.path` compatible with Windows
([#​5772](https://redirect.github.com/vuejs/language-tools/issues/5772 ))
- fix(vscode): analyze interpolation highlight ranges based on AST
([#​5777](https://redirect.github.com/vuejs/language-tools/issues/5777 ))
- fix(vscode): sync latest vscode html language configuration
([#​5740](https://redirect.github.com/vuejs/language-tools/issues/5740 ))
- fix(language-core): enhance `getVIfNode` to support `v-else-if`
directives
([#​5765](https://redirect.github.com/vuejs/language-tools/issues/5765 ))
- Thanks to [@​serkodev](https://redirect.github.com/serkodev )!
- fix(language-core): generate `{}` instead of its string value for
`style="..."`
([#​5781](https://redirect.github.com/vuejs/language-tools/issues/5781 ))
- Thanks to [@​KazariEX](https://redirect.github.com/KazariEX )!
- fix(language-core): `v-bind="$attrs"` loses navigation when
`inferTemplateDollarAttrs` is disabled
([#​5783](https://redirect.github.com/vuejs/language-tools/issues/5783 ))
- fix(language-service): skip `const props =` completion in
StringLiteral
([#​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
([#​5788](https://redirect.github.com/vuejs/language-tools/issues/5788 ))
- Thanks to [@​serkodev](https://redirect.github.com/serkodev )!
- fix(language-service): properly handle promise when resolving CSS
links
([#​5785](https://redirect.github.com/vuejs/language-tools/issues/5785 ))
- fix(language-core): infer `$el` type for generic components using
`inferComponentDollarEl`
([#​5794](https://redirect.github.com/vuejs/language-tools/issues/5794 ))
- fix(language-core): ensure `<script>` content generates before
`<script setup>`
([#​5795](https://redirect.github.com/vuejs/language-tools/issues/5795 ))
- fix(language-core): remove `bypassDefineComponent` hack for better JS
support
([#​4876](https://redirect.github.com/vuejs/language-tools/issues/4876 ))
([#​5379](https://redirect.github.com/vuejs/language-tools/issues/5379 ))
- fix(language-core): `Prettify<T>` caused generic props gets inferred
as `unknown`
([#​5667](https://redirect.github.com/vuejs/language-tools/issues/5667 ))
- Thanks to [@​so1ve](https://redirect.github.com/so1ve )!
- fix(vscode): handle leading `<` as operator in SFC scripts
([#​5801](https://redirect.github.com/vuejs/language-tools/issues/5801 ))
- Thanks to [@​serkodev](https://redirect.github.com/serkodev )!
- fix(vscode): patch `isTypeScriptDocument` in VSCode for
`typescript.preferences.autoImportSpecifierExcludeRegexes` config
support
([#​5364](https://redirect.github.com/vuejs/language-tools/issues/5364 ))
- fix(language-core): ensure type consistency for optional boolean props
([#​5803](https://redirect.github.com/vuejs/language-tools/issues/5803 ))
- fix(language-core): add compatibility for `vapor` attr
([#​5496](https://redirect.github.com/vuejs/language-tools/issues/5496 ))
- fix(language-core): AST fault tolerance for key binding on template
([#​5807](https://redirect.github.com/vuejs/language-tools/issues/5807 ))
##### Performance
- perf(language-core): reuse ts asts for `:class` - Thanks to
[@​KazariEX](https://redirect.github.com/KazariEX )!
##### Other Changes
- Revert "refactor(typescript-plugin): remove go to definition trick for
auto imported components
([#​5733](https://redirect.github.com/vuejs/language-tools/issues/5733 ))"
- docs(typescript-plugin): update Neovim configuration link
([#​5775](https://redirect.github.com/vuejs/language-tools/issues/5775 ))
- Thanks to
[@​AlexVagrant](https://redirect.github.com/AlexVagrant )!
- refactor(language-core): normalize template AST
([#​5782](https://redirect.github.com/vuejs/language-tools/issues/5782 ))
- refactor(language-core): split style codegen
([#​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
([#​5804](https://redirect.github.com/vuejs/language-tools/issues/5804 ))
- refactor(component-meta): deprecated `rawType` and `__internal__.tsLs`
([#​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 ))
([#​5644](https://redirect.github.com/vuejs/language-tools/issues/5644 ))
- Thanks to [@​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 )
|

|

|
|
[@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 )
|

|

|
| [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 )
|

|

|
| [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 ) |

|

|
---
### Release Notes
<details>
<summary>typescript-eslint/typescript-eslint
(@​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
([#​11764](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11764 ),
[#​11759](https://redirect.github.com/typescript-eslint/typescript-eslint/issues/11759 ))
- **eslint-plugin:** honor ignored base types on generic classes
([#​11767](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11767 ))
- **eslint-plugin:** \[consistent-type-exports] check value flag before
resolving alias
([#​11769](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11769 ))
##### ❤️ Thank You
- Josh Goldberg
- OleksandraKordonets
- SangheeSon [@​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
(@​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 ) |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](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
[@​kazupon](https://redirect.github.com/kazupon ) in
[#​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 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](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 ) |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](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 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](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 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](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 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](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 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>vueuse/vueuse (@​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
[@​kolaente](https://redirect.github.com/kolaente ) in
[#​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
[@​kricsleo](https://redirect.github.com/kricsleo ) and
[@​9romise](https://redirect.github.com/9romise ) in
[#​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 [@​siavava](https://redirect.github.com/siavava ) and
[@​9romise](https://redirect.github.com/9romise ) in
[#​5049](https://redirect.github.com/vueuse/vueuse/issues/5049 )
[<samp>(62dfb)</samp>](https://redirect.github.com/vueuse/vueuse/commit/62dfb80a )
- **useTimeAgoIntl**: Custom units - by
[@​Menci](https://redirect.github.com/Menci ) in
[#​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
[@​YuchenWell](https://redirect.github.com/YuchenWell ), **Anthony
Fu** and [@​9romise](https://redirect.github.com/9romise ) in
[#​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
[@​toofishes](https://redirect.github.com/toofishes ) in
[#​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 [@​kricsleo](https://redirect.github.com/kricsleo ) in
[#​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
[@​xiaoxiaohuayu](https://redirect.github.com/xiaoxiaohuayu ) in
[#​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
[@​9romise](https://redirect.github.com/9romise ) in
[#​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
[@​michaelcozzolino](https://redirect.github.com/michaelcozzolino )
in [#​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
[@​keeplearning66](https://redirect.github.com/keeplearning66 ) and
[@​9romise](https://redirect.github.com/9romise ) in
[#​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
[@​huajianjiu](https://redirect.github.com/huajianjiu ) in
[#​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
[@​nhquyss](https://redirect.github.com/nhquyss ) in
[#​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
[@​babu-ch](https://redirect.github.com/babu-ch ) and
[@​9romise](https://redirect.github.com/9romise ) in
[#​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
[@​9romise](https://redirect.github.com/9romise ) in
[#​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 [@​ben-lau](https://redirect.github.com/ben-lau ),
**liubaobin** and [@​9romise](https://redirect.github.com/9romise )
in [#​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
[@​keeplearning66](https://redirect.github.com/keeplearning66 ),
**Robin** and **Anthony Fu** in
[#​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.
[#​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
([#​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
([#​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 )
([#​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
([#​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`
([#​8850](https://redirect.github.com/stylelint/stylelint/pull/8850 ))
([@​romainmenke](https://redirect.github.com/romainmenke )).
- Fixed: `at-rule-no-unknown` false positives for `@function`
([#​8851](https://redirect.github.com/stylelint/stylelint/pull/8851 ))
([@​jeddy3](https://redirect.github.com/jeddy3 )).
- Fixed: `declaration-property-value-no-unknown` false positives for
`attr()`, `if()` and custom functions
([#​8853](https://redirect.github.com/stylelint/stylelint/pull/8853 ))
([@​jeddy3](https://redirect.github.com/jeddy3 )).
- Fixed: `function-url-quotes` false positives when URLs require quoting
([#​8804](https://redirect.github.com/stylelint/stylelint/pull/8804 ))
([@​taearls](https://redirect.github.com/taearls )).
- Fixed: `selector-pseudo-element-no-unknown` false positives for
`::scroll-button()`
([#​8856](https://redirect.github.com/stylelint/stylelint/pull/8856 ))
([@​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 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](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 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>vueuse/vueuse (@​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
[@​kolaente](https://redirect.github.com/kolaente ) in
[#​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
[@​kricsleo](https://redirect.github.com/kricsleo ) and
[@​9romise](https://redirect.github.com/9romise ) in
[#​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 [@​siavava](https://redirect.github.com/siavava ) and
[@​9romise](https://redirect.github.com/9romise ) in
[#​5049](https://redirect.github.com/vueuse/vueuse/issues/5049 )
[<samp>(62dfb)</samp>](https://redirect.github.com/vueuse/vueuse/commit/62dfb80a )
- **useTimeAgoIntl**: Custom units - by
[@​Menci](https://redirect.github.com/Menci ) in
[#​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
[@​YuchenWell](https://redirect.github.com/YuchenWell ), **Anthony
Fu** and [@​9romise](https://redirect.github.com/9romise ) in
[#​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
[@​toofishes](https://redirect.github.com/toofishes ) in
[#​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 [@​kricsleo](https://redirect.github.com/kricsleo ) in
[#​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
[@​xiaoxiaohuayu](https://redirect.github.com/xiaoxiaohuayu ) in
[#​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
[@​9romise](https://redirect.github.com/9romise ) in
[#​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
[@​michaelcozzolino](https://redirect.github.com/michaelcozzolino )
in [#​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
[@​keeplearning66](https://redirect.github.com/keeplearning66 ) and
[@​9romise](https://redirect.github.com/9romise ) in
[#​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
[@​huajianjiu](https://redirect.github.com/huajianjiu ) in
[#​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
[@​nhquyss](https://redirect.github.com/nhquyss ) in
[#​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
[@​babu-ch](https://redirect.github.com/babu-ch ) and
[@​9romise](https://redirect.github.com/9romise ) in
[#​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
[@​9romise](https://redirect.github.com/9romise ) in
[#​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 [@​ben-lau](https://redirect.github.com/ben-lau ),
**liubaobin** and [@​9romise](https://redirect.github.com/9romise )
in [#​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
[@​keeplearning66](https://redirect.github.com/keeplearning66 ),
**Robin** and **Anthony Fu** in
[#​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 ) |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](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