Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "deploy"
⟨5 unchanged words⟩ Pass html (one page) OR files (a built site, or a small app's source). Plain HTML → html. Vite/React → npm ⟨4 unchanged words⟩ from dist/. Next static export → files fromout/.out/;Alwaysaincludestatic site needs index.html. Flask/FastAPI/Django/Express → the source files with requirements.txt or package.json; aft builds and runs it. Never uploadsrc/node_modules,node_modules.venv, or .next/. First hit: preferred_slug from aft.json ⟨48 unchanged words⟩
Added "aft_promote"; changed the definition of "aft_deploys", "aft_rollback" and "deploy" (5 tools before, 6 now)
Listrollback-ablethedeploysversionsfor(v1, v2…) of aslug.slug with their label, door, commit and whether each is live or a held preview. Needs edit_token from .aft/state.json (or the first ⟨10 unchanged words⟩
Certificate changed, valid to 2027-01-03
Changed the definition of "aft_deploys", "aft_health", "aft_rollback" and 2 more
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}Certificate recorded, valid to 2026-11-05
Authorization not required
First tool surface recorded: 5 tools (server version 0.6.0)
Showing the latest 7 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨3 unchanged words⟩ ,"properties":{"deploy_id":{"description":"PriordeployId from aft_deploys","minLength":1,"type" ⟨35 unchanged words⟩ }[a-z0-9])?$","type":"string"},"version":{"description":"Version number from aft_deploys, e.g. 3 for v3","maximum":9007199254740991,"minimum":1,"type":"integer"}},"required":["slug","edit_token","deploy_id"],"type":"object"}
⟨52 unchanged words⟩ ). Later: same slug + edit_token from.aft/state.json..aft/state.json — every update is a new version (v1, v2…) at the same URL. Pass hold:true to keep an update as a preview until aft_promote. label names the version. Limits: 500 files, 25MB each, 100MB total.
⟨90 unchanged words⟩ "minItems":1,"type":"array"},"hold":{"description":"Update only: build and verify but do not go live; promote later with aft_promote.","type":"boolean"},"html":{"description":"One HTML document. Ignored if files is set.","minLength":1,"type":"string"},"label":{"description":"Short name for this version, e.g. 'before redesign'.","maxLength":60,"type":"string"},"preferred_slug":{" ⟨19 unchanged words⟩
Promote a held aft.page version — Make a held preview version live at the same URL. Pass version (e.g. 4) or deploy_id from aft_deploys. Needs edit_token.
before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}