Pipeline only builds the subsystem graph. Post-construction work
(dataset routing, beforeunload/focus listeners, debug interface)
runs in the orchestrator after it copies the result onto its own
fields, because those steps call back into orchestrator methods
that read this.inputHandler / this.sceneManager etc.
getPanelVisibilityStates / restorePanelVisibilityStates are
the only callbacks the pipeline captures during construction —
they wire into RecordingPanel.setPanelStateCallbacks at the
moment of recording-panel build, and the orchestrator's closures
over this resolve correctly by the time the recording panel
actually calls them.
Pipeline only builds the subsystem graph. Post-construction work (dataset routing, beforeunload/focus listeners, debug interface) runs in the orchestrator after it copies the result onto its own fields, because those steps call back into orchestrator methods that read
this.inputHandler/this.sceneManageretc.getPanelVisibilityStates/restorePanelVisibilityStatesare the only callbacks the pipeline captures during construction — they wire intoRecordingPanel.setPanelStateCallbacksat the moment of recording-panel build, and the orchestrator's closures overthisresolve correctly by the time the recording panel actually calls them.