mirror of
https://github.com/penpot/penpot.git
synced 2026-10-29 22:10:34 +00:00
The queue middleware is shared by every route, and a request holds its queue slot for its whole lifetime. An SVG request waiting for a free worker therefore occupied a global slot, and image and font requests queued behind it even though the SVG work runs on its own threads. SVG now has its own queue, so its waits only affect other SVG requests. Image and font keep sharing one queue. The app wiring moves to `app.ts` (`createApp`), apart from `index.ts` (which loads the config, wires the services and listens), so a test can build the real app without starting a server; `queue-isolation.test.ts` uses it to prove a pending SVG request does not block an image request. AI-assisted-by: deepseek-v4.1-flash