From 2fdb58c516788d126f09ccf08cde1b76bfc3ebd4 Mon Sep 17 00:00:00 2001 From: Matt Edholm Date: Wed, 22 Apr 2026 23:04:44 -0400 Subject: [PATCH] Review story 2.1: aircraft data model and fetcher passes all ACs All 5 ACs verified clean: field mapping, safe defaults, timeout propagation, MLAT detection, and FileFixtureFetcher. 64 tests pass, ruff check and format clean. Sprint status updated to done, deferred-work updated with runtime verification note for HttpFetcher on live dump1090. Co-Authored-By: Claude Sonnet 4.6 --- .../2-1-aircraft-data-model-and-fetcher.md | 2 +- _bmad-output/implementation-artifacts/deferred-work.md | 9 +++++++++ _bmad-output/implementation-artifacts/sprint-status.yaml | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/_bmad-output/implementation-artifacts/2-1-aircraft-data-model-and-fetcher.md b/_bmad-output/implementation-artifacts/2-1-aircraft-data-model-and-fetcher.md index 24e7511..a9fa989 100644 --- a/_bmad-output/implementation-artifacts/2-1-aircraft-data-model-and-fetcher.md +++ b/_bmad-output/implementation-artifacts/2-1-aircraft-data-model-and-fetcher.md @@ -1,6 +1,6 @@ # Story 2.1: Aircraft Data Model & Fetcher -Status: review +Status: done ## Story diff --git a/_bmad-output/implementation-artifacts/deferred-work.md b/_bmad-output/implementation-artifacts/deferred-work.md index 6e26fae..6d28b26 100644 --- a/_bmad-output/implementation-artifacts/deferred-work.md +++ b/_bmad-output/implementation-artifacts/deferred-work.md @@ -83,3 +83,12 @@ Description: `provision.py` calls `app.run(port=80)` which requires root privile Story: `1-5-provisioning-execution-tile-download-cache-validation-and-wifi-kill` Category: Technical debt Description: The `POST /submit` handler is fully synchronous — the browser connection stays open while tile download, airspace download, and cache validation complete (potentially 2–5 minutes). This is acceptable for MVP but a streaming response (using `flask.stream_with_context` or a background thread with server-sent events) would improve UX by allowing the browser to render progress feedback without holding an open connection. + +--- + +## Story 2.1: Aircraft Data Model & Fetcher + +### [2-1] HttpFetcher live dump1090 runtime verification +Story: `2-1-aircraft-data-model-and-fetcher` +Category: Runtime verification +Description: `HttpFetcher` is tested with mocks only. Live feed at `http://localhost:8080/data/aircraft.json` can only be verified on device with an RTL-SDR dongle connected and dump1090 running. No automated test covers the real HTTP path to dump1090. diff --git a/_bmad-output/implementation-artifacts/sprint-status.yaml b/_bmad-output/implementation-artifacts/sprint-status.yaml index 7958e56..8600c2d 100644 --- a/_bmad-output/implementation-artifacts/sprint-status.yaml +++ b/_bmad-output/implementation-artifacts/sprint-status.yaml @@ -35,7 +35,7 @@ # - Dev moves story to 'review', then runs code-review (fresh context, different LLM recommended) generated: 2026-04-22 -last_updated: 2026-04-22 # 2-1 story created, epic-2 in-progress +last_updated: 2026-04-22 # 2-1 done, epic-2 in-progress project: planeMapper project_key: NOKEY tracking_system: file-system @@ -53,7 +53,7 @@ development_status: # Epic 2: Live Radar Display epic-2: in-progress - 2-1-aircraft-data-model-and-fetcher: ready-for-dev + 2-1-aircraft-data-model-and-fetcher: done 2-2-coordinate-projection-and-base-map-loading: backlog 2-3-home-marker-and-airspace-outlines: backlog 2-4-altitude-colour-bands-and-aircraft-type-icons: backlog