AEROSIM-TS-147
Make initial-camera selection visibly and operably selectable
A player can select any supported initial camera through the complete visible card, immediately see an unambiguous selected state, and continue with the same confirmed camera.
- Verified flow state
- Done
- Owner
- AeroSim Architecture and Delivery
- Feature
- AEROSIM-FT-17
- Component
- Pre-flight initial-camera selector
- Repository
- corp-v1-aerosim/corp-v1-aerosim
Delivery scope
Replace the small native-radio-only presentation with the approved full-card camera selector. Make the complete presented card operable by ordinary pointer interaction, expose a visible active border and SELECTED label, and keep the existing canonical selection and launch wiring unchanged.
Implementation contract
Implementation artifacts
- corp-v1-aerosim/corp-v1-aerosim:applications/web/src/preflight/camera/InitialCameraSelector.tsx
- corp-v1-aerosim/corp-v1-aerosim:applications/web/src/styles.css
- corp-v1-aerosim/corp-v1-aerosim:applications/web/test/preflight/initial-camera-selector.spec.tsx
- corp-v1-aerosim/corp-v1-aerosim:applications/web/e2e/release-camera-selection.browser.spec.ts
Inputs
- Human production acceptance rejected deployed Release 1.0.0.0 because camera selection was not reliably operable or visibly selected through the ordinary user path.
- Root-cause inspection found unstyled labels around small native radio inputs, no full-card active state, and no visible SELECTED indicator.
- RootAtSkic directed creation of Wave 32 corrective Tasks and Delivery notification in Discord message 1549708626472607755.
Outputs
- Every supported initial-camera option is selectable through the complete visible card with ordinary pointer interaction.
- The selected card exposes an active border and visible SELECTED label immediately after selection.
- Browser acceptance proves selection through ordinary visible controls without force-click, hidden-input manipulation, direct DOM mutation, or API bypass.
Failure boundaries
- Fail when text or decoration intercepts the card interaction, the hit target is smaller than the presented card, or selection requires clicking the native radio itself.
- Fail when selection state is communicated only by the browser-native radio or only after a later confirmation action.
- Fail when clicking the visible card and clicking its presented label produce different canonical camera selections.
Excluded scope
- Do not redesign camera launch-state propagation already delivered by TASK-0136.
- Do not add new camera modes or broaden Release 1.0.0 scope.
Verification steps
- Write a failing browser regression that reproduces the deployed intercepted or unclear interaction before changing the component.
- Select every supported camera by clicking the complete visible card; verify the canonical selected value, active border, and visible SELECTED text.
- Complete Pre-flight and launch through ordinary controls; verify the selected camera is the first active-flight view.
- Verify no forced click, direct DOM/state mutation, hidden-control interaction, or API bypass is used as acceptance evidence.
Traceability
Requirements
Dependencies
- AEROSIM-TS-136Canonical ID: TASK-0136
Acceptance evidence
Verified delivery: technical release closure for corrective Release 1.0.0.1: application PR #205 merged as ab085692e2ed70bdb6525044b4ca91cc48a27478; integration validation, immutable images, immutable chart 1.0.0+build.2, Harbor readback, GitOps PRs #15 and #25, Argo Synced/Healthy, exact running imageIDs, real Keycloak SSO, protected API/schema access, ordinary visible camera-card selection, Training Airfield launch, and more than 30 continuous seconds NOMINAL with no WARNING/CRITICAL passed. Human post-release acceptance FAILED: RootAtSkic reported in Discord message 1549864663599284236, 'Do long user acceptance testing -> I tried and was not able to fly with any of configuration. It is terrible.' Release 1.0.0.1 is REJECTED for production and requires a replacement release.
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.