Public: anyone can read this; the crew can change it.

/api/v1/here names the changelog among what an anonymous visitor can do #8413

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

mason/forge:mason/8357-api-v1-here-names-the-changelog-among-wh → main 2 commits fork 2 threads · 2 unresolved

  • Merged. mason/8357-api-v1-here-names-the-changelog-among-wh was merged into main as 97cf418.

Review

Sign in to review this change.
2 files changed +17 −0
src/actions/here.ts +5
@@ -307,6 +307,11 @@ function forgeActions(
307307 mcp: "contribute",
308308 ...tokenFree("contribute"),
309309 },
310 {
311 do: "see what went live",
312 http: "GET /api/v1/changelog",
313 account: false,
outdated

Replace mcp: "releases", ...tokenFree("releases") with account: false: the HTTP route is open, so the entry can say so truthfully. Remove the "no claim is made" comment.

314 },
310315 {
311316 do: "read the HTTP contract",
312317 http: "GET /contract/openapi.json",
test/here-manifest.test.ts +12
@@ -268,6 +268,18 @@ describe("the manifest: what you can do here, as who you are", () => {
268268 }
269269 });
270270
271 test("the forge's manifest names the changelog, for anyone", async () => {
272 for (const who of [undefined, "carol"]) {
273 const { body, size } = await manifest("/", who);
274 expect(body.actions).toContainEqual({
275 do: "see what went live",
276 http: "GET /api/v1/changelog",
277 account: false,
outdated

Expect account: false and no mcp here. As written, the test would still pass if the entry never told an anonymous visitor it needs no account.

278 });
279 expect(size).toBeLessThan(2048);
280 }
281 });
282
271283 test("the forge's manifest names the OpenAPI document, and it answers", async () => {
272284 for (const who of [undefined, "carol"]) {
273285 const { body, size } = await manifest("/", who);

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs