Skip to main content

AEROSIM-TS-153

Project task

Use declared pre-flight bindings as the runtime control contract

The exact bindings declared and confirmed before launch are the only runtime mapping for pitch, bank, yaw, throttle, gear, and flaps, with visible focus guidance; a declared throttle key can never trigger restart.

AEROSIM-TS-153Canonical ID TASK-0153
Verified flow state
Done
Owner
AeroSim Architecture and Delivery
Component
Web Application — pre-flight-to-runtime control binding contract
Repository
corp-v1-aerosim/corp-v1-aerosim

Delivery scope

Carry the confirmed control-binding snapshot into /flight and install runtime keyboard and visible-control handling from that snapshot rather than a second hard-coded map. Include pitch, bank, yaw, throttle, landing gear, and flaps; define focus acquisition, focus loss, and in-viewport guidance using existing governed interaction semantics. Reserve explicit restart as a separately named command that cannot collide with a declared flight binding.

Implementation contract

Implementation artifacts

  • corp-v1-aerosim/corp-v1-aerosim:applications/web/src/preflight/PreflightBriefingScreen.tsx
  • corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx
  • corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/controls/runtime-bindings.ts
  • corp-v1-aerosim/corp-v1-aerosim:applications/web/test/flight/declared-bindings.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 1 lines 7-31: pre-flight declares W/S pitch, A/D bank, R/F throttle; runtime hard-codes Arrow throttle, Q/E yaw, R restart, and no keyboard gear/flaps, so declared R throttle restarts the flight.
  • Training Airfield rerun: gear and flaps were not ordinarily actionable in 12/12 journeys. Coastal UAT probes targeted mostly incorrect semantics and only A/bank and Q/yaw were genuine mapped responses.

Outputs

  • One immutable confirmed binding snapshot consumed by runtime input handling and visible guidance.
  • Pitch, bank, yaw, throttle, gear, and flaps each have an ordinary-user runtime path and command-specific observable response.
  • Restart is explicit and collision-free; pressing the declared throttle-increase key changes throttle and never restarts.

Failure boundaries

  • Fail when runtime installs a key map independent of the confirmed snapshot, omits gear/flaps, silently ignores flight controls because focus is on an ordinary control, or lets a flight binding invoke restart.
  • Fail when a probe credits unrelated telemetry, null transitions, coincident resets, or synthetic events that bypass ordinary focus and browser dispatch.

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: add failing pre-flight-to-runtime trace tests, duplicate-command rejection, focus acquisition/loss cases, and an explicit regression proving declared R throttle cannot restart.
  • Through ordinary browser input, probe both directions of pitch/bank/yaw/throttle plus gear/flaps and assert only the intended command/state changes while snapshot sequence remains continuous.
  • Verify visible focus guidance and reacquisition at every supported viewport using real keyboard/pointer events. No forced click, direct handler invocation, hidden input, DOM/state mutation, API setup, or browser bypass is acceptance evidence.

Traceability

Requirements

Dependencies

Acceptance evidence

Verified delivery: PR #211 reviewed head c906a79aa88b261da51dabf17b107f3360ca4bc9 merged as b9cab5df4e9016bbf5239793175327d496d68388; exact-head run 5312 attempt 2, integration run 5314, publication run 5313, ordinary visible-interaction browser acceptance, and immutable Harbor readback passed.

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.