Uh oh!
There was an error while loading. Please reload this page.
docs(plugins,utilities): clear three more .mdx pages off the doc-snippet ledger (#5174 batch 6) - #7314
Merged
Merged
Conversation
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BGMDbrVa8JjZcCQ7DWYH1b
…-ledger-batch6 # Conflicts: # scripts/check-doc-snippet-types.mjs
… gate Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BGMDbrVa8JjZcCQ7DWYH1b
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BGMDbrVa8JjZcCQ7DWYH1b
… reason Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BGMDbrVa8JjZcCQ7DWYH1b
yinlianghui
marked this pull request as ready for review
September 2, 2026 06:12
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Sep 2, 2026
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 freeto 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.
Part of #5174
Batch 6 of the
UNGATED_DOCSburn-down. Takes the next three.mdxentries by fence density and delivers all three whole: 41 blocks, 33 compile against the builtdist, 8 carry aFRAGMENT_MARKERwith a written, measured reason. 74 diagnostics cleared. Nothing about the gate's strictness moved.Batch 5 (#7294) landed while this was in flight;
origin/mainwas merged (never rebased) and the two ledger hunks are disjoint removals, as predicted.Pages taken, and how each block reached zero
All counts produced with the gate's own
scanFences, not a hand grep.content/docs/plugins/plugin-calendar.mdxcalendar.descriptionFieldis fabricated — not a member of@objectstack/spec'sCalendarConfigSchema(which is$strictand holds exactlystartDateField,endDateField,titleField,colorField) and read at zero sites inpackages/plugin-calendar;ObjectCalendar.tsx:420destructures exactly those four. Removed from the "Appointment Scheduler" example and from the publishedCalendarConfigreference. The "TypeScript Support" section annotated anobject-calendarnode asObjectGridSchema— an annotation that cannot hold, sinceObjectGridSchema.typeis the literal'object-grid'; repointed to the realObjectCalendarSchema.content/docs/utilities/data-objectstack.mdxCannot find name 'createObjectStackAdapter'/'User'/'dataSource'/'mySchema'— and were made self-contained againstpackages/data-objectstack/dist/index.d.ts. The factory's config signature block was verified member-for-member against the shippedcreateObjectStackAdapterdeclaration, and theElementDataSourcerestatement member-for-member againstElementDataSourceSchemain the installed@objectstack/spec: both accurate.content/docs/plugins/plugin-gantt.mdxObjectGanttwith neither the component nordataSourcein scope — a copy-paste example broken at its first line; rewritten as a real component taking a typedDataSourceprop. Six bare object literals became annotatedObjectGanttSchemadeclarations, which puts theirgantt: { … }blocks underGanttConfigfor the first time.Ledger 40 → 37 (6
.mdx+ 31 README). Covered documents 184 → 187 — strictly grows. Covered blocks 440 → 481; compiled 312 → 345; declared fragments 128 → 136. The three per-page splits (12+11+10 = 33 compile, 3+3+2 = 8 declared) reconcile exactly with those deltas.Invariants, each measured rather than asserted
git diff origin/main -- scripts/check-doc-snippet-types.mjsis 0 additions, 6 deletions.origin/mainvs this branch:sha256 b87e347626a6cbab30b904eaf7d3eb72f6804122505bdf9ec8f2f2c8136e95a3— the same value on both sides, and the same value batch 5 recorded.FRAGMENT_MARKERwhose reason names the measured diagnostics. No third route, noUNGATED_DOCSaddition, no fence re-labelled to duck the gate.Before / after, both at a fully built tree, exit codes captured by redirect-then-
$?and never through a pipe:The lid check, per page — including the negative results
Resolving an unresolved name can uncover diagnostics the first error was hiding. Run on all three:
plugin-gantt.mdx— NEGATIVE. Clearing 26 parse failures and theObjectGantt/dataSourceundefined names exposed nothing underneath: the re-run was clean. Reported as a negative result.data-objectstack.mdx— NEGATIVE. Eight blocks' worth ofTS2304resolved and the re-run was clean. The two prose blocks that survive as declared fragments were then checked by hand against the shipped declaration and against@objectstack/spec, and both are accurate.plugin-calendar.mdx— POSITIVE, once. With the block's own names resolved,ObjectCalendarComponentProps.schematurned out to be typedObjectGridSchema | CalendarSchema, and noobject-calendarnode is assignable to either —ObjectGridSchema.typeis the literal'object-grid'andCalendarSchemais the form date picker (type: 'calendar'). Filed as finding(plugin-calendar):ObjectCalendarComponentProps.schemais typedObjectGridSchema | CalendarSchema, so noobject-calendarnode is assignable — the documented direct-React usage cannot compile #7311, not cast around.The read-site grep — what the compiler structurally cannot see
BaseSchemacarries[key: string]: any, so a wrong TOP-LEVEL key on any schema literal is invisible to this gate. Every schema literal touched here was therefore also grepped for read sites, and that is what caught thedescriptionFielddefect: zero read sites anywhere inpackages/plugin-calendar, while the page taught it twice. The check found nothing further on the gantt or data-objectstack literals.What the green does not mean
Stated because a green run must not be read as more than it is, and each limit below was measured on these pages by planting a probe, running the gate, and restoring from
HEADunder a trap:ganttt: 'typo-probe'added to an annotatedObjectGanttSchemaliteral. Gate stayed green —BaseSchema's index signature absorbs it.gantt: { … }is not caught either. Probe:startDateFeildinside theganttblock. Gate stayed green —GanttConfigisSpecGanttConfig & { … }and the spec'sGanttConfigSchemaisz.core.$loose, so the intersection admits unknown keys. (Note the asymmetry with the authoring surface: the spec'sCalendarConfigSchemais$strict, so the same typo in acalendarblock would be rejected at parse time even though this gate cannot see it.)calendar: { … }is wholly unchecked.ObjectCalendarSchemadoes not declare acalendarmember — unlikeObjectGanttSchema, which does declaregantt— so that block lands on the index signature. The four keys used on this page were validated by read-site grep instead.viewMode: 'century'on the gantt literal →TS2322: Type '"century"' is not assignable to type '"month" | "week" | "day" | "quarter" | "year" | undefined';defaultView: 'agenda'on the calendar literal →TS2322: Type '"agenda"' is not assignable to type '"month" | "week" | "day" | undefined'. A third,type: 'object-calendar'under anObjectGridSchemaannotation on the data-objectstack page, also went red. Declared members are checked; undeclared keys are not.safeParse, whether atypeliteral names a registered component, and whether a shell example runs are three other questions with three other answers.Type gaps found and filed, not fixed here
packages/*source is out of this PR's surface, so both were filed unassigned after a targeted dedupe search, and the blocks they affect ship declared rather than deleted:ObjectCalendarComponentProps.schemais typedObjectGridSchema | CalendarSchema, so noobject-calendarnode is assignable — the documented direct-React usage cannot compile #7311 —ObjectCalendarComponentProps.schemaisObjectGridSchema | CalendarSchema, so the page's own Direct Component Usage section cannot type-check.ObjectCalendar.tsxreaches the node through(schema as any).calendarand the registered renderer passes anobject-calendarnode to it, so the runtime path is real and the declaration is the stale half — the same shape already fixed for the map (ObjectMapSchema(types)声明的键几乎与 ObjectMap 实际读的键无交集:map块整体未建模,组件 props 类型写的是ObjectGridSchema,每处 map 读取都走as any#5018) and the gantt (ObjectGantt reads 11 top-level schema keys that ObjectGanttSchema does not declare — all viaas any, so nothing connects read to declaration #5903). That block carries aFRAGMENT_MARKERnaming the card; it becomes a compiling block the day the prop namesObjectCalendarSchema.objectNameis declared REQUIRED onObjectGanttSchemaandObjectCalendarSchemawhile both renderers resolvedataandstaticDataFIRST — the documented static-data route cannot be annotated #7313 —objectNameis declared required onObjectGanttSchemaandObjectCalendarSchema, while both renderers'getDataConfigtriesdata, thenstaticData, thenobjectName. The documented static-data and api-provider routes are therefore supported paths the type rejects (TS2741). Those four blocks ship as plainconstdeclarations with no annotation — they compile and are counted, but their keys are unchecked — rather than inventing anobjectNamethe route does not use. Same shape as finding(types):ObjectMapSchema.objectNameis declared REQUIRED butObjectMaptreats it as optional — the documented static-data route cannot be annotated #7296 onObjectMapSchema; filed separately because that card is scoped to the map by title and body.Gate verdict lines
Everything below at
355dd8daa, the final commit, with the closure built first under the shared verify lock (VERDICT command-exit 0) anddist/index.d.tspresence confirmed on disk in this worktree before any gate result was trusted — turbo replays cached logs naming other worktrees' paths.The seven vitest files are every file
git grep -l check-doc-snippet-types -- '*.test.ts' '*.test.tsx'names — the two obvious ones plus five pin suites inexamples/schema-catalog,plugin-gantt,reactandtypesthat an edit to this script could have hijacked. Run from the repo root with--maxWorkers=2, never throughpnpm --filter.check:readme-exportsfirst read NOT MEASURED, not red: it exited 1 with three findings, all three the stringits type entry ./dist/index.d.ts is not on disk -- run pnpm build firstforplugin-ai, and none naming a file in this diff. Building that closure made it a real measurement, and it is genuinely green.Declared narrowing
Repo-wide
pnpm lintwas narrowed to the four changed files, and the narrowing is a measurement rather than a skip:npx eslint --no-inline-config --format jsonon the four files reports the three.mdxpages asFile ignored because no matching configuration was supplied— they are not in ESLint's population at all.scripts/check-doc-snippet-types.mjs), 0 errors, 0 warnings.eslint.config.jssets noproject,projectServiceortsconfigRootDir, so type-aware linting is not enabled and nothing in this diff can move the verdict on a file it does not touch.A control-byte self-scan (
grep -naP '[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]') over the four changed files returns no hits, beside the repo-wide gate above.🤖 Generated with Claude Code
https://claude.ai/code/session_01BGMDbrVa8JjZcCQ7DWYH1b
Generated by Claude Code