Lunch Loop updates
What’s New
Last updated: October 1, 2026
Every production build gets an entry here. This is the running story of what changed, what was fixed, and what is getting smoother.
Build 2026.10.01.58
- Selected restaurant cards now wrap long names, addresses, hours, and Lunch Loop facts cleanly on narrow iPhone screens, so every detail stays readable while making picks.
Build 2026.09.07.57
- What’s New now derives its Last updated date from the newest release, so the date stays in step with the release list.
- Global Admin overview cards now open focused reports instead of scrolling the dashboard, and the report closes when you are done.
- Replaced early ‘Most visited’ cards with a more useful New on the list fact while a Lunch Loop is still building its restaurant story.
Build 2026.09.07.56
- Crew changes are now fully locked while a meal decision is underway: people cannot be removed or reordered until that decision is finished or cancelled, and every Lunch Loop keeps at least two people.
- Pending email and shareable invitations reserve the same remaining crew spots—even when adding a friend from another Lunch Loop—so owners cannot accidentally over-invite a six-person Lunch Loop.
- A crew name now belongs only to that Lunch Loop. Renaming someone in one crew no longer changes their Google account name or how they appear in another Lunch Loop.
Build 2026.09.04.55
- Picker results now wrap long restaurant names and addresses so the Add button stays visible on narrow phone screens.
- Added a direct Google Maps search-and-add flow inside the restaurant picker. New places go only to the current loop’s Lunch Database, then are ready to choose without leaving the decision.
Build 2026.09.03.54
- Removed the raw technical personal-data download from Account settings and disabled it for signed-in browsers. It will return only after it is redesigned as a clear, friend-readable account export.
Build 2026.09.03.53
- Dark mode now follows the same palette on every route, including the app header, footer, navigation, install guide, and public pages. It also follows a System preference when your phone or computer changes appearance.
Build 2026.09.02.52
- Completed a site-wide dark-theme contrast pass: app chrome, cards, filters, form fields, feedback, and status treatments now use readable dark surfaces while the light theme stays exactly as it was.
- Account deletion is no longer shown or available for self-service while we review the experience. Account settings continues to offer appearance controls.
Build 2026.09.02.51
- Added Account settings beside Log out, with a saved System, Light, or Dark appearance choice.
- Signed-in members can download a personal account-data export and permanently delete their account after a clear typed confirmation. Shared crews and their history stay intact; sole owners transfer a shared crew first, and the only Global Admin must add another administrator first.
- Completed the dark-mode feedback request and added database-backed account-lifecycle regression coverage.
Build 2026.09.01.50
- Owners can prepare invitations anytime, while Lunch Loop now keeps the crew size fixed during an active or already-decided meal so the picks and vetoes remain fair.
- Added a database-enforced six-person crew limit to every joining path, including immediate additions of people known from another Lunch Loop.
Build 2026.09.01.49
- Feedback now closes the loop: when a submitted report is shipped, its author sees a friendly ‘What changed’ update in their personal feedback history.
- Global Admin keeps a separate internal implementation note and a reporter-visible update, so private triage details remain private.
Build 2026.09.01.48
- Fixed the place-search field in the pick flow so typed text is always dark and readable on its white background.
- Live refreshes now preserve an in-progress picker’s unsaved restaurant choices and a crew member’s unsaved date or time change. Saving remains explicit, while vetoes and other completed updates still appear live.
Build 2026.09.01.47
- Owners can create a separate shareable code and link for every currently open crew spot, instead of replacing one code at a time.
- Each shareable invite can have an optional private name so the owner can track who it was intended for; pending codes remain independently revocable.
- The existing email invitation path remains available and unchanged.
Build 2026.09.01.46
- Owners can now generate a short, shareable one-time code and a matching lunchloop.app link when they do not have a friend’s email address.
- Shareable codes use 60 bits of cryptographic randomness, are stored only as hashes, expire after 14 days, are single-use, respect the six-person crew cap, and can be revoked from Settings.
- Generating a fresh shareable code immediately invalidates the prior one for that Lunch Loop, so an owner can quickly retire a misplaced invite.
Build 2026.09.01.45
- Owners can now add people they already share another active Lunch Loop with directly from Settings—ideal for putting together an Occasion crew with a few familiar friends.
- Known members join right away, bring a fresh copy of places they personally added, receive a Lunch Loop email when available, and see an in-app ‘you’re now part of’ message with a one-tap loop switch on their next sign-in.
- The regular one-time email invitation remains available for anyone new to your Lunch Loops.
Build 2026.09.01.44
- Improved signed-in home recovery after a browser restart or stale token: Lunch Loop now refreshes a nearly expired session before loading the current crew and retries the snapshot once with a fresh token.
Build 2026.09.01.43
- Added a Global Admin-owned-loop limit that is enforced everywhere Lunch Loops are created, restored, or transferred; the initial site-wide limit is now four active loops per owner.
- Turned the Global Admin overview into clickable reports for Lunch Loops, people, restaurants, decisions in progress, and completed winning picks with a home-area filter.
- Replaced the black Global Admin growth panel and action treatment with Lunch Loop orange, and made Google profile names searchable and visible alongside display names and email addresses.
Build 2026.08.31.42
- Hardened the database so the two-owned-loop and six-person crew limits hold even when requests arrive at the same time.
- Tightened database and API access controls: anonymous visitors cannot call internal database functions or write to public tables.
- Made restaurant detail facts faster by loading shortlist and veto history in one secure request.
Build 2026.08.31.41
- Made the Current Loop name in the global header open that loop’s home; My Lunch Loops remains the dedicated switcher.
- Removed the redundant Settings button from the global header. Global admins now see Global admin there instead, while loop settings remain under the selected loop.
- Added bounded loading, a visible Try again action, and a Refresh page option when the home snapshot is slow or fails to load.
- Fixed the fallback getting-started checklist.
Build 2026.08.31.40
- Made every active Lunch Loop card a destination: tap the current one to open it, or tap another one to switch into it.
- Made the current loop name at the top of My Lunch Loops open that loop too.
- Replaced the unclear Restaurant Database fact with a simple crew-size summary.
Build 2026.08.31.39
- Redesigned My Lunch Loops around a first-class Switch Lunch Loops chooser: every active crew is immediately visible, with one direct Use this loop action.
- Removed switching from the selected loop’s details card, so that card now focuses only on the restaurant database and settings for the current crew.
- Renamed the global Current Loop action from Change to My Lunch Loops.
- Moved archived loops into their own quieter management section.
Build 2026.08.31.38
- Rebuilt Add a Lunch Loop as a full-width app section instead of a narrow setup card.
- Made its copy work whether you are starting your first crew or another one—no more invitation-only wording or “create my private Lunch Loop.”
- Removed the redundant in-page Back and Settings row; the regular app header, Current Loop strip, navigation, and footer now carry the route context.
- Standardized the crowned 👑 Owner badge in the Current Loop strip, My Lunch Loops, and Settings.
Build 2026.08.31.37
- Replaced the internal-sounding “Working in” label with a simple Current Loop trail, including clear Standing or Occasion and Owner badges.
- Moved Create a Lunch Loop into the top-level My Lunch Loops actions instead of nesting it inside a current-loop card.
- A signed-in person without a Lunch Loop can now create their first private crew directly. Joining someone else’s crew still requires that owner’s private one-time invitation.
- Simplified the landing and no-loop experience around the two clear choices: create your own crew or join an invited crew.
Build 2026.08.31.36
- Made the active Lunch Loop unmistakable throughout the signed-in app with a persistent context trail that names the crew and whether it is a Standing or Occasion loop.
- Redesigned My Lunch Loops to lead with the current crew, clearly explain both loop types, and put changing or adding a private loop in the same first action area.
- Starting an additional loop now has the regular app header, navigation, footer, and a clear Back to My Lunch Loops path.
- Replaced the everyday black action buttons in the main join, sign-in, setup, and decision flow with Lunch Loop orange.
Build 2026.08.31.35
- Clarified Occasion onboarding: the owner sees that their own restaurant additions were copied as fresh place details, while activity remains in the original loops.
Build 2026.08.31.34
- Added Standing and Occasion Lunch Loops: recurring crews keep their picker rotation, while special nights out do not automatically hand off.
- Occasion owners make the first picks; after a completed occasion, any crew member can start the next one and make that night’s picks.
- Existing Lunch Loop members now bring a clean copy of the restaurants they added when joining another loop, without sharing visits, vetoes, or never-again history.
Build 2026.08.31.33
- Moved Feedback beside What’s New in the footer, so signed-in members see one clear feedback link instead of two.
Build 2026.08.31.32
- Polished the landing, sign-in, header, footer, and navigation layout.
- Removed duplicate app-install calls to action and added this build-by-build update page.
- Moved refresh after Settings, added Feedback to the footer, and aligned the phone-install card with the page content.
Build 2026.08.31.31
- Added a cheerful early-access welcome screen for signed-in people who have not joined a Lunch Loop.
- They can request access, check request status, or enter a crew’s one-time invitation code without seeing private-app navigation.
Build 2026.08.31.30
- Fixed permanent deletion for loops with historical picks, candidates, vetoes, and restaurant records.
- Added a complete local regression test for the deletion workflow.
Build 2026.08.31.29
- Replaced the browser delete prompt with an in-app confirmation dialog that shows validation, progress, success, and errors.
Build 2026.08.31.28
- Settings reuses its first loop lookup and loads owner-only controls in parallel.
- Global Admin waits for a restored session before deciding whether someone has site-admin access.
Build 2026.08.31.27
- Home now uses one secure database snapshot instead of a multi-query waterfall.
- Cold browser and PWA starts quietly retry while a Supabase session reconnects.
Build 2026.08.30.26
- Expanded multi-loop controls, global administration, PWA icon handling, privacy links, and the shared restaurant workflow.