kolaente 34c779e209 fix(caldav): stop answering requests out of process-wide state
The handlers configured caldav-go through its setup functions, which write
package-level globals that HandleRequest then reads. Between a request's setup
and its handling another request could overwrite them, so two users syncing at
the same time could be answered from each other's storage - the wrong user, the
wrong projects.

caldav-go takes the state per request now, so pass it there instead. A test
driving eight concurrent requests per user fails against the old code both as a
race report and as user1 receiving user15's calendar.

TaskHandler never set a user or the supported components at all, so it answered
current-user-principal with whichever username the last request happened to
leave behind. It gets them like the others now.
2026-08-19 22:24:21 +02:00
2026-07-19 12:58:41 +02:00
2026-08-04 00:24:53 +02:00
2026-08-04 13:42:43 +02:00

Build Status License: AGPL-3.0-or-later Install Docker Pulls OpenAPI Docs

Vikunja

The task manager you actually own.

If Vikunja is useful to you, please consider supporting the project. You can buy a coffee, sponsor on GitHub or buy a sticker pack. We're also offering a hosted version of Vikunja if you want a hassle-free solution for yourself or your team. If you or your company needs admin panel, audit logs or time tracking, check out Vikunja Pro.

Note

For the development of Vikunja, we're using LLM-Assisted coding tools in various parts of the codebase. Most contributions made @tink-bot are built that way.

Table of contents

Security Reports

If you find any security-related issues you don't want to disclose publicly, please use the contact information on our website.

Features

See the features page on our website for a more exhaustive list or try it on try.vikunja.io!

Docs

All docs can be found on the Vikunja home page.

Roadmap

See the roadmap (hosted on Vikunja!) for more!

Contributing

Please check out the contribution guidelines on the website.

License

Most of this repository is licensed under AGPL3.0orlater. The contents of desktop/ are licensed under GPL3.0orlater.

Unsplash Images

Background images from Unsplash are distributed under the Unsplash License. The license requires giving credit to the photographer and Unsplash. See Unsplashs terms for more information.

S
Description
No description provided
Readme AGPL-3.0
1.3 GiB
Latest
2026-08-04 06:42:44 -05:00
Languages
Go 50.5%
JavaScript 30.3%
TypeScript 10%
Vue 8.5%
SCSS 0.3%
Other 0.2%