Imported from the codex worktree's uncommitted work
(C:/Users/erikn/.codex/worktrees/bd98/acdream on
codex/atmospheric-rendering-campaign), on top of its 8b7b601b.
The remote-player shadow gate ran two clients on fixed sleeps, so the
observer could move before the primary had taken its 'before' screenshot,
or the primary could take its 'after' shot before the observer had moved.
Now the harness publishes named signal files into each client's artifact
directory and the routes block on them:
- IRetailUiAutomationRuntime.TryIsAutomationSignalPublished, implemented
by WorldLifecycleAutomationController over <artifactDir>/signals/
<name>.signal (names validated by AutomationArtifactName, so no path
escape).
- 'wait signal <name> [timeoutMs]' in RetailUiAutomationScriptRunner.
- run-connected-render-pack-remote-player-gate.ps1 publishes
'primary-before' to the observer after the primary's before-shot
completes, then 'observer-moved' to the primary after the observer's
remote-observer-moved checkpoint.
- Both routes teleport with an explicit heading and wait 12 s to settle.
Build green; the three touched App test classes pass 58/58 including the
two new signal tests.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
16 lines
525 B
Text
16 lines
525 B
Text
# Secondary character for the connected remote-player shadow gate. It remains
|
|
# in the same outdoor receiver scene as the primary and crosses several metres
|
|
# while the primary captures before/after metadata.
|
|
|
|
wait world-ready 90000
|
|
wait world-visible 30000
|
|
command /teleloc 0x09040008 17.4 190.6 87.705 1 0 0 0
|
|
wait materialized 1 90000
|
|
sleep 12000
|
|
checkpoint remote-observer-ready
|
|
wait signal primary-before 120000
|
|
input down MovementForward
|
|
sleep 6000
|
|
input up MovementForward
|
|
checkpoint remote-observer-moved
|
|
sleep 30000
|