A brand-new route (or one with fewer than two pins) now falls back to the ambient GPS position for its initial map center instead of (0, 0) in the middle of the ocean, reusing FB-01's ambientPositionProvider. Routes with one or more real waypoints are unaffected. Falls back to (0, 0) as before when no ambient fix is available. Adds three widget tests covering the fixed-fix, no-fix, and real-waypoint-wins cases. Emulator verification was attempted but the Android emulator became unresponsive partway through and was abandoned per the ticket's conservative-use guidance; details in the ticket's Outcome section.
Post-launch feedback tickets
Same shape as docs/ui-redesign/: one file per ticket, Goal · Context · Design ·
Implementation · Acceptance criteria · Tests · Risks · Out of scope, written before
implementing, with an Outcome section appended after.
Source: docs/FEEDBACK.md — hands-on feedback after using the redesigned app. Turned
into 5 tickets, each independently completable (self-contained enough for a fresh
subagent with no prior context to implement correctly).
The tickets
| # | Ticket | Size | Depends on | Status |
|---|---|---|---|---|
| FB-01 | Live, street-level map everywhere | L | — | Done |
| FB-02 | Hide the idle Speed panel until recording starts | S | — | Done |
| FB-03 | Grid-snapped HUD widgets with auto-fit text | L | — | Done |
| FB-04 | Fix Route Planner's map failing to render + zoom | M | FB-01 (shared zoom constant) | Done |
| FB-05 | Closed-loop routes in Route Planner | M | FB-04 (same file) | Done |
Dependencies / dispatch order
Wave 1 (parallel): FB-01, FB-02, FB-03
Wave 2 (after Wave 1 lands): FB-04 — reuses FB-01's ambientZoom constant
Wave 3 (after Wave 2 lands): FB-05 — heavily edits the same file FB-04 just touched
FB-02 and FB-03 both touch lib/src/ui/record/record_screen.dart, but disjoint
regions (the idle-state Column vs. _HudMetricValue) — low conflict risk.
Working method, per ticket
- Implement against the ticket's own Implementation section.
flutter analyzeclean,flutter testgreen — count must not regress (374 passing before this batch starts).- Outcome section appended to the ticket file: what shipped, deviations, test counts.
- Commit, status flipped to Done in both the ticket file and this table.
Android-emulator verification is best-effort only for this batch — lean on widget tests as the primary bar; don't get stuck fighting emulator flakiness.