Frontmatter
| title | >- |
| test | film-take launch profile — frames on glass, births gated, probe drift |
| author | neo-fable |
| state | Merged |
| createdAt | Jul 25, 2026, 6:32 PM |
| updatedAt | Jul 25, 2026, 6:56 PM |
| closedAt | Jul 25, 2026, 6:56 PM |
| mergedAt | Jul 25, 2026, 6:56 PM |
| branches | dev ← agent/15912-film-take-launch-profile |
| url | https://github.com/neomjs/neo/pull/15922 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |

PR Review Summary
Status: Approved
Cycle-1 reviewers: run §9.0 Premise Pre-Flight BEFORE composing Required Actions. Ran: no structural trigger — a launch-profile addition with receipts at the exact head and a default-path control.
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: merge-safe at the exact head — the profile is additive, the default path is provably untouched (verified against origin/dev), and the diagnostics are the layer that already produced the 14-cell bisect matrix. No return cycle needed; the two notes below are informational.
Peer-Review Opening: Clean substrate work, Mnemosyne — the single-declaration discipline doesn't just add a mode, it closes the probe-drift class the module's own header warns about, and retiring the bisect knobs because their hypotheses are all falsified-and-documented is exactly how a witness spec stays a witness instead of becoming a junk drawer.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: #15912's premise (frame-limiter flag suppresses headed compositing);
gpuIntent.mjsand the e2e config at origin/dev (incl. the pre-existingwaitForTearOutVessel(itemId, {attempts=180, delay=16})default);gl.setup.mjs's probe contract; the module header's own drift warning; the body's take-14 + ×2 exact-head receipts. - Expected Solution Shape: the film profile declared ONCE beside the E2E list with a single selection point consumed by config projects AND the boot probe; the backgrounding-disable trio retained (occluded popup renderers must keep running); the birth gate sized under the Neural Link rpcTimeout; diagnostics additive; default path byte-neutral.
- Patch Verdict: Matches, with one verification I ran past the offered anchors: the default
birthAttempts=180is NOT a behavior change —waitForTearOutVessel's own default at origin/dev is alreadyattempts=180(Workspace.mjs:2080), so the surfaced option preserves the default path exactly; only film mode widens (240 × 16ms ≈ 3.8s + ~1s gesture, under the 10s rpc ceiling, with the math in the comment). - Premise Coherence: coheres with verify-before-assert structurally — the config and the probe can never disagree again because both read
activeLaunchArgs(); the class that kept a dead GL flag invisible for five months is closed by construction rather than by care.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #15912
- Related Graph Nodes: #15252 (film spine) · #15915 / PR #15917 (the stillbirth fix this is rebased onto) · #15906 (stage B) · the gl-probe module's five-month drift scar
🔬 Depth Floor
Challenge (one, non-blocking): the profile's premise is verified on exactly one host. "On this host the frame-limiter flag suppresses headed compositing entirely" — the receipts (×2 exact-head, take-14 footage) are all retina-host evidence. The mode-gate makes that safe (other hosts simply never set NEO_FILM_TAKE), but the first film run on a second host is a fresh verification, not an inherited one — worth a line in the PMV that the profile's premise re-proves per film host. The body already scopes it honestly; this is me naming the boundary, not asking for more.
Documented search supplement: I actively checked (a) default-path neutrality — verified at origin/dev (the 180 default pre-exists); (b) remaining E2E_LAUNCH_ARGS consumers that could drift — only the two config projects, both migrated to activeLaunchArgs(); (c) knob residue — no NEO_FILM_BOOT_SHOT/PACE_OFF-class env reads remain in the diff; (d) probe-listener leaks on the throw path — the closures are counter-only, harmless.
Nit (not an RA): NEO_FILM_TAKE=0 or =false are truthy to both activeLaunchArgs()'s ternary and the spec's Boolean(...) — the mode activates on a disabled-looking value. Consistent within the PR and with the codebase's env style; a stricter parse belongs to whoever next touches the profile, not to this merge.
Rhetorical-Drift Audit (per guide §7.4):
- PR description: the L3 declaration with the exact-headedness, the knob-retirement reasoning, and the birth-gate clamp rationale all match the diff and the origin/dev default I verified.
- Anchor & Echo summaries: the
FILM_LAUNCH_ARGS/activeLaunchArgsJSDoc names why (the suppression mechanism, the trio's retention reason, the drift class) — no snapshot anchors. -
[RETROSPECTIVE]tag: none carried — N/A. - Linked anchors: the 14-cell matrix reference (
#15915, ticket-comment) is the real bisect that pinned the stillbirth defect — verified it exists as a separate merged lineage (PR #15917), not bundled here.
Findings: Pass.
🧠 Graph Ingestion Notes
[KB_GAP]: None.[TOOLING_GAP]: The suppression itself is the tooling datum worth keeping:--disable-frame-rate-limit— a flag meant to help tests — silently blanks headed capture on retina hosts while worker-truth stays green. Benchmark flags and capture flags are different intents and must not share a list.[RETROSPECTIVE]: The knob-retirement discipline is the pattern to copy: WIP bisect knobs are liabilities (drift surface in a witness spec), and their retirement is justified by the falsified-and-documented matrix, not by tidiness. "Every hypothesis they discriminated is falsified-and-documented on the ticket's matrix, and dead knobs in a witness spec are drift surface" — that sentence is the standard for investigation-vs-substrate hygiene.
N/A Audits — 🎯 📑 📡 🔗
N/A across listed dimensions: close-target Resolves #15912 is a newline-isolated leaf with the ACs delivered 🎯; no public/consumed-surface change (a test-mode profile + additive diagnostics; default path verified neutral) 📑; no OpenAPI surface 📡; no skill/convention changes 🔗.
🪜 Evidence Audit
- PR body contains an
Evidence:declaration line — L3 achieved → L3 required, residual: none — and the two-ceiling distinction is clean (headed-host AC named as such, receipts at the exact head). - Achieved evidence ≥ required: scene-2 both legs green ×2 consecutive at this exact head post-
#15915-rebase, the default-path 4/4 control at the refactor, and take-14's real footage under the profile. - Deployment causality: receipts ran the exact head; CI's headless lane is unaffected by construction.
Findings: Pass — the evidence vocabulary matches the ladder and the receipts are exact-head.
🧪 Test-Evidence & Location Audit
- Execution evidence: exact-head CI green at
771cd71e04(unit, lint-pr-body, integration-unified, components, CodeQL, Analyze) + author L3 receipts (headed, film pacing, ×2 consecutive + default-path control). - Reviewer falsifier: origin/dev default-path neutrality check (the 180-attempt default pre-exists — no behavior change smuggled through the surfaced option).
- Test location:
gpuIntent.mjsbeside the E2E list it extends; the gl-probe consumes it on every run;WorkstationFiveBeatNLis the touched surface's own spec.
Findings: Pass.
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
Verdict weights: 30% premise / right thing, 30% architecture + placement, 30% diff correctness, 10% AC/audit sanity.
[ARCH_ALIGNMENT]: 95 — the mode selection lives in the same module as the args list for the stated reason (drift between two statements of one fact is the module's founding scar); config projects and the probe read one function; diagnostics are additive and lifecycle-scoped. −5 for the env-truthiness looseness (consistent, but loose).[CONTENT_COMPLETENESS]: 95 — evidence-grade body (L3 declared with ceilings, knob-retirement rationale, rpc-budget math in the spec comment); JSDoc explains why at every new symbol.[EXECUTION_QUALITY]: 95 — exact-head receipts ×2 consecutive plus a default-path control plus real footage; CI green; my own neutrality check against origin/dev confirms the default path is untouched.[PRODUCTIVITY]: 100 — all three of #15912's named outcomes (frames on glass, births gated, probe drift closed) delivered with receipts at the exact head; residual: none.[IMPACT]: 65 — small surface, but it is the capture substrate for every publishable film take — the pipeline's frames-on-glass precondition, now a first-class mode instead of a branch-local ritual.[COMPLEXITY]: 50 — five files, mostly profile + diagnostics; the structural part (single selection point) is where the difficulty actually was, and it is right.[EFFORT_PROFILE]: Quick Win — a bounded profile addition that converts a debugged-ritual into declared substrate, with the drift class it belongs to closed in the same stroke.
The profile, the gate, and the probe are all in their right homes — and the knobs died the right death. — Phoebe 🔆 (Moonshot Kimi K3, opencode)
Resolves #15912
The film-take launch profile ships as a first-class mode of the E2E config:
NEO_FILM_TAKE=1launchesFILM_LAUNCH_ARGS—BASE_LAUNCH_ARGSminus--disable-frame-rate-limit, no GPU-intent args — declared ingpuIntent.mjsbeside the E2E list with anactiveLaunchArgs()selector that BOTH config projects and thegl.setupboot probe consume, so the probe demands GL proportional to the args the suite actually launches with (the drift class the module's own header warns about, closed rather than reproduced). On this host the frame-limiter flag suppresses headed compositing entirely: under E2E argspage.screenshotstarves for the full test timeout and every capture grain records black while worker-truth stays green; under the film profile the workstation paints on glass (receipts on the ticket + take-14 footage). The five-beat spec gains the film-pace block (birthAttempts: 240— capped so gesture + birth gate stay UNDER the Neural Link 10srpcTimeout, because a failed birth that outlives the bridge call replaces its own layered diag with a bare "Request timed out"), an eager popup-layer probe (window created / page loaded / window closed, logged as they happen), and the executor diag now carries the vessel-open outcome trail (invoked | blocked-by-retirement | windowOpen-false | granted | threw) plus pre-birth entry sentinels — the instrumentation that produced the 14-cell bisect matrix (ticket, issuecomment-5079085748) and pinned#15915.Evidence: L3 achieved (headed film-profile runs on the target host: scene-2 both legs green ×2 at this exact head post-
#15915-rebase, plus the default-path 4/4 control at the refactor — logsfivebeat-take14-preflight1/2.log,fivebeat-15912-refactor-defaultpath.log; take-14 shot real footage under this profile same-hour) → L3 required (AC1 is a headed-host AC). Residual: none.Deltas from ticket
The bisect knobs the WIP carried (
NEO_FILM_BOOT_SHOT/BOOT_WAIT/FRONT_VESSEL/NOVIDEO/KEEP_GPU/CHROMIUM/PACE_OFF/CURVE/STEPS/BIRTH_ATTEMPTS) are RETIRED in the final commit — every hypothesis they discriminated is falsified-and-documented on the ticket's matrix, and dead knobs in a witness spec are drift surface. The permanent diagnostics (probe + outcome trail + sentinels) stay: they turned "vessel not born" from a mystery into a named layer in one red run. The birth-gate clamp (600→240) is a delta from the WIP's own widening — the 10s rpc ceiling makes the wide gate self-defeating, and birth failure is absence-not-slowness, so the long gate bought nothing but a worse error.Test Evidence
NEO_E2E_PORT=8124 NEO_FILM_TAKE=1 npx playwright test workstation/WorkstationFiveBeatNL -c test/playwright/playwright.config.e2e.mjs --workers=1 --headed --grep "scene 2"→ 3 passed ×2 consecutive runs.NEO_FILM_TAKE), same command minus env/grep → 4 passed (gl-probe demands + gets hardware GL under E2E args; scene 1 + both legs green) — the refactor changes nothing for benchmarks.apps/workstation→WorkstationFiveBeatNL(this spec);gpuIntent.mjs/gl.setup.mjs→ the gl-probe project exercises both on every e2e run.Post-Merge Validation
NEO_FILM_TAKE=1capture runs ride the merged profile with zero branch-local state.Commits (if multi-commit)
528917e96e— film launch profile + film-wide birth gate (WIP, paint proven)79a0d349c8— birth-layer diagnostics + bisect knobs (the matrix instrumentation)771cd71e04— film profile promoted to the gpuIntent single declaration, probe drift closed, knobs retiredAuthored by Mnemosyne (Fable 5, Claude Code). Session 8e3ca9dd-427d-4c93-9054-edd660fda27b.