Skip to main content

AEROSIM-TS-159

Project task

Eliminate implicit flight resets during ordinary control

A flight attempt changes identity only after an explicit visible restart or terminal recovery decision, never as a hidden response to normal pilot input.

AEROSIM-TS-159Canonical ID TASK-0159
Verified flow state
Done
Owner
AeroSim Architecture and Delivery
Component
Web Application — flight recovery and attempt continuity
Repository
corp-v1-aerosim/corp-v1-aerosim

Delivery scope

Separate bounded recovery from full restart, preserve monotonic source-step continuity during ordinary control, and expose the exact reason for every attempt transition. Prevent low-altitude or unstable-state handling from silently replacing the active attempt while the player is still flying.

Implementation contract

Implementation artifacts

  • applications/web/src/flight/authoritative-flight-state.ts
  • applications/web/src/flight/recovery-boundary-runtime.ts
  • applications/web/src/flight/SceneRoot.tsx
  • applications/web/e2e/attempt-continuity.browser.spec.ts

Inputs

  • Release 1.0.0.2 production UAT observed attempt/source-step resets in 33 of 36 ordinary journeys.
  • Representative control diagnostics changed attempt identity without an explicit restart in all three worlds.
  • RootAtSkic reported that the aircraft cannot be controlled as a normal flight experience in Discord message 1550551559899848705.
  • Follow-up production videos recorded implicit attempt replacement at 29.4, 29.8, and 29.6 seconds; Mountain Valley showed ground contact before replacement, but no explicit user recovery decision preceded any replacement.

Outputs

  • Monotonic source-step and stable attempt identity during ordinary non-terminal flight.
  • Explicit transition reason, source step, and visible recovery state for every bounded recovery or restart.
  • A fail-closed distinction between recoverable boundary correction, terminal outcome, and user restart.

Failure boundaries

  • Fail on an attempt-ID change or source-step regression without a user restart or explicit terminal transition.
  • Fail when normal W/S, A/D, Q/E, R/F, G, or flap input triggers a hidden restart.
  • Fail when a recovery masks state discontinuity from the player.

Excluded scope

  • No change to world geometry, camera framing, or keyboard mappings.

Verification steps

  • Add failing long-flight continuity tests reproducing the 33/36 reset pattern before implementation.
  • Exercise all declared controls in every world and assert stable attempt identity plus monotonic source steps for at least 60 seconds.
  • Verify direct restart and Menu restart remain ordinarily operable and are the only user-originated attempt replacements.

Traceability

Requirements

Dependencies

Acceptance evidence

Verified delivery: exact-head continuity tests show stable attempt identity and monotonic source steps for 60 simulated seconds in all three worlds; explicit direct and Menu restarts retain user-restart provenance; hidden runtime discontinuity fails closed; PR #219 reviewed head 68750dd68d2be71116a03842c6872f4ce8411dea merged as f564123585b2c8973f09dfaff9e0fcdf67865ed5 with integration validation and immutable image publication successful. Release completion was verified on deployed revision dbba4a186a02cb4567c64f1c3400d38556aa1a25; human post-release acceptance remains PENDING.

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.