Commit Graph
14923 Commits
Author SHA1 Message Date
renovate[bot]andkolaente 976e84efaa fix(deps): update module charm.land/lipgloss/v2 to v2.0.6 2026-08-17 13:34:56 +02:00
renovate[bot]andkolaente af2f735a39 chore(deps): update cachix/install-nix-action action to v31.11.1 2026-08-17 13:31:23 +02:00
renovate[bot]andkolaente 4b27de44e7 fix(deps): update dependency marked to v18.0.9 2026-08-17 12:38:53 +02:00
renovate[bot]andkolaente 70db5bce84 fix(deps): update module golang.org/x/image to v0.45.0 2026-08-17 12:35:09 +02:00
renovate[bot]andkolaente 3ffea20a16 fix(deps): update dependency vue to v3.5.41 2026-08-17 12:21:11 +02:00
renovate[bot]andkolaente 468e50f4f4 chore(deps): update dependency postcss to v8.5.26 2026-08-17 12:18:40 +02:00
renovate[bot]andkolaente 6569148088 chore(deps): update dependency go to v1.26.6 2026-08-17 12:15:01 +02:00
renovate[bot]andkolaente d41f637068 chore(deps): update docker/dockerfile:1 docker digest to ecfaec9 2026-08-17 12:03:41 +02:00
kolaente b6037a2562 chore(deps): update fast-uri to 3.1.5 2026-08-17 11:35:52 +02:00
kolaente a9b7c89bfb chore(deps): update brace-expansion to 5.0.9 in desktop 2026-08-17 11:35:41 +02:00
kolaente 2b22f0661e chore(deps): update brace-expansion to 5.0.9 2026-08-17 11:35:17 +02:00
kolaente c7dc7844f1 chore(deps): update js-yaml to 3.15.1 2026-08-17 11:35:14 +02:00
kolaente 6314285564 chore(deps): update nanoid to 3.3.18 2026-08-17 11:35:06 +02:00
kolaente c901cedf48 chore(deps): drop redundant esbuild devDependency
Nothing imports esbuild directly and the pnpm override already forces
0.28.1 on all transitive copies, so the direct pin had no effect.
2026-08-17 11:26:51 +02:00
dependabot[bot]andkolaente d053ffec29 chore(deps): bump nanoid from 3.3.16 to 6.0.1 in /frontend
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.16 to 6.0.1.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.3.16...6.0.1)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-version: 6.0.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-17 11:03:40 +02:00
renovate[bot]andkolaente 9d6928663f chore(deps): update ghcr.io/techknowlogick/xgo:go-1.26.x docker digest to 1a7c89c 2026-08-17 10:58:51 +02:00
renovate[bot]andkolaente cf5f3f9f6d fix(deps): update aws-sdk-go-v2 monorepo 2026-08-17 10:18:22 +02:00
renovate[bot]andkolaente dddbc2f330 fix(deps): update dependency nanoid to v6.0.1 2026-08-17 10:18:08 +02:00
renovate[bot]andkolaente 11730960e2 chore(deps): update dependency undici@7 to v8.10.0 2026-08-17 10:17:38 +02:00
renovate[bot]andkolaente 315087dff2 chore(deps): update dev-dependencies 2026-08-17 10:17:29 +02:00
renovate[bot]andkolaente 97f2515dcc chore(deps): update pnpm to v11.21.0 2026-08-17 10:17:15 +02:00
renovate[bot]andkolaente 5cf77228e4 chore(deps): update danielroe/provenance-action digest to 2fb14fe 2026-08-17 10:17:04 +02:00
renovate[bot]andkolaente 268f1d79b4 fix(deps): update dependency dompurify to v3.4.13 [security] 2026-08-17 10:16:52 +02:00
Frederick [Bot] a7e0f51325 [skip ci] Updated yaegi symbols 2026-08-16 16:27:32 +00:00
kolaente 6d2b5aff54 fix: load export file meta inside transaction and open storage after commit
v1 queried on an already-committed session; v2 opened storage while
still holding the transaction. Both now load meta under the tx, commit,
then open the file. Addresses pr-swarm findings.
2026-08-16 17:57:52 +02:00
kolaente 263c24f0b7 feat: expose database connection pool stats as prometheus metrics 2026-08-16 17:57:52 +02:00
kolaente 96ddc10110 fix: release db connection before reading attachment files from storage
Preview generation reads the whole file (a network round trip on s3),
decodes and resizes it — seconds per image — while the request
transaction pinned a pool connection. A board full of image previews
could drain the pool. Commit first; the storage read needs no
transaction.
2026-08-16 17:57:52 +02:00
kolaente 044106508a fix: use caller's session in LoadFileMetaByID to prevent connection pool deadlock
Querying the global engine while the request already holds an open
transaction acquires a second pool connection. Under concurrent
attachment downloads (e.g. a kanban board full of image previews) all
pool connections end up held by transactions that each wait for an
extra connection that can never be freed, hanging every request until
restart.

The redundant meta load in the upload avatar provider is removed
entirely; the decoded image is all that path uses.
2026-08-16 17:57:52 +02:00
Frederick [Bot] ce2c3bce97 chore(i18n): update translations via Crowdin 2026-08-16 00:05:29 +00:00
Frederick [Bot] 9403ed1526 chore(i18n): update translations via Crowdin 2026-08-07 01:08:25 +00:00
kolaente 0db760752f test: ensure previous pagination button on first page does not navigate to negative page 2026-08-05 23:20:19 +02:00
kolaente 2812ace274 fix: disable pagination previous/next links instead of rendering dead router links 2026-08-05 23:20:19 +02:00
kolaente 88e8bcf250 feat: drop columns for real in SQLite migrations
SQLite supports ALTER TABLE DROP COLUMN since 3.35 and the bundled
driver ships 3.50.x, so dropTableColum no longer needs to skip SQLite
with a warning that leaves dead columns behind.
2026-08-05 19:35:11 +02:00
kolaente 7e4df58342 feat: report ParadeDB extension and index status in doctor command 2026-08-05 19:27:12 +02:00
kolaente 10cfb6ae8d fix: don't tag prerelease docker images as latest
The unconditional type=raw,value=latest applied the latest tag to every
pushed git tag, including prereleases like v1.0.0-rc1. Removing it lets
metadata-action's default latest=auto flavor handle it, which only tags
latest for non-prerelease semver versions.

Fixes #2161
2026-08-05 19:17:38 +02:00
renovate[bot]andkolaente b53ab91711 chore(deps): update node.js to v24.19.0 2026-08-05 14:22:52 +02:00
renovate[bot]andkolaente b7e0ed40ff chore(deps): update dependency basic-ftp to v6.2.0 2026-08-05 14:17:43 +02:00
renovate[bot]andkolaente 396d2c7c7a chore(deps): update dependency @types/codemirror to v5.60.18 2026-08-05 14:17:18 +02:00
renovate[bot]andkolaente 5fcc3d4f85 chore(deps): update dependency basic-ftp to v6.1.0 2026-08-04 21:48:11 +02:00
TinkandGitHub 813e953db1 fix(static): don't unescape already-decoded request paths (#3437) 2026-08-04 19:31:59 +00:00
kolaente 937ee313b1 fix(migration): don't fail todoist migration on undownloadable attachments
Todoist returns opaque identifiers instead of urls in file_url for
attachments it does not host itself (mail attachments for example).
Passing those to the http client failed with "unsupported protocol
scheme" and aborted the entire migration.

Skip attachments without an http(s) url and log-and-continue when a
single download fails instead of failing the whole migration.
2026-08-04 21:21:05 +02:00
8d92393ea3 fix(ci): bump LLM-action fork pin to root-container fix (#3430)
The auto-label workflow's LLM call succeeds, but the docker action ran
as a non-root user (`USER appuser` in the Dockerfile) and could not
write the runner's `GITHUB_OUTPUT` file:

```
Error: failed to set output: ... open /github/file_commands/set_output_...: permission denied
```

GitHub docker actions must run as root — the runner's file-command files
are owned by the runner user. Fixed in the fork
(tink-bot/LLM-action@8526bab removes the non-root user) and bumped the
pin here.

Failing run:
https://github.com/go-vikunja/vikunja/actions/runs/30904804523/job/91977288580

Co-authored-by: kolaente <k@knt.li>
2026-08-04 13:56:36 +00:00
kolaente 5b282faa09 fix(packaging): stop rpm upgrades from replacing the config
The config was shipped as plain `%config`, so rpm installs the packaged
file on every upgrade and moves the user's version aside as `.rpmsave`.
The postinstall script then re-ran its seds against the fresh sample and
generated a new JWT secret, logging everyone out — with the real config
no longer in place.

Mark it `config|noreplace` so rpm keeps the existing file and writes
`.rpmnew` instead. deb and apk treat the type exactly like `config`, so
nothing changes there.
2026-08-04 15:19:27 +02:00
kolaente caaff7ae9a fix(packaging): run the postinstall script on apk and arch upgrades
nfpm only maps `scripts.postinstall` to apk's `.post-install` and
archlinux's `post_install`, both of which run on a fresh install. Their
upgrade hooks come from the packager-specific `apk.scripts.postupgrade`
and `archlinux.scripts.postupgrade` keys, which we never set — so
upgrading on Alpine or Arch executed no maintainer script whatsoever, and
the restart added in the previous commit would never have fired there.

Point both at the matching install script.
2026-08-04 15:19:27 +02:00
kolaente 16185a5d6d fix(packaging): restart the service on package upgrades
The postinstall script only ran `systemctl enable`, which creates the
wants-symlink and nothing else. On an upgrade the package manager
replaced the binary while the old process kept running the old inode, so
users had to restart vikunja by hand to get the new version. Changes to
vikunja.service were never picked up either, for lack of a
`daemon-reload`.

Add a daemon-reload plus `try-restart` (`rc-service restart` on OpenRC).
try-restart is a no-op while the unit is stopped, so fresh installs keep
their current behaviour of being enabled but not started.

The config fixups move above the service handling so a restart never
races a half-patched config.
2026-08-04 15:19:27 +02:00
kolaente 339b9a2deb feat: regenerate and commit swagger docs and yaegi symbols during release tagging 2026-08-04 14:33:57 +02:00
Frederick [Bot] 734d50d787 [skip ci] Updated yaegi symbols 2026-08-04 12:16:25 +00:00
kolaente ef2200e942 chore: v2.5.0 release preparations v2.5.0 2026-08-04 13:42:43 +02:00
kolaente d545e3bbb1 refactor: drop redundant link share branch in comment permissions
GetID() delegates to getUserID(), so both branches compute the same value.
2026-08-04 13:40:11 +02:00
kolaente ed8dc89f75 fix: report the real link share id in saved filter errors
auth.GetID() is now negated, so ErrSavedFilterNotAvailableForLinkShare
carried a value that is not a link share id.
2026-08-04 13:40:11 +02:00