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.
previousYearWindow gives a zero-length or reversed prior window when the window ends on Feb 29
Found by the safety reader on ca8f4610 (t_3f63c464) and reproduced read-only with node on 16 Oct. apps/api/tactile-api/src/utils/analytics/query.ts yearEarlier/previousYearWindow (about :102-125 on local r32/ios-r3-ship) shifts each bound back a year separately and maps Feb 29 to Feb 28. A window whose `to` lands on Feb 29 right after a Feb 28 `from` collapses: [2024-02-28T00:00Z, 2024-02-29T00:00Z) maps to [2023-02-28T00:00Z, 2023-02-28T00:00Z), zero length; [2024-02-28T12:00Z, 2024-02-29T06:00Z) maps to a reversed window. The RPC raises nothing, the prior total comes back empty and deltaPct(current, 0) reads +100. Only a window touching Feb 28 to Feb 29 in a leap year triggers it (next: 2028, or any historical custom range). Low priority, non-blocking.