feat(scene): reusable zab-transition Canvas scene (white + centered Zab logo) + A→transition→B playout#95
Open
ClodoCapeo wants to merge 1 commit into
Open
Conversation
…ab logo) + A→transition→B playout The M10 transition as a reusable STATIC Canvas/LSML scene (data), not transition code: scripts/fixtures/zab-transition.lsml.json is a franc full-screen white frame with the centred Zab logo embedded as a base64 data-URI in image.src. No keyframes, no wipe-cover element, no scene_control leaf — the dormant lower_wipe_cover path is unused; the scene round-trips as plain LSML 1.1 (props spread at the node top level, the Orion lsmlNode form the @lumencast/runtime frame/stack/image primitives read). No asset hosting, no Solar rebuild (the fast-track). probe-m10-canvas-live.py gains --transition-scene: a third OBS program scene (scene-transition) renders the active Orion zab-transition scene in a browser_source, and the playout cuts A (screen-1) → transition → B (screen-2) in two BARE SetCurrentProgramScene cuts with a hold between them — franc passage, no fade, NO OBS-native transition (C-MECH). The MID frame is checked near-white+logo (not magenta, not black). --no-broadcast (dry) / --broadcast and C-SEC token redaction are preserved. Verified offline (no VPS / no desktop): the fixture is valid LSML 1.1, round-trips, the logo data-URI decodes to the exact complete image; the playout parses, the 3 scenes + 2 franc cuts fire, C-MECH holds (zero native-transition requests), C-SEC clean. The real CEF-of-Solar render of the white+logo scene is Keeper's antenna run. Refs #79 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The M10 transition built as a reusable static Canvas/LSML scene (data), not transition code — and a franc-cut A→transition→B playout. No
lower_wipe_cover, no compiler change, no fade. Refs #79.The scene —
scripts/fixtures/zab-transition.lsml.jsonframe(background:#FFFFFF, 100%×100%) with a centredimagechild (the Zab logo) inside astack(align/justify: center).LogoZab---BW.jpg(128×128, B&W on white) embedded as a base64data:image/jpegdata-URI inimage.src— no asset hosting, no Solar rebuild (the fast-track). B&W-on-white blends into the white frame.wipe-coverelement, noscene_controlleaf, nooperator_inputs— the dormantlower_wipe_coverpath is genuinely unused. Round-trips as plain LSML 1.1; props are spread at the node top level (the OrionlsmlNodeform the@lumencast/runtimeframe/stack/imageprimitives read flat offresolved.*).The playout —
scripts/probe-m10-canvas-live.py --transition-scenescene-screen-1/scene-screen-2(WGCmonitor_capture, reused feat(harness): force WGC capture method + migrate Orion scene default to overlay shape (#78) #84 setup) +scene-transition(abrowser_sourcerendering the active Orionzab-transitionscene).SetCurrentProgramScenewith a hold (--hold-ms, default 700ms). NoSetCurrentSceneTransitionever (C-MECH). MID frame checked near-white+logo (not magenta, not black).--no-broadcast(dry) /--broadcastand C-SEC token redaction preserved.Verified (no VPS / no desktop)
test_zab_transition.pynew +test_m10_setup.py+test_probe_m10_real_orion.py); full offline set 87 green.pulsar.exe: the 3 scenes + 2 franc cuts fire, C-MECH holds (['SetCurrentProgramScene','SetCurrentProgramScene'], zero native-transition requests), C-CUT flips through all three, C-SEC clean.detect-secrets: the embedded logo data-URI introduces zero new findings (compliance gate clear).Not done here (by design)
browser_sourcewithout an interactive desktop;--allow-blankdefers it). That is Keeper's antenna run.zab-transitionon the real Orion (them8/m9toolkit author leg is still gated/absent onmain).Surface sensitivity
Not a sensitive surface (no auth/secrets/network/deps changes). The only entropy concern — the embedded base64 logo — was checked against
detect-secretsand is clean.Note for Eleven
origin/main, which does not carry the two prior-branch commits (--real-orionnested?token=URL + string-JSON leaf decode) fromforge/pulsar-m10-real-orion-url-fix. My diff is purely additive and self-contained; offline tests + live smoke pass on the main base. If those url-fix commits land first, no conflict is expected (disjoint code).🤖 Generated with Claude Code