Observed by @tobiu on 2026-09-24 (16:19–16:23Z) on his own display, during a headed replay series of the Workstation film (WorkstationFilmTourNL.spec.mjs -g 'under autoGates' --headed, PR #19182 head 63df09f156 = dev@df68d34493 with #19181's native return): one green run, one red at the second-window beat, one red at the morph. The operator escalated the sighting; this ticket promotes the defect-note (Memory Core b5912c84ec357a47).
The Problem
Observation: one drag produced a popup with a black background and nothing else in it — no pane, no tab strip.
Series facts (from the runs' popup probe): every created vessel closed again in all three runs (3/3, 2/2, 3/3), so the black vessel was transient, not an orphan; the first run created only two vessels because the tour stopped at its failed conversion. Which beat produced the black vessel and for how long it stayed black is unmeasured — the probe records created / loaded / closed, not what a vessel painted.
Inference — three candidates, none proven:
a born vessel painted before its document and pane materialised (the tear-out's mid-gesture birth, or the morph's birth under its 1500 ms hold);
the morph's retiring vessel painted after its pane had left (the re-entry cancels the tear-out, the vessel retires);
a vessel whose theme background never applied, so the body fell to a dark default (the class of VesselPlaceholder's own history: an unaddressed component inherits the user-agent ground).
The Architectural Reality
Vessel birth and retirement: src/dashboard/dock/window/TearOut.mjs (the vessel is born mid-gesture, birthHold in the film's morph, previewNodeId), VesselPark.mjs, VesselConversion.mjs; the popup boots its own Workstation app from the ?popout= / ?tearout= URL and adopts the opener's theme at birth (#18672: an adopted instance takes its container's theme).
The film's window beats: GestureDriver#executeTearOutStep (tear-out; the morph = tear-out + re-entry), executeCrossWindowDockStep (the second window), NativeGestureDriver#executeNativeReturnStep (the stack's return; the vessel closes after the transfer).
The Fix
Measured 2026-09-25 (comments below): the black window is the morph's vessel (beat 16) — born, viewport mounted, and never given its pane for its whole 2.7 s life, 4 of 4 headed runs. The tear-out vessel's own first-paint void is 150–170 ms (a flash, not this sighting). Mechanism: after the whole-stack native return brings Metrics home, the item's vessel-ownership record stays in the native lifecycle registry with its window nulled; the morph's new vessel binds into that stale record, the connect handler reads it as an already-adopted (terminal-first) vessel, registers the target and skips the connect-first stage.
Clear the returned items' ownership when the return's vessel retires — the native return must leave the registry the way the DOM-grip return does, so the next tear-out of the same item starts clean and stages its pane on connect.
Red-first unit arm on the return path: after the release, getOwner for the returned item is null and a following connect stages.
The film's morph vessel mounts its pane headed, read by the per-frame sampler.
Acceptance Criteria
AC-1 The instrumented headed series names the beat, the vessel and the duration of the black frame (or records five runs without one, which closes this as not reproduced with the receipt attached). Met 2026-09-25: the morph's vessel, beat 16, empty for 2.7 s, 4 of 4 at dev@79f81045b3 (issuecomment-5830853813); the mechanism trail in issuecomment-5830993522.
AC-2 After the fix the morph's vessel mounts its pane: the per-frame sampler reads pane content within 300 ms of the window's creation, headed 3 of 3 on the film-stage display; the tear-out vessel's first-paint void stays at or under 200 ms. (Restated 2026-09-25: the earlier "and the tab strip before the re-entry" clause is dropped — the connect-first stage embodies the live pane without the document projection, so a pre-terminal vessel carries the pane and no strip by design, exactly as the tear-out vessel does for its first half second; a strip during the morph is a screenplay question, not this defect.)
AC-3 The film replay is green headed 3/3 at the PR head on the film-stage display, and a red-first unit arm shows the returned item's ownership cleared after the vessel's release and the next connect staging the pane.
AC-4 The PR body names the mechanism.
Out of Scope
The stand-in mask in the parked vessel and the merged vessel's tab-strip gap (their own tickets, filed alongside); the film's screenplay and pacing.
Related
#15252 (the film epic; its take is blocked by this), #19126 (the opening), #19182 (the replay series)
#18672 (adopted-instance theme), #16498 (resident cards after a place-cycle restore), #19170 / #19181 (the native return, where vessels retire)
Sibling tickets filed alongside: #19186 (the stand-in mask in the parked vessel), #19187 (the merged vessel's tab-strip gap)
Live latest-open sweep: checked the latest 20 open issues at 2026-09-24T17:40:30Z; no equivalent found. A2A in-flight sweep 17:42Z: @neo-opus-ada's [lane-claim] 16:45Z on this investigation — this ticket is that lane's record, hence the assignee. Memory Core sweep: no prior ticket on an empty painted vessel; the 2026-09-13 trace covers the mask and the strip only. Own-assignment sweep: none of mine covers it.
Retrieval Hint: query_raw_memories("operator-seen popup glitches Workstation film black empty vessel transient popup probe")
tobiu referenced in commit 4dc6f74 - "fix(workstation): a whole-stack return home retires the returned items' vessel ownership (#19188) (#19208)" on Sep 25, 2026, 1:36 PM
Context
Observed by @tobiu on 2026-09-24 (16:19–16:23Z) on his own display, during a headed replay series of the Workstation film (
WorkstationFilmTourNL.spec.mjs -g 'under autoGates' --headed, PR #19182 head 63df09f156 = dev@df68d34493 with #19181's native return): one green run, one red at the second-window beat, one red at the morph. The operator escalated the sighting; this ticket promotes the defect-note (Memory Coreb5912c84ec357a47).The Problem
Observation: one drag produced a popup with a black background and nothing else in it — no pane, no tab strip.
Series facts (from the runs' popup probe): every created vessel closed again in all three runs (3/3, 2/2, 3/3), so the black vessel was transient, not an orphan; the first run created only two vessels because the tour stopped at its failed conversion. Which beat produced the black vessel and for how long it stayed black is unmeasured — the probe records created / loaded / closed, not what a vessel painted.
Inference — three candidates, none proven:
VesselPlaceholder's own history: an unaddressed component inherits the user-agent ground).The Architectural Reality
src/dashboard/dock/window/TearOut.mjs(the vessel is born mid-gesture,birthHoldin the film's morph,previewNodeId),VesselPark.mjs,VesselConversion.mjs; the popup boots its own Workstation app from the?popout=/?tearout=URL and adopts the opener's theme at birth (#18672: an adopted instance takes its container's theme).GestureDriver#executeTearOutStep(tear-out; the morph = tear-out + re-entry),executeCrossWindowDockStep(the second window),NativeGestureDriver#executeNativeReturnStep(the stack's return; the vessel closes after the transfer).The Fix
Measured 2026-09-25 (comments below): the black window is the morph's vessel (beat 16) — born, viewport mounted, and never given its pane for its whole 2.7 s life, 4 of 4 headed runs. The tear-out vessel's own first-paint void is 150–170 ms (a flash, not this sighting). Mechanism: after the whole-stack native return brings Metrics home, the item's vessel-ownership record stays in the native lifecycle registry with its window nulled; the morph's new vessel binds into that stale record, the connect handler reads it as an already-adopted (terminal-first) vessel, registers the target and skips the connect-first stage.
getOwnerfor the returned item is null and a following connect stages.Acceptance Criteria
dev@79f81045b3(issuecomment-5830853813); the mechanism trail in issuecomment-5830993522.Out of Scope
The stand-in mask in the parked vessel and the merged vessel's tab-strip gap (their own tickets, filed alongside); the film's screenplay and pacing.
Related
Live latest-open sweep: checked the latest 20 open issues at 2026-09-24T17:40:30Z; no equivalent found. A2A in-flight sweep 17:42Z: @neo-opus-ada's
[lane-claim]16:45Z on this investigation — this ticket is that lane's record, hence the assignee. Memory Core sweep: no prior ticket on an empty painted vessel; the 2026-09-13 trace covers the mask and the strip only. Own-assignment sweep: none of mine covers it.Retrieval Hint:
query_raw_memories("operator-seen popup glitches Workstation film black empty vessel transient popup probe")Origin Session ID: 10d33d2d-fa43-45e5-9ae7-d3b985dc6dce