Commit Graph

12599 Commits

Author SHA1 Message Date
kolaente
02cd648a96 chore(deps): update qs to 6.14.1 2026-01-05 22:24:41 +01:00
kolaente
c6fe4c1a6e fix(auth): retry up to three times when an auth provider cannot be reached
Resolves https://github.com/go-vikunja/vikunja/issues/2050
2026-01-05 21:50:40 +01:00
renovate[bot]
fde0944cda fix(deps): update module github.com/yuin/goldmark to v1.7.15 2026-01-05 21:05:25 +01:00
renovate[bot]
e41eb2848c fix(deps): update dependency vue-i18n to v11.2.8 2026-01-04 15:38:09 +01:00
renovate[bot]
6cec897e71 fix(deps): update module github.com/yuin/goldmark to v1.7.14 2026-01-04 15:37:50 +01:00
Frederick [Bot]
9443d628d6 chore(i18n): update translations via Crowdin 2026-01-04 01:07:11 +00:00
renovate[bot]
dbb66bd704 chore(deps): update postgres:18 docker digest to bfe50b2 2026-01-03 09:27:01 +01:00
renovate[bot]
d0f8fde74d chore(deps): update dev-dependencies 2026-01-03 09:26:47 +01:00
renovate[bot]
69603da84c fix(deps): update module github.com/labstack/echo/v4 to v4.15.0 2026-01-03 09:26:31 +01:00
renovate[bot]
2dc775c8fe fix(deps): update module github.com/mattn/go-sqlite3 to v1.14.33 2026-01-03 09:26:20 +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
renovate[bot]
705e3468c0 chore(deps): update postgres:18 docker digest to b870e6b (#2035)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| postgres | service | digest | `38d5c9d` -> `b870e6b` |

---

### 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-30 09:18:27 +01:00
Frederick [Bot]
7d4a267ceb chore(i18n): update translations via Crowdin 2025-12-30 00:59:31 +00:00
kolaente
6afb166dd2 feat: add shortcut to quickly copy task identifier, title and url to clipboard (#2028)
This adds the following shortcuts:

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

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

---

### Release Notes

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

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

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

##### Important Changes

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

##### Other Changes

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

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

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

</details>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

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

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

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

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

---

### Release Notes

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

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

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

##### Bug Fixes

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

##### Performance Improvements

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

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

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

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-21 14:19:33 +00:00
kolaente
a9adc3490d fix(positions): detect and repair duplicate task positions automatically (#1998)
Relates to:
https://community.vikunja.io/t/reordering-not-possible-position-value-the-same-for-different-tasks/4078

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

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

🐰 Positions once conflicted, clustered tight,
But now we nudge them back into the light!
MinSpacing guards precision from decay,
While conflicts heal and duplicates give way. 
2025-12-20 19:38:28 +01:00
kolaente
fd33f1fa48 chore(deps): update devenv 2025-12-20 19:13:51 +01:00
renovate[bot]
0bb04e9c39 fix(deps): pin dependency nanoid to 5.1.6 (#2008)
This PR contains the following updates:

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

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

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

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

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

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

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

---

### Release Notes

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

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

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

##### Important Changes

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

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

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

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

**Before:**

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

**After:**

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

##### Other Changes

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

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

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

</details>

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

#### Bundle size 📦

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

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

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

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

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

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

---

### Release Notes

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

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

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

##### 🚀 Features

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

##### ❤️ Thank You

- Josh Goldberg 
- Ulrich Stark

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

</details>

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

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

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

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

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

</details>

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

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

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

*2025-12-16*

##### Bug Fixes

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

##### Pull Requests

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

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

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

*2025-12-15*

##### Bug Fixes

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

##### Pull Requests

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

</details>

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

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

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

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

</details>

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

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

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

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

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

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

---

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

---

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

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 17:16:11 +01:00
renovate[bot]
9f184c7244 chore(deps): update docker/setup-buildx-action digest to 8d2750c (#2006)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[docker/setup-buildx-action](https://redirect.github.com/docker/setup-buildx-action)
([changelog](e468171a9d..8d2750c68a))
| action | digest | `e468171` -> `8d2750c` |

---

### 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 17:15:59 +01:00
kolaente
ef1efbc29a fix(editor): make sure checkbox lists are unique (#2007)
This fixes a checkbox persistence bug where toggling one checkbox would affect others with identical text. To make this work, a new unique `data-task-id` attribute was added to each task list item for reliable identification.

Fixes #293, #563

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

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

---

### Release Notes

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

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

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

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

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

---

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

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-18 13:54:49 +01:00
renovate[bot]
484de1c255 chore(deps): update node.js to c921b97 (#2001)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [node](https://redirect.github.com/nodejs/node) | stage | digest |
`7e0bd04` -> `c921b97` |

---

### 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 09:39:52 +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]
b0655c5fc6 chore(deps): pin ghcr.io/techknowlogick/xgo docker tag to 3c00822 (#2000)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| ghcr.io/techknowlogick/xgo | final | pinDigest |  -> `3c00822` |

---

### 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-17 23:43:41 +01:00
kolaente
b9c120f9fb fix(docker): update xgo docker builder stage image to 1.25.x 2025-12-17 22:49:16 +01:00
renovate[bot]
93baac7e03 chore(deps): update dev-dependencies (#1999)
This PR contains the following updates:

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

---

### Release Notes

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

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

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

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

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

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

[Compare
Source](a70b65ee4e...f2f98bd5f9)

</details>

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

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

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

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

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3
* * * ) (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

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

---

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

---

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

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

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

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

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

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

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

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <13721712+kolaente@users.noreply.github.com>
2025-12-16 23:05:42 +00:00
kolaente
4993ea2bbe fix(editor): prevent TypeError when typing mentions in comments (#1997)
Fix TypeError when typing `@` mentions in task comments, add null checks for `component` variable in `mentionSuggestion.ts` to handle race conditions where `onUpdate` or `onKeyDown` fire before `onStart` completes
2025-12-16 22:56:05 +00:00
kolaente
82558dba87 fix(filters): ensure saved filter views never have position=0 (#1996)
Fixes #724 - Tasks in saved filter views get `position: 0` when they first appear in the filter, causing drag-and-drop sorting to not persist correctly.

**Changes:**
- Remove harmful `Position: 0` inserts from cron job and
`SavedFilter.Update` - `RecalculateTaskPositions` already creates
positions with proper values, so the intermediate inserts created a race
window
- Add on-demand position creation when fetching tasks for saved filter
views - safety net for newly matching tasks before the cron runs
- Add 5 new tests covering the fix and regression scenarios

🐰 Positions once zero, now bloom with care,
Sorted with grace, no more despair,
When filters call and tasks appear,
Numbers spring up, crystal clear!
Issue 724 hops away—
Sorting's fixed to stay, hooray! 🎉
2025-12-16 22:13:40 +00:00
kolaente
8adf0ef0a0 chore(ai): add prepare workspace skill 2025-12-16 23:13:14 +01: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
kolaente
770e4cbe66 fix(ci): fix unstable suffix not renamed for desktop release builds 2025-12-16 22:35:49 +01:00
kolaente
4afd223cd3 fix(files): upload should work with vhost style (#1994)
resolves https://github.com/go-vikunja/vikunja/issues/1905
2025-12-16 20:32:15 +00:00