Uh oh!
There was an error while loading. Please reload this page.
fix(docs): list references in the root sidebar so the Reference tree is reachable - #10253
Conversation
…e is reachable Root `content/docs/meta.json` declares an explicit `pages` array and no `meta.json` under `content/docs/**` carries a `"..."` rest entry, so fumadocs' page-tree builder pushed only the listed items into `node.children` — leaving all 199 generated pages under `content/docs/references/**` out of the sidebar entirely. They rendered at their URLs but could only be reached from two inline links. Adds `references` to the existing `---Platform---` group, immediately after `protocol`. No group is added and no existing entry moves; `releases` is byte-identical. Verified by rendering, not by reading the config: the docs app was booted and the sidebar compared before and after. Before, the Platform group ended Protocol Spec / Releases. After, it reads Protocol Spec / Reference / Releases, and the Reference branch expands to all 14 protocol modules. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GawRwpD44VwBDVy3hs77AX
⛔ merge queue 构建失败 — 先分诊,再决定要不要重排队列构建 32391924279 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集), 失败的 job(日志抽取,best effort):
跨 PR 相同签名(24h,按失败测试文件聚合):
历史信号:
分诊清单:
Generated by Claude Code · merge-queue-triage workflow (#4859) |
Uh oh!
There was an error while loading. Please reload this page.
os-elon
commented
Aug 21, 2026
Merge-queue dequeue triage (PM, epic #10206). Verdict: not this PR's failure — requeued once, and only once. What the diff can reachThis PR is Supporting readings from the queue job:
What I could NOT establish, stated rather than papered overI do not have the failing assertion. The triage workflow's own extractor reported it could not parse a test-file name out of the log, and I could not either: pulling the job log through the API returns only a tail, and the vitest So I am not claiming this is a known flake. There is an open card (#9371) describing a vitest teardown race that fails This is also a live instance of the class #10032 / #10203 are about — a failing ActionRequeued once. The discipline allows exactly one confirming re-run for a failure naming a surface the diff does not touch, and this is this PR's first queue failure in 24h (per the triage comment's own history line). ⛔ If it fails a second time I will not requeue again — a second failure is real by definition, and I will stop and diagnose rather than burn another full-queue rebuild. The queue had 39 failed builds in the preceding 24h, so blind re-queuing is not free for anyone behind it. Generated by Claude Code |
Uh oh!
There was an error while loading. Please reload this page.
Fixes#10209
Sub-issue of #10206.
The change
One added line in
content/docs/meta.json:"protocol", + "references", "releases"referencesjoins the existing---Platform---group immediately afterprotocol. No group added, no entry moved. Full diff is 1 file changed, 1 insertion(+).releasesis byte-identical — the line is still four spaces then the quoted word, only its line number moved 22 to 23. The #8966 hold is untouched; the PM declined it as a rider on this card and I did not reopen it.Verified by rendering, not by reading the config
The docs app was booted (
next dev, port 39217) and the server-rendered sidebar compared before and after. The Platform group:On
/docs/referencesthe branch expands to all 14 protocol modules — AI, API, Automation, Cloud, Data, Identity, Integration, Kernel, QA, Security, Shared, Studio, System, UI — and the Reference heading renders as an anchor element pointing at/docs/references, i.e. the Protocol Reference landing page is the branch's own link.This confirms the mechanism the issue derived statically: the root
meta.jsondeclares an explicitpagesarray, nometa.jsonundercontent/docs/**carries a rest entry spelled as three dots (0 of 35 files), so the builder pushed only listed items intonode.children.Deviation from the card — step 2 is declined, with evidence
The issue's step 2 asks for
indexto be added as the first entry ofcontent/docs/references/meta.json. This PR does not do that, for three independently sufficient reasons, each measured in the worktree:That file is generated, and hand-editing it is a red gate.
packages/spec/scripts/build-docs.tsemits it (emit(path.join(DOCS_ROOT, 'meta.json'), …)). Withindexadded,pnpm --filter @objectstack/spec check:docsfails:The edit is inert in production anyway.
apps/docs' own build script isgen:schema && gen:docs && next build— the generator runs beforenext buildand reverts the hand-edit. Confirmed: aftergen:docsthe added line is gone and the file is byte-identical to the committed one.It is not needed, and it removes something. fumadocs auto-attaches a non-root folder's
index.mdxasnode.indexregardless of thepagesarray. Listingindexexplicitly makesresolveFolderItemadd it toexcludedPaths, which triggersdelete node.index— measured in the rendered DOM: without it the branch heading is an anchor element linking to/docs/references; with it the heading degrades to a button element carrying no link, andProtocol Referencebecomes a plain child row instead.So the card's acceptance criterion "index as first child" is met in substance rather than literally: the landing page is in the tree and reachable, as the branch's own clickable heading. Making it a literal child row would cost the heading its link, and could only be done durably in
packages/spec— outside this card's declared file surface and outside #10206's declared territory. Flagged for the PM rather than decided here.Gates
Re-derived against the actual diff with
node scripts/pm/dispatch-gates.mjs(no paths passed — the script derives its own change set), which named 12 families, one more than the dispatch list. All green at3690851fb, pluscheck:docsrun as evidence the generated file is untouched:check:release-notescheck-release-notes: OK — every released major has a curated, navigable release page.check:doc-anchors252 internal #fragment link(s) across 399 source file(s) all resolve to a real headingcheck:docs-audit-scopedocs-accuracy-audit scope is in sync with content/docs/·release-owned pages are in scope and read-only: 9 page(s)check:docs-redirects48 assertions over a temp fixture (real loadTable + checkTable path)check:published-readme-links152 outbound link(s) across 60 published markdown file(s)check:role-wordOK self-testcheck:cross-package-test-inputs(lint.yml + ci.yml)OK: 12 package(s) read outside themselves, all declaredcheck:empty-stateall classified (1 closed, 2 open, 4 output, 9 scope)check:livenessevery governed-type property … classifiedcheck:strictness-ledgerstrictness ledger: 61 file(s) across 5 triaged director(ies)check:variant-docsvariant/doc gate: 18 discriminated union(s)check:docs229 generated files in sync with packages/specNo changeset: this is a docs-content-only bug fix that publishes no package (AGENTS.md §943 — pure bug fixes do not require one), so
skip-changesetis applied instead.Out-of-scope finding
Filed as #10249:
next devwrites untracked, non-gitignoredapps/docs/AGENTS.mdandapps/docs/CLAUDE.md. Not fixed here.Generated by Claude Code