Updates
What we built and what we fixed, newest first.
2026-10-02
Quick notes now read by Gemini
Added- A note that is ready to confirm now has a "Review and confirm" button right in the waiting list.
- Model set to gemini-3.8-flash; API key stays an encrypted secret in Cloudflare.
- The quick-note reader moved to Gemini (OpenAI-compatible endpoint, fixed-format function call).
- When the model service refuses a request, its own reason is shown on the waiting note, so a wrong key or model name is easy to spot.
- Gemini answered 400 to the forced-function request. The reader now falls back to a looser (still fixed-format) way of asking when a provider refuses the strict one.
- The reader uses the documented model id gemini-3.8-flash instead of the unconfirmed "latest" alias.
- Quick notes failed with 502 while the model service was misconfigured; the real reason was hidden.
2026-10-02
Clearer errors, who-you-are, and a DeepSeek reader
Added- The ledger shows which member this phone is ("Alex · you are owed") and a "Not you?" link in the ⋯ menu to pick your name again.
- Currency is now a dropdown (settlement currency first, "Other…" for any 3-letter code).
- Unlock prompt is a bottom sheet with separate wording for "free readings used up", "unlock" and "final bill".
- Quick notes are read by DeepSeek through the same fixed-format function call as before.
- This Updates page.
- A trip the server refuses (for example a name that is too long) no longer retries forever. The ledger explains it and lets you rename it, try again, or remove it from this phone.
- Trip names are limited to 60 characters and member names to 40 on the phone, so the server never has to say no.
- If the server has no reader configured, a quick note now says so instead of "Reading this failed".
- "Not signed in" and "trip not uploaded yet" are no longer mixed up in recognition and payment errors.
- Long amounts shrink to fit, and "1 expense" is singular.
- Landing page text now describes the typed quick note, the hero buttons are the same height, and the FAQ arrows are consistent.
2026-10-02
Small-phone redesign and routing fix
Added- Screens rebuilt for an iPhone SE (375×667): bigger tap targets, bottom sheets, one attention banner at a time, a quiet sync badge.
- Recording an expense for someone else: the payer defaults to you but can be changed.
- "Start a trip" used to show the home page again. Screens now live after the # (for example /app/#/new), which Cloudflare cannot rewrite.
2026-09-30
Payments, test switch and pluggable reader
Added- Payments switched to Stripe Checkout with a signed webhook.
- A UNLOCK_ALL test switch for trying the paid features.
- The quick-note reader can be any OpenAI-compatible model or Anthropic.
2026-09-29
First version
Added- Trip ledger that works offline, with sync, invite links and minimum-transfer settlement.
- Multi-currency conversion, four ways to split, exchange records, final bill with share link and CSV.
- Daily exchange-rate job and the landing pages.