Lanes
One lane at a time — the goal, the critical path, and the current wave of blockers.
iOS — Settings, Analytics & tools build
Remaining build work across Settings, Analytics, ConnectCard, the AI panel, and QR/NFC programming. Everything marked 'coming soon' here is intended to ship.
Geo tile: Region and City chips leave the Analytics tile on an endless skeleton (tile VM loads countries only)
Viv — on the live Analytics dashboard, the .geoTable tile shows the Country / Region / City chips, but only countries are ever fetched. Tapping Region or City sets local state and nothing loads, so the tile shows GeoSkeletonRows forever. Done when: on the tile path, tapping Region or City either loads that level (and shows rows, the empty view, or the error view) or the chip is not offered until it can load; a test pins it. Found by the r33 reader on t_2f9fa22f; pre-existing on origin/main 4f2c1d6b, not caused by #678. Cites on origin/main: DashTileContent.swift:218-232 (DDGeoWidgetTileWrapper, onGranularityChange: { granularity = $0 }), TileViewModel.swift:29,49-50,150-151 (regions/cities stay .idle; geoTable fetches countries only), GeoWidget.swift:145-155 (City chip always shown) and :238-240 (.idle and .loading both draw GeoSkeletonRows), DeepDiveViewModel.swift:208 (setGeoGranularity, which the Deep Dive uses and the tile does not).
No dependencies in this wave — nothing gates it, and nothing waits on it.