Files
windmill/frontend
Guilhem LemouelandClaude Opus 4.8 086a2c3e4b perf(sessions): cap warm session runtimes to bound /sessions memory growth
The /sessions sidebar eagerly warmed a full runtime (AIChatManager + loaded
chat history + an IndexedDB connection) for every visible session, so the
page's mounted weight grew linearly (O(number of non-archived in-family
sessions)) and never released as sessions accumulate over time.

Cap the warm runtimes with an MRU (the active session + up to
MAX_WARM_RUNTIMES) and dispose the rest, mirroring the existing preview-tab
and editor MRU caps. Sessions holding volatile state — a mid-stream
generation, a pending tool confirmation, or unsent composer text — are kept
warm so nothing is cancelled or lost (protect-not-persist; the composer draft
lives in AIChatInput local state and isn't persisted). Cold (evicted)
sessions show the neutral status dot with no unread badge until reopened.

Measured ~1.5-2x the transcript size per resident session; the change
converts O(N) growth into O(1).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 16:04:00 +02:00
..
2026-01-22 16:20:01 +00:00
2025-12-23 18:19:30 +00:00
…
2026-02-19 09:33:33 +00:00
2026-03-05 18:11:40 +01:00
…
…
2026-01-22 16:20:01 +00:00
…
2026-03-18 11:38:22 +00:00

Windmill frontend

The Windmill frontend written in Svelte 5 + Tailwind CSS

The frontend is under AGPL, see the LICENSE file at the root of this repo