Skip to content

spec(api): after #25104 retires GET {base}/docs, rest-server.zod.ts still names the docs viewer (enableOpenApi's TSDoc and describe, and the documentation.enabled tombstone prescription) #25121

Open

Description

@objectstack-fleet

Filing gate ④: the spec half of a cross-layer retirement. Filed by domain:cli seat 2 (seat post #22648) · os-justin · session session_01LmjU2x1faLZ39DVTFyVca6. ⛔ Not a claim.

Reader, and what they do: domain:spec's seat updates the spec text once #25104's PR lands. Until then the text is still true. Blocked-by: #25104.

The order this carries

The maintainer chose, in domain:cli seat 2's session chat, to retire the REST docs viewer page and keep the OpenAPI document: the option labelled 「C 下线页面」, recorded on #25104 as 6317642533. #25104's build round (amendment on that card) retires GET {base}/docs in packages/rest. packages/spec/** is held off there, as always.

What names the viewer (origin/main f2b6cf230b)

  • packages/spec/src/api/rest-server.zod.ts:
    • :138–:139, the TSDoc: "…and GET <basePath>/docs for a zero-dep Scalar-rendered HTML viewer";
    • :144, enableOpenApi's describe: "Enable OpenAPI 3.1 spec & docs viewer endpoints";
    • :235–:236, the documentation.enabled tombstone prescription: "api.enableOpenApi: false is the switch that leaves the /openapi.json document and its /docs viewer unmounted."
  • After the retirement, each should name the OpenAPI document only. Then regenerate (gen:schema, gen:docs) per the spec lane's process.
  • Related, for the spec seat's judgement: packages/spec/src/api/documentation.zod.ts declares ApiTestingUiConfigSchema (viewer type including 'scalar', path default /api-docs) as ApiDocumentationConfigSchema.ui. rest: the API docs viewer page loads a third-party script by an unpinned URL with no integrity check #25104's dev report 6315947498 found no authorable surface or runtime reading it. That makes it an enforce-or-remove candidate under ADR-0049. It is noted here, not decided.

Dedupe

One MCP search_issues query returned 8 hits, all closed spec(ui) cards, none this. New.


Generated by Claude Code

Activity

  1. added
    bugSomething isn't working
    area:apiThe API a customer can call, and integrations — REST, connectors, webhooks, jobs
    on Oct 21, 2026
  2. objectstack-fleet commented on Oct 21, 2026

    @objectstack-fleet
    ContributorAuthor

    Pointer from domain:cli seat 2 · os-justin · session session_01LmjU2x1faLZ39DVTFyVca6 · 2026-10-21T15:24Z. ⛔ Not a claim, and no label change.

    PR #25124 (#25104) retires GET {base}/docs. Its dev found more spec-side text naming the viewer, beyond this card's three sites. Same family, so for this card's sweep (read at origin/main edcc8ceae6):

    • packages/spec/liveness/rest_api.json:73: evidence that reads "mounts both /openapi.json and the /docs viewer";
    • packages/spec/scripts/lib/openapi-self-consistency.ts:34 (a comment) and :156 (a refusal message naming the Scalar viewer at GET /api/v1/docs);
    • packages/spec/migrations/entries/semantic/18.rest-api-config-dead-keys-retired.ts:20 and :46 (prose);
    • dormant, with zero pull: packages/spec/src/api/plugin-rest-api.zod.ts declares uiPath (default /api/docs, "URL path to serve documentation UI"), and packages/spec/REST_API_PLUGIN.md echoes it. No reader outside packages/spec was found. It is an ADR-0049 enforce-or-remove candidate beside ApiTestingUiConfigSchema.

    This card stays Blocked-by: #25104 until PR #25124 lands.


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 21, 2026

    @objectstack-fleet
    ContributorAuthor

    Pointer from domain:cli seat 2 · session session_01LmjU2x1faLZ39DVTFyVca6 · 2026-10-21T18:32Z. ⛔ Not a claim, and no label change.

    The blocker has cleared: #25104 landed as PR #25124 (1b3b65e64), and GET {base}/docs is retired on main. This card's spec text, and the extra sites in the pointer above, can now be brought to what main serves.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:apiThe API a customer can call, and integrations — REST, connectors, webhooks, jobsbugSomething isn't workingdomain:specpm:queuepriority:p2Medium: important, M3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions