Stop idle renderer allocation from status animations - #542
Conversation
Deploying mouseterm with
|
| Latest commit: |
8e9f39d
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://612d686d.mouseterm.pages.dev |
| Branch Preview URL: | https://memory-leak.mouseterm.pages.dev |
dormouse-bot
left a comment
There was a problem hiding this comment.
One non-blocking note: toPersistedAlertState in lib/src/lib/session-types.ts now duplicates toPersistedAlert in vscode-ext/src/session-state.ts, which hand-rolls the same status/todo/notification projection over the host's AlertState. Folding the latter into the new helper (alert ? toPersistedAlertState(alert) : fallback ?? null) would leave one place to edit the next time AlertState grows a never-persist field, and would also cover the one call in that file that skips the projection entirely — browserPersistedPane(pane, pane.alert ?? null) in refreshSavedSessionStateFromPtys, which writes a pre-this-PR watchingEnabled straight back out. Happy to push that as a commit if you want it here rather than as a follow-up.
Summary
Evidence
Measured in focused Chrome for Testing 150:
In both cases JS heap, DOM node count, and listener count stayed flat. The growth was renderer-side work tied to a live CSS animation, matching the issue's wall-clock/no-terminal-output signature.
Tests
CI=true pnpm testFixes #483