Public: anyone can read this; the crew can change it.
Stop on an app's production or preview goes through the confirm page, which says the address goes quiet and the data stays #7977
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Intent: stopping a live app on the web asks first, as stopping it running as an app already does; today one click on "Stop" takes production off its address.
Today
envActionsinsrc/web/ui.ts(used bysrc/web/studio/previews.tson the app page and the previews list) draws "Stop" as a plain POST form to<base>/app/<env>/stop.Done looks like:
confirmAction({ action:${base}/app/${env.env}/stop, verb: "Stop", size: "sm" }); Redeploy stays a plain form.DESTRUCTIVEinsrc/web/pages/search.tsgets one entry for^/([^/]+)/([^/]+)/app/(production|preview-\d+|[^/]+)/stop$(match the env namesisEnvNameaccepts), added directly after thesettings/app/disableentry: verb "Stop", title "Stop <env> of <owner>/<name>?", detail "It stops answering at its address until someone presses Redeploy. Its data stays where it is.", phrase ""./-/confirm:envBackinsrc/web/pages/apps.tstreats a referer whose path is/-/confirmas no referer (falls back torepoBase(repo)).appStopis otherwise unchanged.test/confirm-app-stop.test.tsproves: the app page links Stop to/-/confirm?to=…/app/production/stop;GET /-/confirm?to=…answers 200 with that title for a writer; posting from the confirm page redirects away from/-/confirm. Each fails without the change.bun test test/confirm-app-stop.test.ts test/web-ui.test.tspasses;bun scripts/design-lint.tsis clean.Files: src/web/ui.ts, src/web/pages/search.ts, src/web/pages/apps.ts, test/confirm-app-stop.test.ts Risks:
search.tsis edited by sibling confirm issues; each inserts at a different named entry so they do not collide. A test that posts straight to/app/<env>/stopkeeps working (the POST route is unchanged). Brief: a builder who knows the web pages.