AEROSIM-TS-87
Use one handling configuration in physics and presentation
The deterministic runtime and displayed handling characteristics consume the same validated aircraft configuration.
- Verified flow state
- Done
- Owner
- AeroSim Architecture and Delivery
- Feature
- AEROSIM-FT-9
- Component
- Web flight session — aircraft configuration resolver and handling presenter
- Repository
- corp-v1-aerosim/corp-v1-aerosim
Delivery scope
Resolve aircraftConfigId once during FlightSessionConfig creation and pass its AircraftConfigSnapshot to evaluateFlightForces and control response calculations. Derive AircraftHandlingPresentation from that same snapshot with stability, responsiveness, speed, and controlAuthority ratings plus sourceDigest; render it in the pre-flight summary and in-session aircraft panel.
Implementation contract
Implementation artifacts
- applications/web/src/flight/config/resolve-aircraft-session-config.ts
- applications/web/src/flight/presentation/aircraft-handling-presentation.ts
- applications/web/test/flight/aircraft-config-integration.spec.ts
Inputs
- FlightLaunchRequest {aircraftConfigId,environmentPresetId,seed} and AircraftConfigSnapshot from EP3-FT9-01.
Outputs
- FlightSessionConfig {sessionId,aircraftConfigId,aircraftConfigDigest,aircraftConfig,...} consumed by physics, and AircraftHandlingPresentation {aircraftConfigId,sourceDigest,stability,responsiveness,speed,controlAuthority} consumed by both screens.
Failure boundaries
- Reject launch with AIRCRAFT_NOT_FOUND when aircraftConfigId is absent from the catalogue.
- Reject launch with AIRCRAFT_CONFIG_INVALID when catalogue validation failed; no fallback archetype is selected.
- Terminate setup with AIRCRAFT_CONFIG_DIGEST_MISMATCH if physics and presentation sourceDigest values differ.
- Ignore attempts to mutate aircraftConfigId or config values after session creation and emit SESSION_CONFIG_IMMUTABLE; the active session remains unchanged.
Excluded scope
- Changing aircraft during a session, per-player tuning, cosmetic model selection, persistence of favourites, and interpolation between archetypes are excluded.
Verification steps
- Run applications/web/test/flight/aircraft-config-integration.spec.ts.
- Launch trainer and sport sessions and assert force/control functions receive the exact frozen snapshot whose digest appears in both pre-flight and in-session presentation models.
- Request unknown and invalid IDs, inject mismatched digests, and attempt post-launch mutation; assert each exact failure and unchanged active session.
- Assert all four displayed ratings are deterministic functions of named config fields and contain no independent editable values.
Traceability
Acceptance evidence
Verified delivery: application PR #35 reviewed head 22059b7b0211165a8dfa5c840b5fb5e968343c4f, exact-head validation task 1873 succeeded, merged as 5e7babdbc9d3749c062995a48da78cc12a43ef1a; Wave 6 integrated application head 5e7babdbc9d3749c062995a48da78cc12a43ef1a passed publish task 1879 and validate task 1880. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.
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.