Skip to content

Explain blocked forms, allow no coffee cut-off, sync until done - #47

Merged
stretch0 merged 1 commit into
mainfrom
form-errors-coffee-sync
Nov 2, 2026
Merged

stretch0 merged 1 commit into
mainfrom
form-errors-coffee-sync

Conversation

@stretch0

@stretch0 stretch0 commented Nov 2, 2026

Copy link
Copy Markdown
Owner

What changed

  • Forms say what's missing. Pressing Add repeating run with no name did nothing visible on Firefox for Android: the browser blocked the form but shows no message there, and the field it jumped to sat under the sticky header. Now any form with an empty required field brings that field to the middle of the screen, focuses it, outlines it in red and shows "Fill in “Name” first." It's one shared component (FormHint), so every form gets it.
  • No coffee cut-off. A new "No cut-off" option, now the default for new runs, keeps orders open after the run, until it stops showing as upcoming (three hours after the start). Stored as orderCutoffMin = -180 (NO_CUTOFF in libs/domain), so there's no migration. The coffee nudge still goes 30 minutes before the start ("Want a coffee after Social?"), and the run page says "You can still order after the run." Existing runs keep their cut-off.
  • Sync until done. Sync now (and connecting) keeps syncing until nothing is waiting, updating the count after each batch of 25, instead of one batch per press. It stops early if a batch gets nowhere, and after 40 batches (about 1,000 runs); scheduled syncs fetch any rest.

Checks

  • New tests: orders open an hour after a no-cut-off run's start and closed four hours after; the nudge goes before the start and not again; ordersCloseAt with NO_CUTOFF; e2e: sending the repeating run form without a name shows the hint.
  • api, web, schemas and domain lint, typecheck and tests pass; e2e: 12 passed.
  • Not yet checked on a phone.

🤖 Generated with Claude Code

- An empty required field now brings the field to the middle of the
  screen and says what's missing. Firefox for Android shows no message
  of its own, and the field it jumped to sat under the sticky header,
  so buttons like Add repeating run seemed to do nothing.
- Coffee orders can stay open after the run ("No cut-off", now the
  default): they close when the run stops showing as upcoming, three
  hours after the start. The nudge still goes before the start.
- Sync now keeps going until every waiting run is imported, instead of
  25 per press.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@stretch0
stretch0 merged commit 732d751 into main Nov 2, 2026
5 checks passed
@stretch0
stretch0 deleted the form-errors-coffee-sync branch November 2, 2026 20:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant