Skip to content

fix: LayoutContainer.destroy() disposes overflow container children#130

Merged
Zyie merged 4 commits into
mainfrom
fix/layout-container-destroy
Jun 12, 2026
Merged

fix: LayoutContainer.destroy() disposes overflow container children#130
Zyie merged 4 commits into
mainfrom
fix/layout-container-destroy

Conversation

@Zyie

@Zyie Zyie commented Apr 20, 2026

Copy link
Copy Markdown
Member

Overview

Fixes #123. LayoutContainer.destroy() previously only called super.destroy(), which — because Container mutation methods (addChild, removeChildren, etc.) are bound to overflowContainer — operated on the overflow container's children instead of the LayoutContainer's own structural children (background, overflowContainer, mask, stroke). The result was leaked children and a partially destroyed container.

The fix restores the original Container methods before teardown, explicitly destroys the overflowContainer so its children are disposed, then calls super.destroy() so the structural children are cleaned up properly. Also adapts to pixi.js 8.18.1 renames and bumps dev dependencies.

Fixes

Chores

  • Bump pixi.js to ^8.18.1 and adapt to renamed APIs (IRenderLayerRenderLayer, asset loadParser: 'loadTextures'parser: 'texture')
  • Bump @playwright/browser-chromium, playwright, @vitest/browser, @storybook/react-vite, and other dev dependencies
Pre-Merge Checklist
  • Tests and/or benchmarks are included
  • Documentation is changed or added

@pkg-pr-new

pkg-pr-new Bot commented Apr 20, 2026

Copy link
Copy Markdown

commit: c3042ed

@Zyie
Zyie force-pushed the fix/layout-container-destroy branch from 2c3e075 to b2fa19c Compare June 12, 2026 11:05
Zyie added 3 commits June 12, 2026 21:14
npm rebuild ran every dependency install script with output hidden; on a
cold cache the electron (242MB) and chromium (~170MB) binary downloads
could stall without a timeout and hang the job for hours. Tests only use
webkit, which the playwright install step still provides.
The webkit download can stall indefinitely on degraded runner networks
(socket timeout resets per received byte). Cache the browser binaries,
time-bound the install step and job, and auto-cancel superseded runs.
Playwright <1.60 hangs after browser downloads complete on recent Node 24
(microsoft/playwright#40998). This was the root cause of the CI jobs
hanging in npm rebuild (@playwright/browser-chromium postinstall) and in
the browser install step.
@Zyie
Zyie added this pull request to the merge queue Jun 12, 2026
Merged via the queue into main with commit c68f148 Jun 12, 2026
4 checks passed
@Zyie
Zyie deleted the fix/layout-container-destroy branch June 12, 2026 21:29
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.

Utility children of a LayoutContainer (overflow container, background, stroke and mask) are not being destroyed on destroy() call.

1 participant