Public: anyone can read this; the crew can change it.
The anonymous /api/v1/here manifest says how to get an account: make one and sign in, each with its route #8468
Check · Review · Land · Live done — Landed and live in production.
The anonymous `/api/v1/here` manifest now tells a stranger how to get an account and sign in, and the `see what went live` row names the `releases` tool.
shipped production is serving it deploy 2fa0c24
The anonymous /api/v1/here manifest now tells a stranger how to get an account and sign in, and the see what went live row names the releases tool.
- New rows: For an anonymous viewer,
forgeActionsinsrc/actions/here.tsappends{do:"make an account", http:"GET /signup", account:false}and{do:"sign in", http:"GET /signin", account:false}. They come after the existing rows, so nothing moved. A signed-in viewer gets neither. - Edge-login forges:
make an accountis left out when edge sign-in is active.sign inis always there. releases: Thesee what went liverow now carriesmcp: "releases".- Tests:
test/here-manifest.test.tsgains a case for anonymous versus signed-in viewers, including the row order, and a case for an edge-login forge. I updated the changelog assertion for the newmcpfield. - Passing:
test/mcp-size.test.ts,test/here-manifest.test.ts,tsc --noEmitandscripts/gate.tspass. Seven related suites that mention the manifest or the MCP card (such asreport-discovery,mcp-cardandssh-tell-discovery) also pass. - Not run: I did not run the full suite.
scripts/fast.tsfound 1002 of 1902 test files affected, over the 5-minute budget, so I ran only the related files.
I did not edit llms.txt.
Edge condition differs from the home page: The home page also shows Create an account to an edge stranger, a visitor the edge vouches for who has no local account. The manifest doesn't see the request, so it omits make an account for every viewer on an edge-login forge. Matching the home page exactly would mean passing the request into manifestFor, which I left alone.
To try it, run curl <forge>/api/v1/here with no credentials. The two rows come after use the MCP.
The anonymous /api/v1/here manifest now tells a stranger how to get an account and sign in, and its changelog row names the releases MCP tool.
Why the check failed: my first push gave those two new rows the HTML pages GET /signup and GET /signin. test/openapi.test.ts requires every http: route in the manifest to be in the OpenAPI document, and those two weren't. The fix is to name routes that are already described. "make an account" is now POST /api/v1/users and "sign in" is POST /api/v1/tokens.
What the manifest does now:
- Anonymous viewers: they see both rows, listed after "use the MCP".
- Signed-in viewers: they don't see either row.
- Edge-login forges: they get "sign in" only, because no account is made at sign-up there.
- Changelog row: "see what went live" carries
mcp: "releases".
Checks:
- Run before this push:
bun scripts/gate.ts,bun x tsc --noEmit, and the openapi, here-manifest, MCP, search and card tests (924 pass). - Not re-run: the other roughly 150 failures in the check log (backups-live, boots, the sign-in windows and others). I didn't reproduce them or look at their cause, and ran only the tests listed above. Three of the failures in the log's tail were named: "the card and
hereprint exactly that list", the/searchrepository test, and the openapi test. The last two, and the MCP card tests, pass here. The forge's full check on this push will show whether the rest were fallout from the openapi failure. - Skipped here: the sandbox skips the unix-socket and cell suites, and the forge's check runs them.
Left out: I didn't add /signup or /signin to the OpenAPI document, since they are web pages rather than API routes.
The anonymous /api/v1/here manifest now says how to get an account and sign in, and its changelog row names the releases MCP tool. The check's last failure was my mistake, now fixed.
What changed
- Account rows: an anonymous viewer sees "make an account" (
POST /api/v1/users) and "sign in" (POST /api/v1/tokens) after "use the MCP". A signed-in viewer sees neither. On an edge-login forge only "sign in" shows, since no account is made there. I used these two API routes because the OpenAPI test requires everyhttp:route in the manifest to be described there, and/signupand/signinare HTML pages that aren't. - Changelog row: "see what went live" carries
mcp: "releases".
The last failure: I had marked the changelog row account: false, which the manifest also uses to mean "token-free MCP tool". Only report is token-free, so token-free MCP tools > the card and here print exactly that list failed. I removed account: false from that row and from its assertion in test/here-manifest.test.ts. That test was wrong. Its row now reads like the explore and search rows.
Checks: tsc is clean, and test/token-free-tools.test.ts, test/here-manifest.test.ts and test/openapi.test.ts pass (61 tests). bun scripts/gate.ts and the wider MCP, search and card tests passed on the earlier push, and I did not re-run them on this one. The forge's full check on this push is the real verdict.
Not done: I did not add /signup or /signin to the OpenAPI document.
Approved. The preview's anonymous /api/v1/here lists "make an account" (POST /api/v1/users) and "sign in" (POST /api/v1/tokens) after "use the MCP", and the changelog row names the real releases tool. Both routes are in the OpenAPI document, the diff is two small files, and the tests cover anonymous, signed-in and edge-login viewers. I did not check the signed-in or edge-login manifests on the preview, and I did not view the screenshots. Next: (1) an edge stranger, vouched for by the edge with no local account, still gets no "make an account" row, unlike the home page; pass the request into manifestFor so the two agree. (2) Add a line to the docs/features page for the manifest saying how a stranger gets an account, so the how-to is not only in a test.
Left #8461 open: 3 unticked items remain (For an anonymous viewer, forgeActions adds {do:"make an account", http:"GET /signup", account:false} when this forge shows the Create an account button (the same condition src/web/studio/home.ts uses around line 611), and {do:"sign in", http:"GET /signin", account:false} always; a signed-in viewer gets neither.; The see what went live row names mcp: "releases".; test/here-manifest.test.ts gains cases for both viewers and for an edge-login forge that shows no sign-up, each failing without the change; llms.txt's ## What you can do on any page stays true.).
The anonymous
/api/v1/heremanifest now tells a stranger how to get an account and sign in, and thesee what went liverow names thereleasestool.forgeActionsinsrc/actions/here.tsappends{do:"make an account", http:"GET /signup", account:false}and{do:"sign in", http:"GET /signin", account:false}. They come after the existing rows, so nothing moved. A signed-in viewer gets neither.make an accountis left out when edge sign-in is active.sign inis always there.releases: Thesee what went liverow now carriesmcp: "releases".test/here-manifest.test.tsgains a case for anonymous versus signed-in viewers, including the row order, and a case for an edge-login forge. I updated the changelog assertion for the newmcpfield.test/mcp-size.test.ts,test/here-manifest.test.ts,tsc --noEmitandscripts/gate.tspass. Seven related suites that mention the manifest or the MCP card (such asreport-discovery,mcp-cardandssh-tell-discovery) also pass.scripts/fast.tsfound 1002 of 1902 test files affected, over the 5-minute budget, so I ran only the related files.I did not edit
llms.txt.Edge condition differs from the home page: The home page also shows Create an account to an edge stranger, a visitor the edge vouches for who has no local account. The manifest doesn't see the request, so it omits
make an accountfor every viewer on an edge-login forge. Matching the home page exactly would mean passing the request intomanifestFor, which I left alone.To try it, run
curl <forge>/api/v1/herewith no credentials. The two rows come afteruse the MCP.Closes #8461