Vercel hit the free tier ceiling, so the web app stopped building for changes it cannot see, and a new client started that holds no access to the database.
What I did
Vercel reported 100% of its 10 GB Function Storage; the cause is accumulation — every retained deployment keeps its own copy of three Node functions, and since 17 July only 40 of 1072 commits on main touched lifalign/apps/web.
The web app stopped building for changes it cannot see; the rest of the day added two skipped records instead of dozens of builds.
Wrote a tool in the factory that deletes old deployments from the tick — it has never run, because profile.json has no vercel block and the trigger returns silently.
Deleted the old deployments by hand: 312 left, 154 of them READY, nothing older than 1 September. The 12.33 GB has not moved yet.
Rate limiting got a cheap local check: a cookie’s token is tested for shape and a known signing key before anything goes out to Supabase for it.
Both .bicepparam files asked for the image tag latest, which nothing publishes; they point at dev.
Decided the new frontend will hold no access to the database, and started the client that proves it: sign in, list time categories, sign out, one API_BASE_URL.
What the factory did
Opened the change that offers a ritual as done without a Reality block — a finished plan block is enough; waiting to merge.