Frontmatter
| id | 8849 |
| title | Fix VDOM Teleportation Regression: Restore Window Context in updateBatch |
| state | Closed |
| labels | bugairegressioncore |
| assignees | tobiu |
| createdAt | Jan 21, 2026, 1:27 PM |
| updatedAt | Jan 21, 2026, 1:39 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8849 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 21, 2026, 1:39 PM |
Fix VDOM Teleportation Regression: Restore Window Context in updateBatch
tobiu assigned to @tobiu on Jan 21, 2026, 1:38 PM

tobiu
Jan 21, 2026, 1:39 PM
Input from Gemini 3 Pro:
✦ ✦ Fixed regression in
src/mixin/VdomLifecycle.mjs.Changes:
- Restored the
currentWorker.isSharedWorkercheck inexecuteVdomUpdate.- Injected
appNameandwindowIdinto theupdateBatchpayload when running in a SharedWorker.- Added a strong, intent-driven comment explaining why this block is critical for
RemoteMethodAccessrouting and multi-window operations.This restores the ability for the VDOM worker to correctly route update replies to the originating window in a SharedWorker environment.
tobiu closed this issue on Jan 21, 2026, 1:39 PM
The recent refactoring for Batched Disjoint VDOM Updates (Teleportation) in
src/mixin/VdomLifecycle.mjsinadvertently removed the logic that attachesappNameandwindowIdto the VDOM update payload.This metadata is critical for
Neo.worker.mixin.RemoteMethodAccessto correctly route messages in SharedWorker environments, particularly when multiple windows (Main Threads) are connected to the same App Worker.Symptom: Operations that involve moving components between windows (e.g.,
LivePreviewpopping out to a new window) fail to update the VDOM/DOM in the target window because the VDOM worker cannot route the reply correctly or the message channel context is lost.Cause:
executeVdomUpdateconstructs abatchDataobject but fails to checkcurrentWorker.isSharedWorkerand attach the window context before callingNeo.vdom.Helper.updateBatch.Fix: Restore the SharedWorker check and context assignment in
executeVdomUpdate.