Skip to main content

AEROSIM-TS-76

Project task

Validate and freeze the Flight session condition set

A launched Flight session owns one validated immutable condition snapshot covering wind, visibility, and governed environmental values.

AEROSIM-TS-76Canonical ID TASK-0076
Verified flow state
Done
Owner
AeroSim Architecture and Delivery
Component
Web pre-flight configurator — environment snapshot factory
Repository
corp-v1-aerosim/corp-v1-aerosim

Delivery scope

Validate FlightConditionSelection {windPresetId,visibilityPresetId,timeOfDayPresetId,seed}, resolve it against versioned preset catalogues, and create a deeply frozen EnvironmentSnapshot when FlightLaunchRequest is accepted. Snapshot fields are windWorldMps, gustAmplitudeMps, gustPeriodTicks, visibilityRangeM, fogDensity, ambientLight, seed, preset digests, and createdAtSimulationTick=0.

Implementation contract

Implementation artifacts

  • applications/web/src/flight/environment/create-environment-snapshot.ts
  • applications/web/src/flight/environment/environment-contracts.ts
  • applications/web/test/flight/environment-snapshot.spec.ts
  • applications/web/config/environment-presets.v1.json

Inputs

  • FlightConditionSelection with known wind, visibility, and time-of-day preset IDs plus a uint32 seed; versioned environment-presets.v1.json records with finite bounded values.

Outputs

  • EnvironmentSnapshotV1 {schemaVersion:'1',selectionDigest,windWorldMps,gustAmplitudeMps,gustPeriodTicks,visibilityRangeM,fogDensity,ambientLight,seed,presetDigests,createdAtSimulationTick:0}; object and nested values are frozen.

Failure boundaries

  • Reject launch with ENVIRONMENT_PRESET_NOT_FOUND and the field name when any preset ID is unknown.
  • Reject launch with ENVIRONMENT_PRESET_INVALID and JSON-pointer paths when any preset value is missing, non-finite, or outside its schema bound.
  • Reject launch with ENVIRONMENT_SEED_INVALID unless seed is an integer from 0 through 4294967295.
  • Emit SESSION_CONFIG_IMMUTABLE and retain the original snapshot when code attempts to replace or mutate conditions after tick 0.

Excluded scope

  • Mid-flight weather changes, live weather ingestion, precipitation, turbulence beyond the configured periodic gust, cloud simulation, and user-authored presets are excluded.

Verification steps

  • Run applications/web/test/flight/environment-snapshot.spec.ts.
  • Resolve every committed preset combination and assert canonical selectionDigest, frozen nested state, tick 0 creation, and exact values.
  • Test unknown IDs, every invalid numeric boundary, invalid seeds, and mutation/replacement after launch; assert exact error codes and no FlightSession creation on validation errors.
  • Serialize and restore the snapshot and assert byte-equivalent canonical JSON and the same digest.

Traceability

Requirements

Dependencies

UI/UX applicability

non_visual

This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.

Acceptance evidence

Verified delivery: application PR #76 reviewed head d26e34635cd4ec777feaa595015f3b3156d36bac, merged as 219cd759024afe332d6643df885fffdc3c783198; final whole-wave application head 7f26eca79eadef3171564fc60035e9866c2c848e: publication run 3914 succeeded and integration run 3915 succeeded. 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.