Trip Split

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.
Fixed
  • 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.
Fixed
  • 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.
Fixed
  • "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.