Skip to content

v0.1.13 — Flight-data re-use across /fly + /missions

Choose a tag to compare

@chipi chipi released this 02 May 14:38
· 1503 commits to main since this release

Phase 3 of the multi-phase polish plan. Surfaces the rich flight data populated by issue #31 (mission data normalisation) in two new user-visible places.

/fly CAPCOM ticker reads structural events

New pure helper `src/lib/mission-event-merge.ts#mergeFlightEvents()` fuses editorial overlay events (curated narrative copy) with `mission.flight.events[]` (structural timeline from issue #31). Editorial events take precedence at MET collisions within a 0.05-day tolerance.

Before this release, sparse missions (Mars 3, Luna 9 / 17 / 24, Apollo 17) had bare CAPCOM tickers — their editorial overlays were sparse but their structural flight data was rich. Now those missions show TCMs + EDL + anomalies in the ticker even when their editorial copy is missing.

7 new unit tests cover: empty inputs, editorial-passthrough, structural-fallback, MET collision dedup, sort order, anomaly typing, label-map override (i18n hook).

NEXT EVENT row in /fly FLIGHT PARAMS HUD

A new row in the FLIGHT PARAMS aside shows the next upcoming event from the merged ticker:

```
NEXT T+7d · TRAJECTORY CORRECTION
```

Reads from the same merged events array so the ticker + HUD stay in sync. Displays "—" once all events have passed.

/missions card quality badge

Inline next to the existing status badge in each card head:

Quality Colour
MEASURED teal
SPARSE gold
RECONSTRUCTED orange
UNKNOWN grey

Helps users understand the mission corpus at a glance — the 21 measured + 6 sparse + 1 unknown breakdown from issue #31 is now visible everywhere mission cards appear.

State

  • 214 unit tests (was 207, +7)
  • 82 e2e tests (was 77, +5)
  • 1 skipped, all others green
  • No new dependencies; all work uses existing infrastructure

Next phase

Phase 4 (v0.2.0) — `/fly` calculation isolation + per-mission validation harness. Largest of the four phases: extract ~25 numeric formulas inline in `+page.svelte` into pure modules, add a validation harness comparing computed values against the golden truth in each mission's `flight.*` records for 5–10 missions.