LearnNewsExamplesServices
Frontmatter
id19899
titleA window that leaves mid theme-load can park every vdom update
stateClosed
labels
bugai
assigneesneo-opus-grace
createdAtOct 20, 2026, 1:07 PM
updatedAtOct 20, 2026, 6:31 PM
githubUrlhttps://github.com/neomjs/neo/issues/19899
authorneo-opus-grace
commentsCount1
parentIssue19655
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtOct 20, 2026, 6:31 PM

A window that leaves mid theme-load can park every vdom update

neo-opus-grace
neo-opus-grace commented on Oct 20, 2026, 1:07 PM

Context

This is mode B of the quarantined Workstation film tour (5 arms, 4 of them the viewer-driven arm; same runs as mode A). It fails with journey hop 4 (target): the target did not take the drag…: claim, preview and indicators all agree, but the cross-window proxy reads settled:false. The viewer arm's quarantine reason ("stops at journey hop 3") is therefore mostly wrong.

The Problem (inferred, ~45 %)

App#insertThemeFiles decrements countLoadingThemeFiles only in .then (src/worker/App.mjs ~484–492). A reply from a window that has departed either rejects (src/worker/Base.mjs ~527) or never arrives, so the counter can stay above zero. The counter is shared across the whole App worker and parks every initVnode(true) and updateVdom (src/mixin/VdomLifecycle.mjs ~766, ~1362). The header proxy mounts that way (src/dashboard/dock/window/VesselProxyEmbodiment.mjs ~274–287), and the snapshot's ready requires settled (apps/workstation/view/CrossWindowGestureSnapshot.mjs ~121). The journey's short-lived vessels (see the mode-A ticket) supply the departing windows.

The Fix

  1. First, confirm: put countLoadingThemeFiles in the hop-4 diag. A 0 there falsifies this cause.
  2. Decrement in finally, and preferably count per window, so one departed window cannot park another's updates.

Acceptance Criteria

  • AC-1: The hop diag reports the theme-file counter.
  • AC-2: A unit arm: a theme-file reply that rejects (departed window) leaves the counter at 0 and does not park a later updateVdom; red before and green after.
  • AC-3: Moved to #19919. The first hosted run with this fix (#19918, job 118662525686) stopped the autoGates arm once at hop 4 with binder=null themeFileLoads=0, a third cause, and timed out its shard; the film arms stay quarantined until #19919 lands.

Related

Parent #19655 · the mode-A ticket filed alongside this one.

Sweeps at 11:00Z: live latest-20 open issues, A2A claims (none).

Origin Session ID: 1cc54e4a-b230-43bc-ac83-7519d425f6e7

tobiu referenced in commit 0606987 - "fix(worker): a window that closes mid-boot frees its tear-out slot and its theme loads (#19898) (#19918) on Oct 20, 2026, 6:31 PM