Lanes
One lane at a time — the goal, the critical path, and the current wave of blockers.
Android — Destinations build
CORRECTED 2026-09-22 — THE EDITING CLAIM IN THE OLD GOAL IS FALSE. Verified in code, not inferred. The old goal read: "Editing is the real gap: only website and notes are editable post-create — 11 of 13 types show 'Editing coming soon,' mirroring iOS's destination-editing gap almost exactly." ALL FOURTEEN KINDS ARE EDITABLE ON ANDROID TODAY. DestinationLaunchpadViewModel.canEdit() (apps/android/.../ui/destinations/launchpad/DestinationLaunchpadViewModel.kt:242-256) returns true for WEBSITE, NOTES, WIFI, BLUETOOTH, PAYMENT, LINK_HUB, ACTION, DOCUMENT, VIDEO, AUDIO, CONTACT, MENU, FORM and GALLERY. startEdit() has a real branch for each, and the ViewModel carries per-kind editor state (wifi security coercion, gallery span baselines, document metadata, and so on). The "Editing this destination type is coming soon." string at :457 survives only as the `else ->` fallback of an exhaustive when, which no kind reaches. CREATION was already comprehensively built (~20 builders across all 8 categories), which the old goal did say. TWO STALE ARTEFACTS IN THE SAME FILE, both worth fixing rather than re-deriving: 1. The class KDoc at :133-137 still says "per-type content edit (website URL / note body in this chunk — other types report 'coming soon', matching the iOS editor router's own fallback)". That sits FOUR LINES above the allowlist that disproves it. Filed as its own row. 2. DestinationLaunchpadScreen.kt:463 renders `if (viewModel.canEdit(record.type)) "Edit" else "Edit (coming soon)"`. The else arm is now unreachable for every kind; harmless, but it is the visible half of the same stale claim. WHAT IS ACTUALLY LEFT IN THIS WAVE (all backend or human QA, none of it Android UI): · t_409f79aa — pin the destination-scoping predicate on collection writes (static scan over routes/). · t_40aa2a6c — visibility-gate's owner exception has no test; deleting it keeps the suite green. · t_506b6cdc — form.ts writes `fields` entries to JSONB with zero per-entry validation. · t_4533c0a4 — round-20 adversarial residue: clientKey collapses IPv4-mapped IPs; 2 of 3 clients bypass the resend meter. · t_c9a11962 — verify:secrets-rotation red (Matthew's, do not touch). · t_5f908809 / t_7dd95798 / t_985a671e — human QA sign-offs for Kaitlynn, not agent work. t_985a671e carries a hazard that must reach the QA script: the Android build in ~/TacTile-dev/TacTile-android points at staging-api, which reads and writes the PRODUCTION Supabase project. There is no staging database, pitr_enabled is false, and there are zero stored backups.
Menu update wipes every section/item/price on any mid-rebuild failure
Saving an edited menu deletes the whole menu first and rebuilds it. If anything fails partway, the menu is gone and there is no backup to restore it from.
No dependencies in this wave — nothing gates it, and nothing waits on it.