Repository navigation
Render API overview and operation pages, and keep every old URL working - #160
Draft
matthewmr-eqty wants to merge 6 commits into
Draft
matthewmr-eqty wants to merge 6 commits into
matthewmr-eqty wants to merge 6 commits into
Conversation
Need: customers read each service's endpoints, parameters, responses and samples in EQTY's own components. Problem: pages rendered from raw spec JSON would drift from the model the sidebar and twins use. Solution: overview and operation pages render only from the model, with text-only method badges and native disclosure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…inal file Need: every URL customers hold today, operations and tags alike, keeps working after the switch. Problem: tag pages disappear in the new design, and the downloadable file must be the teams' own bytes. Solution: generated entries route to their pages, tag URLs redirect to the overview, and the source file is served as committed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Need: CI should fail when the viewer breaks, and other repos should find it instead of hand-rolling one. Problem: without an API page in the demo, the build never exercises the fan-out, routes or served file. Solution: an example API in the demo's sidebar, kept out of llms.txt, plus an authoring guide and a name-table row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Need: keyboard and screen-reader users reach docs tabs, now including every API sample picker. Problem: statically rendered tabs load with every trigger at tabindex -1, so Tab skipped the strip until a click. Solution: on load, the selected tab becomes the strip's one tab stop, and arrow keys move within it as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…elpers Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Need: the demo should show the viewer on a real-sized API, not two operations. Problem: the tiny fixture never exercised tags, OAuth, enums, uploads or a YAML source. Solution: the demo serves the Swagger Petstore at a pinned commit, byte for byte and kept out of Prettier. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
matthewmr-eqty
added this pull request to stack #161
September 24, 2026 17:26
matthewmr-eqty
marked this pull request as draft
October 6, 2026 19:46
matthewmr-eqty
removed this pull request from stack #161
October 6, 2026 20:36
matthewmr-eqty
added this pull request to stack #191
October 6, 2026 20:36
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Review focus
runtime/routes/docs.astrochanges for every site: a site without anopenapi:page builds the same 1,771 pages as before. Readruntime/openapi/OperationPage.astrofirst, thenroutes/docs.astroandroutes/openapi-file.ts.eq-tabs.tsis a separate keyboard fix that affects every docs tab strip, not only API pages.Need
Customers reading guardian's APIs need each operation's method, path, samples, parameters and responses on its own page, and the links they already hold, including tag pages, must still land somewhere useful.
Problem
The new design drops tag pages, the downloadable file must be the service team's own bytes, and statically rendered tabs loaded with no tab stop, so keyboard users could not reach the cURL and fetch samples.
Change
Overview and operation pages render only from the model, in Equality's
Badge,Tabs,TableContainerandCodeFence, with native<details>until Equality ships an Accordion. Old tag URLs redirect to the overview; the committed file is served byte for byte at<page>/openapi.jsonor.yaml. The demo renders the Swagger Petstore (pinned, served byte for byte) so CI exercises the whole path; it stays out ofllms.txt. The README gains an "API reference" section and the design-system skill a name-table row.Evidence
Built from the real Integrity file: overview, 35 operations, 10 tag redirects, served JSON byte-identical; a YAML source served byte-identical as
.yaml. Demo build: 1,794 pages, including Petstore's 19 operations and three tag redirects; the served.yamlis identical to upstream; OAuth and API-key security render per operation; a missing file fails the build naming the page. Browser (Chromium): sidebar tag groups with method badges, right rail, tabs by click and keyboard, tag redirect. Four liveastro devcases pass. Lint, format check, build and 155 docs tests pass.Not covered
The visual design pass is next; the pages use the plan's draft anatomy. Parameter enums and defaults are not shown yet, and samples keep
{petId}-style placeholders and skip non-JSON bodies.noIndexpages are still indexed by Pagefind onmain, so the example API appears in search. Only Chromium was checked; browser tests are not in CI.Flow