Merged
Conversation
Weekly times are saved and filled 8 weeks ahead, and a one-minute tick keeps them topped up, advances expired overflow offers, and sends 24-hour reminders outside quiet hours. Sign-up needs only a name, schedule cards open the session, every coach screen shares one nav, and overflow texts name the session and the backup coach's pay. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
On the schedule screen, a coach with nothing on the calendar says their week into one box (or texts it). The model fills a closed setup schema; product code validates it, asks for a missing price or headcount instead of guessing, renders the preview, and writes nothing until Publish. Publish runs once and reuses anything that already exists. PLATFORM.md R5 gains an additive-setup exception. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Every text now goes through sendText: one segment (typography flattened so it never silently becomes UCS-2), +1 destinations only, 300 per coach per day, 2,000 per coach per month, 400 per active coach per product day with a floor of 500, and 5 sign-in codes per number per day. Every attempt is logged. Adds an opt-in eval of voice setup against the live model. Test servers answer Connection: close, so fetch never reuses a dead pooled socket when a later server gets the same port. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A bare listen(0) binds every interface, and macOS will give it a port another program already holds on 127.0.0.1; a test's request to 127.0.0.1:<port> then reached that program and hung or got a 401. listenLoopback binds loopback explicitly and waits for the port. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…erywhere. .nvmrc and package.json engines name Node 24; a test keeps them and CI in step, CI's required check reads .nvmrc, and a non-blocking job runs the newest LTS and Current. Railway reads engines, so production moves from 22 to 24 on the next deploy. Express 5, PGlite 0.5, TypeScript 6.0, ESLint 10, @types/node 24; npm ci refuses an older Node. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A RAILPACK_NODE_VERSION=22 variable, which Railpack reads before engines, pins all three environments; merging this alone leaves production on 22. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
.railway/railway.ts describes the web service in development, uat, and production, rebuilt from the live configuration with every variable preserved. Plan reports it already matches all three environments, and it has been applied to each with no change. It owns only web, so Postgres and slack-cards are untouched. RAILPACK_NODE_VERSION comes from .nvmrc. railway.json is deleted before Railway's 2026-12-01 cutoff. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Keep a coach's week on the calendar and run the background work
Let a coach talk their week in and publish it
Stop a texting loop in the send path, and fix the flaky test servers
Run on Node 24 LTS and current dependencies, with one Node version everywhere
Move Railway from railway.json to Infrastructure as Code
The stub at / is a Postcard marketing page. Typed text rides a cookie through phone sign-in; a stranger's text gets a one-time link. The model runs only after the phone is proven, and nothing goes live until Publish. Co-authored-by: Cursor <cursoragent@cursor.com>
Say your week on the home page and start taking bookings
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Promotes
develop(f4e2b13) tomain, which deploys production. This is the same code that's live on uat via #22..railway/railway.tsreplacesrailway.jsonMigrations 0007–0010 are additive only and have already run cleanly on development and uat.
Verified on uat (
21bbe13): boot logCoachatron listening on 3000 (Node v24.21.0),/serves the week box,/signin200, DB-backed routes answer,/start/<bad token>410, and/app/scheduleredirects when signed out.Rollback: production's current deployment is on
97012f4with Node 24.🤖 Generated with Claude Code