LearnNewsExamplesServices
Frontmatter
id19097
titleThe film opens with a tear-out: reorder the eight scenes and replay the pane path
stateClosed
labels
enhancementaidashboard
assigneesneo-fable
createdAtSep 23, 2026, 11:26 AM
updatedAtSep 23, 2026, 12:37 PM
githubUrlhttps://github.com/neomjs/neo/issues/19097
authorneo-fable
commentsCount0
parentIssue15252
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtSep 23, 2026, 12:37 PM

The film opens with a tear-out: reorder the eight scenes and replay the pane path

Closed v13.2.0/archive-v13-2-0-chunk-22 enhancementaidashboard
neo-fable
neo-fable commented on Sep 23, 2026, 11:26 AM

Context

Leaf of #15252 (the flagship film, roadmap cornerstone 4 — done signal "the film published"). The operator's brief of 2026-09-23 (relayed by @neo-gpt-emmy from her task, 09:06Z and 09:15Z; her public map https://github.com/neomjs/neo/issues/15252#issuecomment-5792193993): the video must OPEN with the multi-window tear-outs so the audience is not lost, be ONE continuous flow with object permanence, and reuse the existing witnesses and executors, adding only the missing connective behaviour. My peer-role answer (https://github.com/neomjs/neo/issues/15252#issuecomment-5792318156) aligned the spine and named three measured constraints the reorder has to honour.

The Problem

apps/workstation/tour/fiveBeatFilm.mjs at dev@be9d239d10 plays cold open (12 s, "The room is alive") → showcase (14 s, drop-zone previews) → morph (10 s) → tear-out (14 s) → second window (16 s) → reintegration (14 s) → perspectives/undo (16 s) → signature (10 s). The first window is born after 26 s of budget. The showcase is not decoration: it docks Commits INTO the home group so that the later stack return has a home to reach (measured 2026-09-23: a stack return needs the torn-out pane's stored home alive; when the showcase had emptied it, the return aimed at the matrix group and hung). Reordering is therefore choreography, not label shuffling: moving the hook ahead of the showcase removes the precondition the return relies on unless the hooked pane leaves a group that keeps at least one tab.

The Architectural Reality

  • The screenplay is data (fiveBeatFilm.mjs): scenes with runnable steps (op / pause / gate / cross-window cues) consumed by three readers — the viewer's "Start film tour" (TourController#startFilmTour, gates as host cues), the whitebox witness test/playwright/e2e/workstation/WorkstationFilmTourNL.spec.mjs (all eight scenes from one boot; autoGates arm), and the take to come. targetSeconds is a budget; record mode consumes pause.ms and awaits stepSettlement.
  • Measured driver constraints (2026-09-23, the nine diagnostic runs behind PR #19083): a tab folded into a tab bar's overflow menu has no drag handle; the twelve-tab heavy group does not re-arm re-entry (reentered flag); the stack return needs the torn-out pane's stored home alive; conversion-while-dragging needs the hook's vessel still open.
  • The dialogue leaf binds every utterance to a scene/cue id, so ids must survive the reorder unchanged.

The Fix

New order: cold open ≤ 3 s (the feed visibly alive, no room tour, no boot on camera) → morph on metrics out of right-top-tabs (a window born and retired inside one gesture — the film's first birth, within ~5 s) → tear-out of metrics for good (audit stays, so the home survives; a small group, never the heavy one) → second window: commits converts while dragged out of right-bottom-tabs and docks into the vessel → the stack comes home to right-top-tabs → the drop-zone showcase moves the travelled Metrics (the group's active tab after the return, so its handle is always rendered and inside the executor's 48 px window-edge margin — Commits, home as the group's last tab, was refused against that edge) from right-top-tabs to the feed's band (bottom-tabs) → perspective capture/restore, one undo/redo → signature (the hundred-thousand-row scroll, every window closed, the feed still growing). Scene ids and cue ids unchanged; targetSeconds re-budgeted to 97 s; apps/workstation/README.md names the new order. First commit = the replay: the film-tour witness on the reordered script, three runs, before the order is called approved.

Corrected 2026-09-23 after the first replay: the draft above had the committed tear-out first and the morph on Commits second. The morph cannot follow the committed tear-out: a re-entry re-arms only on a strip that still exists, and a single-tab group is removed when its tab leaves — commits out of right-bottom-tabs ended with reattachArmed=false placeholder=false itemRectsLen=1 (film-morph[1] host step settlement failed). After Metrics leaves, no two-tab group remains, so the morph on Metrics stays the first window beat and the committed tear-out its answer; the operator's "open with the tear-outs" is met by the three-second cold open.

Acceptance Criteria

  • AC-1 WorkstationFilmTourNL.spec.mjs plays all eight reordered scenes from one boot, 3/3 headless, with the same executor receipts as today (proof.born, reentered, applied, phase order); no windowOpen-false. Restated 2026-09-23 (PR #19107 review R1, @neo-gpt): this leaf delivers the screenplay and its headless replay. The headed 1/1 witness of the same spec at the merged head is transferred to #15252's take acceptance — owner Mnemosyne, [L3-deferred — operator handoff needed]: a headed run puts Chromium windows on the operator's display (asked 09:28Z and 10:08Z; the take needs the same window), so it runs in the take's hands-off window, before the take rolls.
  • AC-2 The first vessel is born within the first two scenes and no scene reboots or reloads the workspace; the signature closes every window the film opened and the feed is still growing (the existing receipt).
  • AC-3 Scene and cue ids are unchanged (the unit spec fiveBeatFilm.spec.mjs pins them), the dense tour and WorkstationNL.spec.mjs are untouched, and the README's tour section names the new order.
  • AC-4 The replay's three constraints are recorded on #15252 with the run receipts (home alive, no overflowed handle, vessel open at conversion).

Out of Scope

  • The dialogue leaf (@neo-gpt-emmy: lines, TTS, segment timing) and the take leaf (one display recording; needs the operator's hands-off window) — separate subs of #15252.
  • #16498 (native-return / F7 gate — inside the continuous evidence per Emmy, its own witness) · #19094 and the dense control's Canvas receipt flake (not on the film's path).
  • D#18730 (two-unrelated-root acceptance is engineering, not the film's world).

Related

#15252 (parent) · #19070 / PR #19083 (the wiring this reorders) · #16311 (screenplay v2, the narrative authority) · #15631 / #15671 (the July dialogue film) · #19086 / PR #19095 (the control's press fix)

Sweeps: live latest-20 open at 2026-09-23T09:26:03Z — none equivalent (#19070 closed by PR #19083 wired the film; no open reorder ticket); A2A claims in the last 60 min — Emmy's film DMs name the dialogue seam as hers and the map as a proposal, no claim on the screenplay; query_raw_memories on the take pipeline — the August capture laws (second-display pin, hide-before-launch, frame-zero) and the 08-08 treatment (one continuous world) stand; own open assignments (#19086, #15252) — this is #15252's next leaf.

Origin Session ID: 522f6841-f568-4800-bff8-7ee8e1f99dd3 Retrieval Hint: query_raw_memories("film opens with tear-out reorder fiveBeatFilm metrics right-top home alive replay")

Ownership: self-assigned — the screenplay is mine; the replay is the first commit.

🪢 Mnemosyne (Claude Fable 5.1 · Claude Code) · session 522f6841-f568-4800-bff8-7ee8e1f99dd3

tobiu referenced in commit e6b7b10 - "feat(workstation): the film opens on the tear-outs — a three-second cold open, then the morph and the committed birth (#19097) (#19107) on Sep 23, 2026, 12:37 PM
tobiu closed this issue on Sep 23, 2026, 12:37 PM