Public: anyone can read this; the crew can change it.
When a new forge's crew cannot continue on a green pull, the pull and app page say why and offer Land it as it is #11901
Check · Review · Land · Live — Its check is queued.
When the crew cannot go on, a green pull now says why and offers **Land it as it is**. This is on the pull page, the studio pull page and the app's page. The new test fails without the wiring and passes with it, and `tsc`, `gate.ts`, `design-lint.ts`, `mcp-size` and the related pull/merge/studio tests pass. I did not take the 1280 px or 390 px screenshots, so none are in this pull. The sandbox has…
7 files · +258 −3
working queued to check deploy 631d382
Check queued 40mCheck of 631d382fast tier: queued · full gate runs on land
Website spec: 23 findings (report only)
- / <a href="/admin-ada0/admin/app/production/open"> has no accessible name — names
- / <a href="/bad-name-12dd/bad-name/app/production/open"> has no accessible name — names
- /front <a href="/admin-ada0/admin/app/production/open"> has no accessible name — names
- /front <a href="/bad-name-12dd/bad-name/app/production/open"> has no accessible name — names
- /board http://127.0.0.1:32799/board answered 303 — https://specification.website/
- /notes http://127.0.0.1:32799/notes answered 303 — https://specification.website/
- /feed http://127.0.0.1:32799/feed answered 303 — https://specification.website/
- /review http://127.0.0.1:32799/review answered 303 — https://specification.website/
- /releases http://127.0.0.1:32799/releases answered 303 — https://specification.website/
- /repos http://127.0.0.1:32799/repos answered 303 — https://specification.website/
- /map http://127.0.0.1:32799/map answered 303 — https://specification.website/
- /system http://127.0.0.1:32799/system answered 303 — https://specification.website/
- /talk http://127.0.0.1:32799/talk answered 303 — https://specification.website/
- /flow http://127.0.0.1:32799/flow answered 303 — https://specification.website/
- /resilience http://127.0.0.1:32799/resilience answered 303 — https://specification.website/
- /boards?help http://127.0.0.1:32799/boards?help answered 303 — https://specification.website/
- /settings/crew http://127.0.0.1:32799/settings/crew answered 303 — https://specification.website/
- /settings/crew?help http://127.0.0.1:32799/settings/crew?help answered 303 — https://specification.website/
- /preview-admin/sample expected exactly one <h1>, found 2 — headings
- /preview-admin/sample/next expected exactly one <h1>, found 2 — headings
- /preview-admin/sample/bets expected exactly one <h1>, found 2 — headings
- /preview-admin/sample/waves expected exactly one <h1>, found 2 — headings
- /preview-admin/sample/milestones expected exactly one <h1>, found 2 — headings
When the crew cannot go on, a green pull now says why and offers Land it as it is. This is on the pull page, the studio pull page and the app's page. The new test fails without the wiring and passes with it, and tsc, gate.ts, design-lint.ts, mcp-size and the related pull/merge/studio tests pass. I did not take the 1280 px or 390 px screenshots, so none are in this pull. The sandbox has no browser, so a person needs to take them.
What changed
- The sentence: it reads "The crew cannot go on: the included credit is spent." or "…it has no model key.". It shows only when the forge has a crew with nothing to run on.
- The offer: it comes with the preview link and an Add a key link to
/settings/subscriptions. A non-admin sees "Ask this forge's admin to add a key." instead of the link. - The button: it posts to the pull's existing ship action (
POST …/pulls/:n/ship). That route already does the same-origin check andmergePull. - Never red: it is offered only when the check is green and the verdict is "Ready to land". The app page lists each green pull waiting on the viewer, with its own button.
- MCP: the existing
mergetool takesaction: "land"(squash, refused withcheck_requiredunless the check is green). Its dry-run plan carriescrewwith the same sentence. No new tool was added. - Wording:
STRANGER_NEVER_SEESwords are checked against the card in the test. - Where it lives:
src/web/studio/land_as_is.ts, wired intosrc/web/pages/pull.ts,src/web/studio/change.tsandsrc/web/studio/app.ts. The how-to is indocs/features/land-as-is.md, and the test istest/land-as-is.test.ts.
Test (test/land-as-is.test.ts)
- A green pull exists, then credit is spent.
- The sentence, button, preview and key link appear on the pull page, the Files step and the app page.
- A foreign-origin press lands nothing.
- A same-origin press lands the pull.
- Nothing is offered while credit remains.
- Nothing is offered on a red pull.
Left out
- The MCP
landaction has no test of its own beyond themcp-sizecheck. - The crew's "cannot continue" is read from key and credit state. A per-day spend ceiling is not covered.
scripts/fast.tsnamed 1,756 test files, so I ran the pull, merge and studio tests instead of that list.
Try it: on a forge with a crew and no key, set credit.spentUsd equal to capUsd in parent.json. Open a green pull or the app page and press Land it as it is. A person still needs to run #11541's production probe after release.
When the crew cannot go on, a green pull now says why and offers Land it as it is. This is on the pull page, the studio pull page and the app's page. The new test fails without the wiring and passes with it, and
tsc,gate.ts,design-lint.ts,mcp-sizeand the related pull/merge/studio tests pass. I did not take the 1280 px or 390 px screenshots, so none are in this pull. The sandbox has no browser, so a person needs to take them.What changed
/settings/subscriptions. A non-admin sees "Ask this forge's admin to add a key." instead of the link.POST …/pulls/:n/ship). That route already does the same-origin check andmergePull.mergetool takesaction: "land"(squash, refused withcheck_requiredunless the check is green). Its dry-run plan carriescrewwith the same sentence. No new tool was added.STRANGER_NEVER_SEESwords are checked against the card in the test.src/web/studio/land_as_is.ts, wired intosrc/web/pages/pull.ts,src/web/studio/change.tsandsrc/web/studio/app.ts. The how-to is indocs/features/land-as-is.md, and the test istest/land-as-is.test.ts.Test (
test/land-as-is.test.ts)Left out
landaction has no test of its own beyond themcp-sizecheck.scripts/fast.tsnamed 1,756 test files, so I ran the pull, merge and studio tests instead of that list.Try it: on a forge with a crew and no key, set
credit.spentUsdequal tocapUsdinparent.json. Open a green pull or the app page and press Land it as it is. A person still needs to run #11541's production probe after release.Closes #11892