Files
rippr/docs/feedback
uhryniuk 97e3aaa5a0 FB-07: fix Route Planner opening on Null Island
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.
2026-08-25 00:10:32 -05:00
..

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

  1. Implement against the ticket's own Implementation section.
  2. flutter analyze clean, flutter test green — count must not regress (374 passing before this batch starts).
  3. Outcome section appended to the ticket file: what shipped, deviations, test counts.
  4. 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.