Skip to content

Decisions index

Status: living | Audience: anyone looking for where a decision is recorded | See also: ../README.md

Decisions are recorded inline, where they're made — in the design or development doc discussing the tradeoff, stamped (decision YYYY-MM-DD). This index exists only for discoverability: one row per decision, pointing at the doc that records it. Adding an inline stamp means adding a row here in the same commit; a row with no matching stamp, or a stamp with no row, means someone skipped half the rule.

The 2026-07-18 rows below were decided in the pre-code planning session, so they carry no issue references. Once work runs through issues, stamps take the form (decision YYYY-MM-DD, #NN).

Date Decision (one line) Recorded in Status
2026-07-18 Stack locked in one pass: Electron + TypeScript + React with electron-vite / electron-builder and the seed kit's governance toolchain development/TechStack.md § The stack Adopted
2026-07-18 ATC audio commits to all four behaviors: activity lights, one-click solo, stereo pan, priority auto-duck design/Audio.md § The unifying principle Adopted
2026-07-18 Ducking rule: duck only under a strictly-higher-priority active stream, to −12 dB, fast duck / slow release design/Audio.md § ATC streams Adopted
2026-07-18 Per-stream output-device routing for ATC streams design/Audio.md § ATC streams; development/TechStack.md § Why this stack Adopted
2026-07-18 Build sequencing within audio: lights → solo → pan → duck Implementation-Plan.md § Phase 2b Adopted
2026-07-18 Curated defaults + human-editable config file; no in-app management UI in alpha design/Video.md § Feed sourcing; design/Stakeholders/Command-Center-Enthusiast.md § Domain of awareness Adopted
2026-07-18 Live-stream discovery is on-demand only — no background polling design/Video.md § Feed sourcing Adopted
2026-07-18 Restore last session on relaunch: layouts, feed assignments, pop-outs, per-stream settings design/Video.md § Pop-outs and restore Adopted
2026-07-18 Tracking panel is a genuine embedded browser (the site refuses lightweight embedding — verified) design/Tracking.md § Features Adopted
2026-07-18 Tracking navigation stays minimal: back / forward / reload / home preset on Oshkosh design/Tracking.md § Features Adopted
2026-07-18 Tracking session and login persist across relaunches design/Tracking.md § Features Adopted
2026-07-18 Tracking panel lands in the walking skeleton — bounds-sync is the foundational layout risk Implementation-Plan.md § Phase 1 Adopted
2026-07-18 Kit's one-phase-in-progress rule adapted to one phase per track for the agent-assisted sprint Implementation-Plan.md § header + intro Adopted
2026-07-18 Alpha ships config-file-driven with unsigned builds; Casual Spotter gaps accepted and named design/Personas.md § Alpha priority; design/Stakeholders/Casual-Spotter.md § Value Adopted
2026-07-18 Public GitHub releases from a public repository design/Stakeholders/Programmer-Aviator.md § Value Adopted
2026-07-18 Governance solo-tuned for the sprint (no required reviews; protection on main only); tightens post-show design/Stakeholders/Programmer-Aviator.md § Not expected to Adopted
2026-07-18 Docs website is generated from docs/ by MkDocs Material — machinery in website/, Pages source moves to Actions, landing page becomes docs/index.md; ships with Phase 5 Implementation-Plan.md § Phase 5; development/TechStack.md § The stack Adopted
2026-07-18 Binary assets tracked with Git LFS from first commit; legacy-Pages pointer caveat accepted until the Phase 5 site build development/TechStack.md § The stack + Known limitations Adopted
2026-07-19 Packaged renderer served from a loopback HTTP server (127.0.0.1); app:// demoted to a logged fallback, because YouTube's IFrame API rejects the app:// origin (error 153) development/TechStack.md § Known limitations Adopted
2026-07-19 A muted higher-priority channel does not duck lower channels — its light still shows activity, but it never ducks audio the operator is actually listening to design/Audio.md § ATC streams Adopted
2026-07-19 Project renamed airshow-traffic-monitor / "Airshow Traffic Monitor" — airshow-generic identity; EAA AirVenture stays the first target, not the boundary README.md § intro Adopted
2026-07-19 Docs-site home is docs/README.md, not a new docs/index.md — MkDocs collides the two at the site root, and the plan-frozen Implementation-Plan.md links to README.md, so README.md stays the home and index.html is deleted (refines the 2026-07-18 "landing page becomes docs/index.md" row) development/Pages-deployment-runbook.md § Sequencing gotcha Adopted
2026-07-19 Session restore is one session.json (electron-store), held authoritative in memory and flushed atomically on a ~500 ms debounce (guaranteed flush on quit) development/TechStack.md § Session restore and pop-outs Adopted
2026-07-19 Missing-display window bounds are validated by a pure, Electron-free function that recentres/shrinks an off-screen window onto a connected display development/TechStack.md § Session restore and pop-outs Adopted
2026-07-19 Per-stream volume/mute/pan are session-restored; priority stays config-owned (re-derived from config.json each launch, never session-pinned) development/TechStack.md § Session restore and pop-outs Adopted
2026-07-19 Pop-outs are grid-only windows loading the same bundle at ?window=popout&id=N; feeds hand off from the main grid and return on close, and quit preserves pop-outs for restore development/TechStack.md § Session restore and pop-outs Adopted
2026-07-19 Field weather sourced from the free, keyless aviationweather.gov Data API (METAR+TAF JSON); fetched main-process-only with a descriptive User-Agent, polled no more than every 5 minutes development/TechStack.md § Known limitations Adopted
2026-07-19 ATC streams are on-demand: they start disconnected (no network activity), the status pill is the connect toggle, and the connected set is session-persisted and restored (staggered) on relaunch design/Audio.md § ATC streams Adopted
2026-07-19 Reconnect back-off for a wanted-but-down stream eases from fast retries to a slow ~60 s cadence after ~5 consecutive failures, shown as a calm "feed down" state instead of a climbing counter design/Audio.md § ATC streams Adopted
2026-07-19 v0.1.0 is a personal-use milestone and pipeline validation, not a launch: no promotion or distribution beyond the primary operator until LiveATC.net grants stream-use clearance (a hard gate on any announcement) Implementation-Plan.md § Milestone Adopted