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

opened this

Check · Review · Land · Live — Its check is queued. Next: reviewer, no review yet.

Ready to land

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)
opened this

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 and mergePull.
  • 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 merge tool takes action: "land" (squash, refused with check_required unless the check is green). Its dry-run plan carries crew with the same sentence. No new tool was added.
  • Wording: STRANGER_NEVER_SEES words are checked against the card in the test.
  • Where it lives: src/web/studio/land_as_is.ts, wired into src/web/pages/pull.ts, src/web/studio/change.ts and src/web/studio/app.ts. The how-to is in docs/features/land-as-is.md, and the test is test/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 land action has no test of its own beyond the mcp-size check.
  • The crew's "cannot continue" is read from key and credit state. A per-day spend ceiling is not covered.
  • scripts/fast.ts named 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.

Closes #11892

commented

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 and mergePull.
  • 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 merge tool takes action: "land" (squash, refused with check_required unless the check is green). Its dry-run plan carries crew with the same sentence. No new tool was added.
  • Wording: STRANGER_NEVER_SEES words are checked against the card in the test.
  • Where it lives: src/web/studio/land_as_is.ts, wired into src/web/pages/pull.ts, src/web/studio/change.ts and src/web/studio/app.ts. The how-to is in docs/features/land-as-is.md, and the test is test/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 land action has no test of its own beyond the mcp-size check.
  • The crew's "cannot continue" is read from key and credit state. A per-day spend ceiling is not covered.
  • scripts/fast.ts named 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.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs