Skip to content

Retire the duplicate Machines API spec - #2509

Merged
kcmartin merged 1 commit into
mainfrom
retire-duplicate-spec
Sep 25, 2026
Merged

kcmartin merged 1 commit into
mainfrom
retire-duplicate-spec

Conversation

@kcmartin

Copy link
Copy Markdown
Contributor

Closes superfly/docs-tracking#311.

The Machines API spec was a real file at two paths in this repository:

api/machines/openapi.json    the one docs.json builds the reference from
machines-api/openapi.json    the original, kept because the redirect never fires

#2496 moved it and added a redirect from the old path. That redirect has never worked: it was the only entry whose source has a file extension, and Mintlify resolves a path that looks like a file as an asset before consulting the redirect table. The old URL 404d for about three minutes until 0471e524 put the file back.

Two copies of a 157KB generated document in one repository is a drift risk, and it is about to matter, because machines-meta#86 is building a workflow to push the freshly generated spec in. Whichever path that workflow writes, the other goes stale with nothing to announce it.

This was gated on Lillian's proxy, which has now landed. docs.machines.dev/openapi.json answers 200 carrying x-vercel-cache, x-vercel-id, via: 1.1 fly.io and a fly-request-id, so it is a Fly edge proxying to Mintlify rather than the old machines-api-docs app serving its own copy. External consumers reach the spec without touching /machines-api/, which is the condition #311 was waiting on.

What changes. The file goes, and so does the redirect entry that could never fire. /machines-api to /api/machines stays, since it has no extension and works today.

What breaks. docs.fly.io/machines-api/openapi.json will 404 rather than falling through to the redirect, for the same asset-resolution reason. That path has existed for two days, since the cutover, and nothing in superfly/docs, superfly/ui-ex or superfly/landing links to it. The published URL that consumers actually use is docs.machines.dev/openapi.json, which is unaffected, and landing/pages/llms.txt points there.

The spec was a real file at two paths. api/machines/openapi.json is the
one docs.json builds the reference from; machines-api/openapi.json was
kept only because the redirect added in 2496 never fires, Mintlify
resolving a path with a file extension as an asset before it consults
the redirect table.

This was gated on Lillian proxying docs.machines.dev/openapi.json to the
new path, which has now landed. That URL answers 200 with Vercel and Fly
proxy headers rather than from the old machines-api-docs app, so
external consumers reach the spec without touching /machines-api/.

Removes the file and the redirect entry that could never fire. Keeps
/machines-api to /api/machines, which has no extension and works.
@mintlify

mintlify Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
fly-io 🟢 Ready View Preview Sep 25, 2026, 10:19 PM

💡 Tip: Enable Automations to automatically generate PRs for you.

@kcmartin
kcmartin merged commit 46865d5 into main Sep 25, 2026
2 checks passed
@kcmartin
kcmartin deleted the retire-duplicate-spec branch September 25, 2026 22:33

This branch was successfully deployed

1 active deployment
staging — 60de3faf Deployed Sep 25, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant