Uh oh!
There was an error while loading. Please reload this page.
docs(fields): compile seventeen plaintext-fenced TypeScript snippets (#5867 batch 3) - #6128
Conversation
…5867 batch 3) Re-fence 17 TypeScript blocks across 10 content/docs/fields pages from plaintext to ts so check-doc-snippet-types compiles them against the built types. Fix the two blocks that reddened as a result: - image.mdx annotated ImageFieldSchema.value with FileMetadata, a name @object-ui/types does not export - it was deliberately renamed to UploadedFileMetadata (objectstack#4115). Renamed and imported. - lookup.mdx referenced DataSource without importing it. Import added. No block body was otherwise edited, no FRAGMENT_MARKER was declared, and the gate, UNGATED_DOCS and the ledger are untouched. Part of #5867 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019b5UBNMtTzKbVtZZGvFuxe
yinlianghui-tw
commented
Aug 24, 2026
PM: ACCEPT — batch 3
The |
Uh oh!
There was an error while loading. Please reload this page.
Part of #5867
Batch 3 of N. Re-fences 17 TypeScript blocks across 10 whole
content/docs/fieldspages fromplaintexttots, socheck-doc-snippet-typescompiles them against the built types, and fixes the two blocks that reddened as a result.All measurements at branch head
d6378e44e, tree clean at run time; every heavy run through the container's shared verify lock.Population, re-derived on today's
origin/main(133e2ea1e)146 blocks across 102 files — down from batch 2's handback of 151/103. PR #6119 (card #6107) landed in between and converted four
fieldsblocks itself (27 → 23), and onecomponentspage moved (72 → 71). Derived with the gate's ownlistDocumentsandUNGATED_DOCS, plus triage's classifier applied toplaintextfences.What this batch takes, and why
content/docs/fields— the only group PM's batch-3 order left unblocked,components(#6122) andlayout(#6120) being in flight with other devs.Scope chosen by measurement: all 23 classifier-matching fences across the 13
fieldspages were re-fenced in a throwaway probe, the closure rebuilt, the gate run, and the tree restored under atrap ... EXIT INT TERM. The mutation was proved on disk before the run — per-fileplaintextfence counts dropped to their expected values,git diff --statshowed 23 insertions / 23 deletions — andgit status --porcelainwas empty after the restore.That probe measured 229 blocks to compile (206 + 23) with 1 syntax and 4 semantic failures across 5 files. The 10 files with no failure, plus the 2 whose failures are fixable in scope, are this batch.
file,formula,grid,rich-text,select,summary,user,vector— compile untouchedimage,lookup— compile after the two fixes belowThe two documentation defects compiling these found
Both are the #5044 class: a page teaching a name against a type that does not accept it, under a gate that reported the file as covered.
image.mdxannotatedImageFieldSchema.valuewithFileMetadata, a name@object-ui/typesdoes not export. It was deliberately renamed toUploadedFileMetadata(objectstack#4115) precisely because the spec's same-named type is a different shape — the storage layer's file record, not the field-value payload; re-exporting the spec's would have deletedurl. The page now imports and annotatesUploadedFileMetadata.lookup.mdxreferencedDataSourcewithout importing it.DataSourceis exported from@object-ui/types; the import is now there, which is also what a reader copying the block needs. (LookupOption, referenced beside it, is declared inside the same block and needed nothing.)No other block body was edited. No
FRAGMENT_MARKERwas declared. The gate,UNGATED_DOCSand the ledger are untouched —scripts/is not in this diff, so gate strictness is unmoved.Gate counts, before and after
Verbatim after:
Semantic phase: 223 of 223 block(s) judged, 0 failed./Every covered documentation snippet compiles against the built types.Other gates, at the same head
Exit codes captured before any pipe; each gate's own verdict line quoted.
check:doc-typesexit=0 —Every documented component type is registered.docs:check-linksexit=0 —Links are valid across 15 scan roots.check:control-bytesexit=0 —OK (scanned 5081 tracked text file(s); skipped 85 binary)Vitest from the repo root:
check-doc-snippet-types·check-doc-component-types·check-doc-links·check-changeset-presence—Test Files 4 passed (4),Tests 185 passed (185).Render check
pnpm site:buildgreen (556 static pages). Reading the prerendered HTML back fromapps/site/.next/server/app/docs/fields/*.html, countingpreblocks that contain a shiki keyword-coloured span:tsfences @origin/maintsfences @HeadRendered highlighted blocks equal the
tsfence count on every page, and the fence total moves 3 → 20 = +17, the batch exactly.Control, on the same pages: unhighlighted rendered blocks equal the remaining
plaintextfences everywhere —image3/3,lookup2/2,grid8/8,summary5/5 — and the untouched prose blocks ondate(1/1) andpercent(1/1) still carry zero keyword spans.Build note, unrelated to this diff and identical to batches 1 and 2: the site build needs
@object-ui/plugin-ganttand@object-ui/plugin-mapbuilt first, both outside the gate's--build-filterclosure.Excluded by measurement, with blockers filed
Three
fieldspages (6 blocks) red for reasons that need a ruling rather than an edit, so the whole file is excluded in each case rather than marked:content/docs/fieldssnippets depend on identifiers the snippet program cannot resolve — a fabricateddbhandle and an undeclaredajv— each needs a ruling before #5867 can cover them #6126 —auto-number.mdxleans on a fabricated ambientdbhandle (TS2304+TS7006), andobject.mdximportsajv, which is resolvable from neither the repo root nor any workspacepackage.json(TS2307).content/docs/fields/location.mdxwelds a JSX element and a bare metadata object literal into one fence, so it parses as neithertsnortsx#6127 —location.mdxwelds a JSX element and a bare metadata object literal into one fence; measured to fail under bothts(2 diagnostics) andtsx(5), so no fence language fixes it.Remainder for batch 4
146 measured, 17 taken — 129 blocks in 92 files remain:
content/docs/components/**content/docs/layout/**content/docs/plugins/**content/docs/core/**content/docs/blocks/**content/docs/fields/**UNGATED_DOCS— adds zero to the compile populationThe 7 blocks in 6
UNGATED_DOCSpages were not re-fenced: the document is not compiled at all, so re-fencing them moves blocks-to-compile by zero and the "+N = batch size" check does not apply. They are left alone deliberately, not overlooked.Docs only — the changeset carries empty frontmatter and publishes nothing.
Generated by Claude Code
Generated by Claude Code