AEROSIM-TS-151
Bind all production camera rigs to the active aircraft
Chase, Cockpit, Orbit, and Fly-by are production aircraft-bound rigs whose rendered semantics remain usable while the authoritative aircraft moves.
- Verified flow state
- Done
- Owner
- AeroSim Architecture and Delivery
- Feature
- AEROSIM-FT-14
- Component
- Web Application — active-flight production camera rigs
- Repository
- corp-v1-aerosim/corp-v1-aerosim
Delivery scope
Replace static fixture camera selection with production camera-rig lifecycle updates bound to the authoritative aircraft transform and TASK-0150 anchors. Chase continuously follows; Cockpit uses the governed cockpit anchor and forward/up basis; Orbit maintains a bounded aircraft-relative orbit; Fly-by selects and updates a bounded world-space pass relative to aircraft motion. Preserve camera switching without changing aircraft state or control ownership.
Implementation contract
Implementation artifacts
- corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/SceneRoot.tsx
- corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/cameras.ts
- corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/camera/secondary-camera-registry.ts
- corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/camera/camera-switch-coordinator.ts
- corp-v1-aerosim/corp-v1-aerosim:applications/web/test/flight/production-camera-rigs.browser.spec.ts
Inputs
- RootAtSkic authorized Wave 33 correction work in Discord message 1549867630800666695 and then asked the exact completeness question in message 1549881095363760179; this admission supplies the missing repair Tasks without modifying the separately claimed TASK-0149.
- Deployed application source ab085692e2ed70bdb6525044b4ca91cc48a27478 for product 1.0.0.1; release 1.0.0.1 remains deployed, human acceptance FAILED, production REJECTED, and a replacement release is required.
- Ordinary-user UAT evidence: /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-training-airfield-rerun/report.md and report.json (12/12 failed), /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-coastal-range/uat-report.md and uat-report.json (12/12 failed), and /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-mountain-valley/report.md and report.json (12/12 failed). All three runs prohibit forced clicks, hidden-input interaction, DOM/state mutation, direct API setup, or other bypass.
- Diagnosed root-cause records: /opt/data/cache/delegation/subagent-summary-0-20260916_203916_911368.txt, /opt/data/cache/delegation/subagent-summary-1-20260916_203916_911707.txt, /opt/data/cache/delegation/subagent-summary-2-20260916_203916_911857.txt.
- Root-cause summary 0 lines 18-27: Cockpit, Orbit, and Fly-by are static representative-scene cameras; SceneRoot updates only Chase and the implemented secondary registry/coordinator are not connected to production.
- Coastal UAT camera matrix failed 12/12: Cockpit failed 3/3, Fly-by and Orbit lost or clipped aircraft, and J10 became black. Mountain Valley J05/J09/J11 became blank or black after ordinary camera cycling.
Outputs
- One production camera-rig registry and lifecycle for all four canonical camera IDs.
- Moving-flight rendered evidence that each mode retains its declared semantics and that camera changes do not reset or mutate aircraft/control state.
Failure boundaries
- Fail when a selected production camera is a static fixture, is not updated from the current authoritative aircraft step, loses required aircraft/world context, clips through the aircraft, produces a black/empty frame, or changes aircraft state.
- Fail when a secondary-camera unit test passes but SceneRoot does not consume the same production registry/coordinator.
Excluded scope
- No application implementation is performed by this admission change.
- Do not rewrite TASK-0149, infer a router-retention defect, report working Menu Restart as failed, classify static STALL SPEED 140 KT specification text as an active warning, or broaden governed interaction scope beyond the exact interaction semantics stated here.
Verification steps
- Tests first: write failing moving-aircraft rig lifecycle, stale-step, switch-continuity, clipping, and rendered-pixel tests before replacing production selection.
- For each of the nine aircraft, sustain movement and exercise Chase, Cockpit, Orbit, and Fly-by; assert non-background pixels, mode-specific visibility/semantics, finite camera transforms, matching aircraft source step, and no state reset.
- Use the ordinary launch and in-flight camera controls in a real browser at every supported viewport. No force-click, hidden input, direct camera/state mutation, fixture injection, API setup, or browser bypass is acceptance evidence.
Traceability
Requirements
Dependencies
- AEROSIM-TS-90Canonical ID: TASK-0090
- AEROSIM-TS-95Canonical ID: TASK-0095
UI/UX applicability
direct_ui
Acceptance evidence
Verified delivery: SceneRoot consumes the production Chase, Cockpit, Orbit, and Fly-by lifecycle from the authoritative aircraft transform and governed presentation anchors; focused moving-rig, bounded-pose, stale-input, and reset-continuity tests passed; exact-head and post-merge integration CI passed; and immutable Nebula and Singularity images were published and read back from Harbor. Replacement-release acceptance remains Release-owned.
Current evidence boundary
No current implementation, acceptance, release, or deployment evidence is claimed for this planned Task. Any prior implementation may be used only as prototype and discovery evidence.