Skip to content

WidgetRenderer: GC virtualList/table state + render caches#26

Merged
RtlZeroMemory merged 1 commit intomainfrom
feat/widgetrenderer-gc-stores-caches
Feb 11, 2026
Merged

WidgetRenderer: GC virtualList/table state + render caches#26
RtlZeroMemory merged 1 commit intomainfrom
feat/widgetrenderer-gc-stores-caches

Conversation

@RtlZeroMemory
Copy link
Copy Markdown
Owner

Fixes P2 leak risk: churny ids could leave behind virtualList/table local state and render caches.

Changes:

  • WidgetRenderer GC removes virtualListStore + tableStore entries for unmounted widget ids.
  • renderCaches: prunes *RenderCacheById maps for removed widgets during routing rebuild.
  • Adds integration test to ensure state resets after unmount/remount.
  • Stabilizes widgetMeta perf tests (warmup + larger workload) to avoid timing flakiness.

Tests:

  • npm run lint
  • npm run typecheck -- --force
  • npm test

Note: npm run test:e2e is linux-only by design.

- Delete virtualListStore/tableStore entries for unmounted ids

- Prune *RenderCacheById maps during routing rebuild

- Add integration test covering state reset after unmount

- Stabilize widgetMeta perf tests (warmup + larger workload)
@RtlZeroMemory RtlZeroMemory force-pushed the feat/widgetrenderer-gc-stores-caches branch from 5cec34d to 8a937d3 Compare February 11, 2026 07:54
@RtlZeroMemory RtlZeroMemory merged commit 09373be into main Feb 11, 2026
16 of 19 checks passed
@RtlZeroMemory RtlZeroMemory deleted the feat/widgetrenderer-gc-stores-caches branch February 11, 2026 07:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant