Skip to main content

AEROSIM-TS-102

Project task

Run pre-flight essential-control diagnostics

The player can exercise essential controls before launch and receives a visible, specific result when a required control is absent or invalid.

AEROSIM-TS-102Canonical ID TASK-0102
Verified flow state
Done
Owner
AeroSim Architecture and Delivery
Component
Web Application — Input controller and Pre-flight configurator
Repository
corp-v1-aerosim/corp-v1-aerosim

Delivery scope

Implement a bounded diagnostic state machine with idle, sampling, passed, and failed states; sample every essential axis and action within one explicit player-run attempt; normalize raw values using the selected profile; record per-control observed, missing_binding, unavailable_device, invalid_signal, or passed results; and issue a verification token only when all essential controls pass.

Implementation contract

Implementation artifacts

  • applications/web/src/preflight/controls/control-diagnostic.ts
  • applications/web/src/preflight/controls/ControlDiagnosticPanel.tsx
  • applications/web/test/preflight/control-diagnostic.spec.ts

Inputs

  • A confirmable ControlProfileDraft and a stream of timestamped device samples.
  • A start, cancel, or complete diagnostic command.

Outputs

  • Per-control DiagnosticResult records and one aggregate passed or failed result.
  • A single-use ControlVerificationToken bound to profile hash, deviceId, mappingVersion, and diagnostic attemptId.

Failure boundaries

  • Missing binding, disconnected device, stale timestamp, non-finite axis value, value outside the normalized range, or absent required action produces the matching failure code and no token.
  • Starting a second attempt cancels the prior sampling state; samples from the prior attemptId are ignored.

Excluded scope

  • The diagnostic does not calibrate hardware, rewrite mappings, or retry itself.
  • Failure feedback does not launch a session; the player must correct the cause and start a new attempt.

Verification steps

  • Run applications/web/test/preflight/control-diagnostic.spec.ts with deterministic samples for every essential control.
  • Inject each failure class and assert its exact per-control code, aggregate failed state, and absence of a token.
  • Start overlapping attempts and send late samples from the first attempt; assert only the current attempt can pass.

Traceability

Requirements

Dependencies

Acceptance evidence

Verified delivery: application PR #146 reviewed head 0e1dd3da4b38b39c4f4ec002df75b39ff46fdba0 merged as fc1188639f3a8ed92dc128189627bb743d6bf2bf. Focused diagnostic tests pass 11/11; exact-head CI run 4468 attempt 2 passed lint, typecheck, workflow contract, tests (web 1,130/1,130 plus browser suites), build, container images, environment consistency, and aggregate validation. Integration run 4473 and immutable-image publication run 4472 passed for the merge revision; Harbor readback verified nebula sha256:795280d11a01d1768a983cf66c16d1e142ea543d8dad4a94fb9f0f9c142d297d and singularity sha256:6f387b713766e0895bb1b60740a408ac22840d432ba6171ff25c30f9f378112d. Deterministic samples cover every essential control, exact failure codes and aggregate no-token failure, overlapping attempts, and late-sample rejection. 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.