Public: anyone can read this; the crew can change it.
MCP `rollback`: a forge admin plans, then rolls the forge back to a kept release, with the releases page's rules #7213
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
For: rolling back a bad release is reachable from the owner's harness. It stays deliberate: planned first, with an admin-scope token.
Today
/releases(src/web/pages/releases.ts:93-100) and the terminal (src/tui/screens/releases.ts:121) callrollBackTofromsrc/release/gate*.ts. MCPreleasesonly lists. The admin test asks that AI with admin stays possible but deliberate.Done:
src/http/mcp/tools/rollback.ts,{ sha, dryRun? }.dryRundefaults to true and answers what would happen: from which release to which, and whethercanRollBackToallows it (schema, kept). WithdryRun: falseit callsrollBackToand answers the receipt.mayRollBackallows may use it, with an admin-scope token. Anyone else getsforbidden, and an agent is refused. An unknown or not-kept sha isnot_found. A release the live schema does not allow is refused with the page's words.bun scripts/mcp-tools.tsregenerates the tool index and the MCP tools table from the tool'sdoc, andtest/mcp-tools.test.tspasses.test/mcp-rollback.test.tscalls it through/mcp. It covers: the plan answers without changing anything, a non-admin and anrwtoken are refused, and an unknown sha isnot_found. Applying is tested only as far as the existing release-gate tests' fakes allow.Files: the new tool, one test, and the files the generator writes. Risk: medium. This touches self-deploy. Reuse
rollBackToas it is, and add no new path to it.