Commit Graph

12726 Commits

Author SHA1 Message Date
XiangCany
d238385199 fix(files): make sure base directory exists when using local file system (#2166)
Resolves  #2162
2026-01-27 13:11:44 +01:00
kolaente
3aa1e90d7f feat: add vikunja doctor command for diagnostic checks (#2165)
Add a new `vikunja doctor` CLI command that performs diagnostic checks.

Checks performed:

- **System**: Version, Go version, OS/arch, running user, working
directory
- **Configuration**: Config file path, public URL, JWT secret, CORS
origins
- **Database**: Connection test, server version
(SQLite/MySQL/PostgreSQL)
- **Files**: Storage path, writability, disk space (Unix only)
- **Optional services** (when enabled):
  - Redis: Connection ping
  - Typesense: Health endpoint
  - Mailer: SMTP connection
  - LDAP: Bind authentication test
  - OpenID Connect: Discovery endpoint for each configured provider
2026-01-27 09:12:31 +00:00
kolaente
d61caab168 feat: add required checkbox to confirm issue search before submission
Adds a pre-submission checklist to both bug report and feature request
templates requiring users to confirm they have searched for existing
issues before opening a new one.
2026-01-27 08:54:22 +01:00
kolaente
28593e6460 fix: use dark shadows for email template in dark mode (#2155) 2026-01-26 15:46:44 +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]
5b0960e5e7 fix(deps): update module github.com/redis/go-redis/v9 to v9.17.3 (#2153)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[github.com/redis/go-redis/v9](https://redirect.github.com/redis/go-redis)
| `v9.17.2` → `v9.17.3` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fredis%2fgo-redis%2fv9/v9.17.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fredis%2fgo-redis%2fv9/v9.17.2/v9.17.3?slim=true)
|

---

### Release Notes

<details>
<summary>redis/go-redis (github.com/redis/go-redis/v9)</summary>

###
[`v9.17.3`](https://redirect.github.com/redis/go-redis/releases/tag/v9.17.3):
9.17.3

[Compare
Source](https://redirect.github.com/redis/go-redis/compare/v9.17.2...v9.17.3)

#### 🐛 Bug Fixes

- **Connection Pool**: Fixed zombie `wantConn` elements accumulation in
`wantConnQueue` that could cause resource leaks in high concurrency
scenarios with dial failures
([#&#8203;3680](https://redirect.github.com/redis/go-redis/pull/3680))
by [@&#8203;cyningsun](https://redirect.github.com/cyningsun)
- **Stream Commands**: Fixed `XADD` and `XTRIM` commands to use exact
threshold (`=`) when `Approx` is false, ensuring precise stream trimming
behavior
([#&#8203;3684](https://redirect.github.com/redis/go-redis/pull/3684))
by [@&#8203;ndyakov](https://redirect.github.com/ndyakov)
- **Connection Pool**: Added `ConnMaxLifetimeJitter` configuration to
distribute connection expiration times and prevent the thundering herd
problem when many connections expire simultaneously
([#&#8203;3666](https://redirect.github.com/redis/go-redis/pull/3666))
by [@&#8203;cyningsun](https://redirect.github.com/cyningsun)
- **Client Options**: Added `DialerRetries` and `DialerRetryTimeout`
fields to `ClusterOptions`, `RingOptions`, and `FailoverOptions` to
allow configuring connection retry behavior for cluster, ring, and
sentinel clients
([#&#8203;3686](https://redirect.github.com/redis/go-redis/pull/3686))
by
[@&#8203;naveenchander30](https://redirect.github.com/naveenchander30)

#### Contributors

We'd like to thank all the contributors who worked on this release!

[@&#8203;cyningsun](https://redirect.github.com/cyningsun),
[@&#8203;naveenchander30](https://redirect.github.com/naveenchander30),
and [@&#8203;ndyakov](https://redirect.github.com/ndyakov)

***

**Full Changelog**:
<https://github.com/redis/go-redis/compare/v9.17.2...v9.17.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:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Mi4xIiwidXBkYXRlZEluVmVyIjoiNDIuOTIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-25 15:41:10 +01:00
kolaente
b21c9acb0d fix(routes): restore SPA routing after Echo v5 upgrade
In Echo v5, the 404 error for unmatched routes implements the
HTTPStatusCoder interface but is not a *HTTPError. This caused
the static middleware to fail to catch 404s and serve index.html
for SPA routes, leading to reloading SPA routes returning 404.

Caused by regression introduced in 9a61453e8.

Fixes #2149
Fixes #2152
2026-01-25 11:07:48 +01:00
renovate[bot]
233908b30b chore(deps): update dependency sass-embedded to v1.97.3 (#2150)
This PR contains the following updates:

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

---

### Release Notes

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

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

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

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

</details>

---

### Configuration

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

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

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

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

---

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

---

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

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-25 08:59:41 +01:00
kolaente
375eb37cf3 chore: v1.0.0-rc4 release preparations v1.0.0-rc4 2026-01-24 21:11:50 +01:00
kolaente
ee4b5a63f4 feat(dev): add mage command to release 2026-01-24 20:41:21 +01:00
renovate[bot]
9a61453e86 fix(deps): update module github.com/labstack/echo/v4 to v5 (#2131)
Closes https://github.com/go-vikunja/vikunja/pull/2133

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kolaente <k@knt.li>
2026-01-24 20:38:32 +01:00
renovate[bot]
83474b76d3 fix(deps): update dependency @sentry/vue to v10.36.0 (#2147)
This PR contains the following updates:

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

---

### Release Notes

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

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

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

</details>

---

### Configuration

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

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

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

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

---

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

---

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

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

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

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

Fixes #1663
2026-01-24 18:41:42 +01:00
kolaente
5050cd7162 chore(dev): add prepare worktree command to mage 2026-01-24 18:32:23 +01:00
kolaente
4df8da549e fix(auth): scope query binding
Resolves https://github.com/go-vikunja/vikunja/issues/2146
2026-01-24 17:51:35 +01:00
kolaente
731b7c3001 fix: avoid mutating global http.DefaultClient in webhook proxy (#2145)
Fixes a bug where the webhook HTTP client was mutating `http.DefaultClient` (the global singleton), causing ALL HTTP requests in the application to use the webhook proxy. This broke OIDC authentication and other external HTTP calls when webhook proxy was configured.

Fixes #2144
2026-01-24 13:58:47 +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
kolaente
0cd25f47e5 fix: populate complete entity data in deletion event webhooks (#2135)
Fixes webhook payloads for deletion events that were previously
containing incomplete or empty entity data. This occurred because
entities were being deleted from the database before the webhook event
was dispatched.

## Changes

This PR implements four targeted fixes to ensure complete entity data in
deletion event webhooks:

### 1. TaskAssignee Deletion (`pkg/models/listeners.go`)
- Extended `reloadEventData()` to fetch full assignee user data by ID
- Webhook payload now includes complete user object (username, email,
timestamps, etc.)

### 2. TaskComment Deletion (`pkg/models/task_comments.go`)
- Modified `Delete()` to call `ReadOne()` before deletion
- Ensures comment text, author, and timestamps are included in webhook
payload
- Follows the same pattern used by `Task.Delete()` and
`TaskAttachment.Delete()`

### 3. TaskAttachment Deletion (`pkg/models/task_attachment.go`)
- Extended `ReadOne()` to fetch the `CreatedBy` user
- Webhook payload now includes file creator information

### 4. TaskRelation Deletion (`pkg/models/task_relation.go`)
- Modified `Delete()` to fetch complete relation including `CreatedBy`
user before deletion
- Webhook payload now includes relation timestamps and creator
information

Fixes #2125
2026-01-24 12:50:18 +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]
a86bbfa121 fix(deps): update module github.com/labstack/echo/v4 to v4.15.0 2026-01-23 17:21:54 +01: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]
89c0548e16 fix(deps): update module github.com/labstack/echo-jwt/v4 to v5 2026-01-22 11:30:56 +01:00
renovate[bot]
0e5e135e72 fix(deps): update module github.com/labstack/echo/v4 to v5 2026-01-22 11:02:04 +01:00
renovate[bot]
a64364fdc2 chore(deps): update crowdin/github-action digest to b4b468c 2026-01-22 11:01:30 +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]
7aa6883e76 chore(deps): update actions/cache digest to 8b402f5 2026-01-17 21:59:34 +01:00
renovate[bot]
d91da07ce3 fix(deps): update module github.com/olekukonko/tablewriter to v1.1.3 2026-01-17 21:59:23 +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]
606d10f9e3 chore(deps): update postgres:18 docker digest to 5773fe7 2026-01-16 11:17:50 +01:00
renovate[bot]
e2a169757d fix(deps): update module github.com/getsentry/sentry-go/echo to v0.41.0 2026-01-16 10:18:19 +01:00
renovate[bot]
81076e5309 chore(deps): update dev-dependencies to v8.53.0 2026-01-16 10:18:10 +01:00
renovate[bot]
58286619f5 chore(deps): update mariadb:12 docker digest to f54db0c 2026-01-16 10:18:00 +01:00
renovate[bot]
a9a70c15d7 chore(deps): update ghcr.io/techknowlogick/xgo:go-1.25.x docker digest to 11ac5e6 2026-01-16 10:17:44 +01:00
renovate[bot]
adc4c39103 chore(deps): update dependency go to v1.25.6 2026-01-15 22:08:58 +01:00
renovate[bot]
843ef7218a fix(deps): update module github.com/fclairamb/afero-s3 to v0.4.0 (#2087) 2026-01-15 16:21:16 +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]
5b0e9563cc chore(deps): update postgres:18 docker digest to 2d417d4 2026-01-15 09:42:58 +01:00
renovate[bot]
05e01b4212 chore(deps): update dev-dependencies 2026-01-15 09:42:53 +01:00
renovate[bot]
0b1f5d0024 chore(deps): update actions/setup-node digest to 6044e13 2026-01-15 09:42:39 +01:00