Skip to content

docs(types): compile the types README's 7 blocks and drop its ledger entry - #8038

Merged
baozhoutao merged 1 commit into
mainfrom
claude/issue-5174-ungated-docs-batch21
Sep 6, 2026
Merged

docs(types): compile the types README's 7 blocks and drop its ledger entry#8038
baozhoutao merged 1 commit into
mainfrom
claude/issue-5174-ungated-docs-batch21

Conversation

@claude

@claude claude Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Part of #5174 — batch 21 of the UNGATED_DOCS burn-down.

packages/types/README.md leaves the ledger and all 7 of its ts/tsx blocks now
compile against the built types. The gate file's only change is the two lines of
that one entry.

Notation, read this first

This repository has measured that GitHub's body sanitizer deletes tag-shaped
fragments even inside backticks and fenced blocks, which is how a before/after
table can render as though nothing changed. So generic parameters are spelled
out in words below — "a Pick of DataSource over find and create", "a Promise of
QueryResult" — rather than in their real angle-bracket form. The README itself
carries the real spellings; this page does not.

Concurrency

Batch 20 (PR #8025) merged while this batch was measuring. origin/main
moved from 6891277 to a9e6f04b4 at 11:38:59Z. This branch had no commits of
its own yet, so it was fast-forwarded onto the new base rather than carrying a
merge commit, and the census, every gate, every test and all ten probe legs were
taken on a9e6f04b4 afterwards. The census table is byte-identical on the two
bases, and so is the pick.

All 10 open pull requests' file lists were read over the REST files endpoint and
each count reconciled against that PR's own changed_files: 8032/7, 8030/8,
8028/5, 8027/3, 7749/4, 7685/67, 7058/24, 7054/2, 7053/2, 5400/1048. #5400's
1048-file list was paged to exhaustion (11 pages) because the endpoint pages at
100 and a truncated list renders as a confident absence. No open PR touches
packages/types/README.md or the gate file.
The only README any open PR
touches at all is packages/auth/README.md (PR #7685), which is excluded
anyway.

⚠️ One neighbour worth naming: PR #7685 also edits packages/types/src/field-types.ts
and six packages/types/src/__tests__/ files. It does not touch this README, so
it is not an exclusion, but it is the one open change that could move the
shipped types this page is now checked against.

Live E2E (informational) is red on every branch today for an upstream reason
(objectui#7990 / objectstack#16186), not because of this diff.

Ledger arithmetic

reading base a9e6f04b4 branch 7a06a9673
UNGATED_DOCS entries 17 16
covered documents 210 211
…of them holding a ts/tsx block 108 109
covered blocks 700 707
blocks to compile 542 549
declared fragments 158 158 (zero new)
semantic failures 0 0
self-imports judged (check:readme-exports) 478 489

Both rows were MEASURED, not computed. The base row is a real
pnpm check:doc-snippets run (probe M0) with both changed files checked out at
origin/main bytes — on-disk hashes proven equal to the origin/main blobs
(8cba9476… and 30beb8aa…) — and restored afterwards under a trap. The base
check:readme-exports row is its own run against base README bytes.

Programmatic diff of the two UNGATED_DOCS objects — both imported as OBJECTS,
never diffed as text: removed = ['packages/types/README.md'], added = [],
reason-changed = [], key order preserved for survivors = true.
git diff --numstat on the gate file is exactly 0 2. On the branch: types
entries 0, packages/NAME/README.md entries 15 (from 16), control
'packages/auth/README.md' 1.

The strictness region — the Fence scanning banner line to EOF, 1178 lines on
both sides — hashes to
f46b5662ba336f026bca3a0003e0b7979789d48d0291fa5760be7d23c8ed0160 on
origin/main and on the branch. Re-measured here, not inherited; it is the
value batches 15 through 20 recorded, as it must be with nothing landing in the
region since.

Census and the rung that decided

Re-taken on this branch's base through the gate's exported analyze() /
compileSnippets() over every non-excluded ledger candidate — once on the
original base 6891277 (17 entries, 14 candidates) and again on a9e6f04b4
after the fast-forward (16 entries, 14 candidates). Both runs give the same
table and the same pick.

Rung 1 (larger measured debt: blocks, then diagnostics) DECIDES OUTRIGHT:
types ties on blocks with layout and is ahead of it on diagnostics. Rung 2 was
never reached.

document blocks diagnostics distinct codes codes
packages/types/README.md 7 6 3 TS2304x3 TS1109x2 TS1110x1
packages/layout/README.md 7 2 1 TS2304x2
packages/react-runtime/README.md 5 27 7 TS2304x13 TS18004x6 TS2300x4 TS2552x1 TS2814x1 TS2813x1 TS2686x1
packages/plugin-list/README.md 5 8 3 TS7006x4 TS2304x3 TS2657x1
packages/core/README.md 5 6 2 TS2304x5 TS2339x1
packages/plugin-kanban/README.md 5 6 2 TS1109x5 TS1011x1
packages/plugin-ai/README.md 4 8 3 TS2304x4 TS2322x3 TS2552x1
packages/providers/README.md 4 8 2 TS2304x7 TS2741x1
packages/plugin-charts/README.md 4 6 1 TS1109x6
packages/plugin-editor/README.md 4 6 1 TS1109x6
packages/plugin-map/README.md 4 2 2 TS1005x1 TS2304x1
packages/plugin-markdown/README.md 4 2 2 TS1005x1 TS1109x1
packages/fields/README.md 2 3 2 TS7031x2 TS2307x1
packages/plugin-tree/README.md 1 3 2 TS1005x2 TS1109x1

The dispatch's assumption A1 is CONFIRMED: every block and diagnostic total
matches the batch-20 census exactly. Two per-code figures differ from it and are
reported rather than smoothed: react-runtime reads 7 distinct codes here,
not 6, and plugin-ai reads 3, not 2. That is batch 20's own finding about
this census holding — per-code splits move with the shape of the compiler
program while the totals do not — and neither column is read by rung 1, which
decided outright.

Exclusions re-verified against GitHub on this base, not inherited: the root
README.md is not a packages/NAME/README.md; packages/permissions/README.md
was batch 20's and has now landed, so it is out of the ledger entirely rather
than merely reserved; packages/auth/README.md is held by open draft PR #7685
(67 paths, read again here); packages/plugin-chatbot/README.md is deferred by
an earlier ruling on the card.

A4 is CONFIRMED and it mattered: every block this diff repaired imports from
@object-ui/types itself, so all seven now resolve against this package's own
built dist/index.d.ts (the gate's resolution control names that exact file).
The forced build came first.

What the 6 diagnostics were, and what each repair did

Two of the seven blocks never reached the semantic phase, which made this a
fence-shape job before it was a type job — and, as the dispatch predicted, the
two parse-failed blocks were hiding semantics nobody had ever seen. Both turned
out clean once they parsed. Nothing on this page was a documented-API lie: the
find and create signatures it quotes match the shipped DataSource exactly.

block was now
Protocol Agnostic (fence 219) ambient QueryParams and QueryResult, and a hand-written DataSource interface that nothing compared with the shipped one — TS2304 x2 a real self-import, and the excerpt renamed DataSourceExcerpt and pinned with a Pick of DataSource over find and create, so it is now checked against the interface it quotes
Tailwind Native (fence 231) ambient ButtonSchema — TS2304 x1 a real self-import; the object literal is unchanged
Type Safe (fence 243) PARSE FAILURE, TS1110 at the dangling union arm pipe slash-star 50+ more star-slash semicolon — the block never reached the semantic phase, and the local type AnySchema it declared shadowed the shipped union rather than referring to it a real self-import of the shipped AnySchema plus the three named members; the three-member slice is now a separate alias and is ASSIGNED to AnySchema, which is what proves the slice really is part of the shipped union. The render function and its two case comments are unchanged
Composable (fence 262) PARSE FAILURE, TS1109 x2 — two bare elision brackets, nav and the inner children, each a spread with no operand real values: a NavLink with the label and href it requires, and a nested node. The two leaves are lifted out and ANNOTATED (SidebarSchema, ContainerSchema) so the nesting is checked against the shipped types instead of being absorbed by BaseSchema's index signature — probe P2 shows that annotation is load-bearing

The remaining three blocks (Basic Example, Advanced Example, Type Narrowing)
already compiled and are untouched.

No packages/** source touched, no public type widened, no lenient alias added,
no gate loosened, and no new fragment marker — declared fragments stay at
158, so all 7 blocks earn their coverage by COMPILING.

An overclaim this batch wrote and then removed

⚠️ Reported rather than smoothed, because the fix is in this diff. The first
draft of the Protocol Agnostic block carried the comment "the extends is what
keeps the quotation honest: it stops compiling the day either signature
drifts."
Probe P7 was written to prove that and falsified it: with the
parameter type changed from a Partial of T to a bare T the gate stayed green,
because TypeScript compares method declarations bivariantly and DataSource's
own default type parameter is any, which collapses the two spellings anyway.

A lab sweep over six variants then measured what the pin does and does not
catch:

drift caught?
a quoted member renamed away on the shipped side YES — TS2344
return type changes YES — TS2430
parameter type changes no
a parameter dropped no

The comment was rewritten to claim exactly those two and nothing more, and P7
was replaced by two probes that the pin really does answer (P7b and P8 below).
Shipping the original wording would have put an unverifiable claim on a
published page — the same defect class this gate's VERIFICATION_CLAIM rule
exists to stop one line lower down.

Probes — one base measurement and nine probes, each predicted in writing first

Predictions were written to the scratchpad (5174-b21-PREDICTIONS.md) at commit
efbb2300a with a clean tree, before any leg ran; the P7b / P8 amendment was
appended after P7 was falsified and before either of those two ran, and it says
so in the file. Every mutation is proven on disk by occurrence counts of BOTH
the injected and the deleted text plus git hash-object against the HEAD blob;
every restore is git checkout HEAD -- ABSOLUTE_PATH, never a bare checkout,
proven by an empty git diff HEAD; every leg runs under a trap with absolute
paths. No rebuild is owed on any leg, and that was reasoned rather than assumed:
the gate reads the mutated bytes straight from the working tree and no leg
touches dist/.

probe prediction observed
M0 — both files at base bytes exit 0, 210 covered … 17 ungated, 700 — 542 to compile, 542 of 542 judged, 0 failed exactly that; both on-disk hashes equal to the origin/main blobs
P1 — restore the ledger entry ONLY, keep the repaired README exit 0 and coverage falls silently back to M0's numbers exit 0; 210 covered (108 …), 17 ungated, 700 — 542 to compile, 542 of 542 judged, 0 failed; numstat vs HEAD exactly 2 0, README proven untouched, restored gate file byte-identical to the origin/main blob. The entry is what suppressed the verification
P2 — drop href from the NavLink placeholder this diff added exit 1, exactly one TS2741 exit 1, 549 of 549 judged, 1 failed, README.md:277:9 TS2741: Property 'href' is missing in type … but required in type 'NavLink' — proving the SidebarSchema annotation is load-bearing rather than absorbed by the index signature
P3 — base README bytes with the ledger removal KEPT exit 1 and all six original diagnostics at their pre-repair sites exit 1, all six, both phases as predicted: syntax 248:19 TS1110, 272:37 TS1109, 273:44 TS1109 (2 blocks failed to parse); semantic 221:35 and 221:57 TS2304 (QueryParams, QueryResult) and 232:15 TS2304 (ButtonSchema). ⚠️ ONE PREDICTION DETAIL WAS WRONG and is reported: the codes were predicted the other way round — TS1109 on the union block and TS1110 on the page block. The observed split is the reverse. Block attribution, phase and count were right
P4 — fabricate a self-import name this diff added control green first, then exit 1 with 1 fabricated control 489 real, 0 wrong-path, 0 fabricated; mutated exit 1, 488 real, 0 wrong-path, 1 fabricated, naming packages/types/README.md:236
P5 — put the dangling-union PARSE failure back exit 1, a syntax-phase failure on that block, never reaching semantics exit 1, 1 block(s) failed to parse and were NOT semantically checked, README.md:254:76. ⚠️ predicted TS1109, observed TS1110 — same direction and same phase, code wrong, consistent with P3's correction above
P6 — put the elision PARSE failure back exit 1, a syntax-phase failure on that block exit 1, README.md:293:21 TS1109: Expression expected, 1 block(s) failed to parse and were NOT semantically checked
P7 — parameter drift behind the pin exit 1, one TS2430 exit 0 — FALSIFIED. See the section above; the README comment was corrected rather than the probe being retried until it passed
P7b — return-type drift behind the pin exit 1, exactly one TS2430 exit 1, 1 failed, README.md:225:11 TS2430: Interface 'DataSourceExcerpt' incorrectly extends … The types returned by 'create(...)' are incompatible
P8 — a quoted member renamed away on the shipped side exit 1, exactly one TS2344 exit 1, 1 failed, README.md:225:66 TS2344: … does not satisfy the constraint 'keyof DataSource'. Did you mean "create"?

Nine of ten legs ended in the predicted direction. The tenth, P7, is the reason
the shipped comment is narrower than the one first written. No probe leg was a
no-op: every mutation moved the blob hash and every restore returned an empty
git diff HEAD.

Gates — all at 7a06a9673, clean tree, nothing pushed after

Exit codes captured by redirect-then-capture, never read through a pipe; each
row quotes the gate's own verdict line.

gate verdict
pnpm check:doc-snippets 0 — Scanned 227 document(s): 211 covered (109 of them hold a ts/tsx block), 16 ungated · Covered blocks: 707 — 549 to compile, 158 declared fragment(s) · 549 of 549 block(s) judged, 0 failed · Every covered documentation snippet compiles against the built types.
pnpm check:doc-fences 0 — every TypeScript block in 227 document(s) is fenced ts/tsx/typescript
pnpm check:readme-exports 0 — 489 of them self-imports judged (489 real, 0 wrong-path, 0 fabricated)
pnpm check:doc-types 0 — Every documented component type is registered.
node scripts/check-doc-links.mjs 0 — Links are valid across 17 scan roots.
pnpm check:doc-example-readers 0 — OK 80 documented symbol(s), 3947 call site(s)
pnpm check:control-bytes 0 — OK (scanned 6448 tracked text file(s); skipped 85 binary); plus a manual C0/DEL scan of both changed paths with grep -naP, no hit
node scripts/check-node-esm-load.mjs --force-build 0 — Provenance leg: 37 of 37 gradable entries were built by this tree. (its three ERR_UNKNOWN_FILE_EXTENSION lines are the gate's own by-design entries)
pnpm type-check:scripts 0
node scripts/check-changeset-presence.mjs 0 — 2 file(s) changed, 0 of them published source of a package the release covers … no changeset is owed
check-governed-queue-guard.mjs --test (both paths) 0 — NOT GOVERNED — 2 path(s) checked against 5 governed surface(s); none matched

The build came first and was FORCED:
turbo run build --filter=./packages/* --concurrency=2 --force, 39 successful, 0 cached, and then again inside check-node-esm-load.mjs --force-build
(43 successful, 0 cached). Forced because turbo shares one cache across every
worktree of a checkout and that gate's provenance leg refuses artifacts a
different tree produced — the hazard batch 20 hit. It did not fire here: the
provenance leg was green on the first run, at 37 of 37 built by this tree. Every
reading quoted above was taken after that force-build.

No skip-changeset label was applied and none is owed: this repository declares
with an empty-frontmatter changeset rather than that label, and the presence
gate says nothing is owed, so nothing was labelled at all.

Tests: pnpm exec vitest run over every test file that reads either changed
path, derived with git grep -l on both paths and not guessed — 15 files,
Test Files 15 passed (15) / Tests 568 passed (568). That set includes
scripts/__tests__/check-doc-snippet-types.test.ts, which this diff's own edited
script owes, and scripts/__tests__/check-readme-exports.test.ts, which names
this README path by name. Owning package:
pnpm exec vitest run packages/types/Test Files 131 passed (131) / Tests 2418 passed (2418); pnpm --filter @object-ui/types type-check exit 0,
its output echoing tsc --noEmit && tsc -p tsconfig.examples.json && tsc -p tsconfig.test.json, so the test tsconfig really is included.

⚠️ A3 is HALF FALSIFIED and the half that failed is reported. The dispatch
named scripts/__tests__/check-readme-exports.test.ts as a live pin on this
README — CONFIRMED, it names the path. It also offered
scripts/__tests__/doc-version-claims.test.ts "if it names the path". It does
NOT: git grep -l for packages/types/README.md across the tree returns
exactly two files, check-readme-exports.test.ts and
check-readme-exports.mjs, and nothing else. So this page has one live test pin,
not two, and the 15-file reader set is one smaller than batch 20's 16 for that
reason.

Lint, as a declared narrowing with its three evidence items: pnpm lint
here is turbo run lint per package, so the repository-wide sweep is CI's run.
The narrowed run over exactly this diff is
pnpm exec eslint --no-inline-config --format json on both paths — 2 entries,
0 errors; eslint's own answer for the README is File ignored because no matching configuration was supplied, so the real lint surface of this diff is
the one .mjs at 0 errors / 0 warnings. (1) The population eslint would
otherwise judge is 4356 files by its own count. (2) That run exits 1 with 93
errors and 12145 warnings, all of them in files this diff does not touch and all
pre-existing on the base — reported rather than smoothed, so nobody reads the
narrowed green as a statement about the repository. (3) eslint.config.js
declares no project / projectService / parserOptions.project (grep count
0), so type-aware linting is off and this diff cannot move the verdict on any
untouched file.

Readers of the changed paths

Derived with git grep -l on both changed paths, then run — not assumed.

  • scripts/check-doc-snippet-types.mjs — the gate itself, which now COMPILES
    this page instead of excusing it (P1 proves the entry was what suppressed it).
  • scripts/check-doc-fence-languages.mjs (check:doc-fences) — reads every
    fence in this README; green at the final commit over 227 documents.
  • scripts/check-readme-exports.mjs — reads this README's self-imports; proven
    live by P4. This diff ADDS self-imports (478 to 489 across the repository), so
    it hands that gate more to check than it had. Six of the seven blocks imported
    something already; the two parse-failed ones imported nothing, which is part of
    why the page's shape survived unnoticed.
  • scripts/__tests__/check-readme-exports.test.ts — the only test file naming
    this README path (A3 re-derived; see the correction above); green inside the
    15-file run.
  • No live test pin extracts a fence from this README. Checked, not assumed.

Out of scope, filed rather than repaired here

objectui#8037, unassigned and unlabelled, two measured prose defects on this
same page that no gate in this family reads, so neither is repaired here: the
architecture diagram names the @objectstack/spec floor as v15.x while
packages/types/package.json demands ^17.0.0 (installed 17.2.0); and the page
carries two separate ## Links sections that disagree on the documentation
host. Neither lives in a ts/tsx block, so both are outside this batch's licence.

This PR is a DRAFT and stays a draft: this seat does not flip ready, does not
enable auto-merge, and touches no labels or assignee.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FhBNJcLRZLe8M87VcUgpKr


Generated by Claude Code

…entry

Part of objectui#5174 — batch 21 of the `UNGATED_DOCS` burn-down.

`packages/types/README.md` leaves the ledger and all 7 of its ts/tsx blocks now
compile against the built types. Two of them were PARSE failures: the
discriminated-union excerpt ended on a dangling `|` before a comment, and the
composable-nesting example used bare elision brackets in two slots. Both are
fence shape, repaired by writing the real values rather than by declaring a
fragment. The two semantic failures were ambient names — the `DataSource`
excerpt and the Tailwind `ButtonSchema` example now carry real self-imports, and
the excerpt is pinned to the shipped interface so it cannot drift silently.

No `packages/**` source touched, no public type widened, no gate loosened, and
no new fragment marker: declared fragments stay at 158, so all 7 blocks earn
their coverage by compiling.

The gate file's only change is the two lines of that one entry.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FhBNJcLRZLe8M87VcUgpKr
@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Eager closure (gzip, 50 chunks) 3186.0 KB 3191.4 KB
Main entry chunk (gzip) 143.5 KB 350 KB
Entry file index-Cf0gKlBG.js
Status PASS

The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it.


📦 Bundle Size Report

Package Size Gzipped
app-shell (consoleActionDispatch.js) 0.20KB 0.19KB
app-shell (index.js) 15.67KB 5.75KB
app-shell (runtime-config.js) 20.68KB 7.36KB
app-shell (types.js) 0.01KB 0.04KB
app-shell (urlParams.js) 10.06KB 3.86KB
auth (ActiveOrganizationStorage.js) 25.05KB 9.16KB
auth (AuthContext.js) 0.31KB 0.24KB
auth (AuthGuard.js) 2.07KB 1.00KB
auth (AuthProvider.js) 40.18KB 10.59KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 18.15KB 5.39KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.65KB 2.22KB
auth (SocialSignInButtons.js) 9.61KB 3.89KB
auth (UserMenu.js) 3.41KB 1.23KB
auth (auth-gate-events.js) 1.29KB 0.66KB
auth (authStyles.js) 5.04KB 1.72KB
auth (createAuthClient.js) 40.21KB 10.80KB
auth (createAuthenticatedFetch.js) 8.46KB 3.43KB
auth (index.js) 3.19KB 1.44KB
auth (invitation-status.js) 1.22KB 0.70KB
auth (org-roles.js) 6.66KB 2.78KB
auth (phone-identifier.js) 1.11KB 0.66KB
auth (types.js) 0.59KB 0.35KB
auth (useAuth.js) 5.30KB 1.02KB
auth (useWorkspaceAdminStatus.js) 5.13KB 2.35KB
collaboration (CommentThread.js) 26.08KB 7.56KB
collaboration (LiveCursors.js) 3.17KB 1.27KB
collaboration (PresenceAvatars.js) 6.49KB 2.64KB
collaboration (PresenceProvider.js) 2.79KB 1.13KB
collaboration (index.js) 1.68KB 0.73KB
collaboration (useCollaborationTranslation.js) 6.05KB 2.52KB
collaboration (useCommentSearch.js) 1.98KB 0.88KB
collaboration (useConflictResolution.js) 7.75KB 1.86KB
collaboration (useMentionNotifications.js) 1.81KB 0.68KB
collaboration (usePresence.js) 6.33KB 1.84KB
collaboration (useRealtimeSubscription.js) 7.91KB 2.01KB
components (index.js) 497.06KB 113.79KB
core (index.js) 6.96KB 2.79KB
create-plugin (index.js) 10.08KB 3.26KB
data-objectstack (index.js) 182.08KB 50.62KB
fields (index.js) 242.44KB 61.25KB
i18n (LocalizationContext.js) 1.76KB 0.96KB
i18n (builtinAggregateLabels.js) 0.86KB 0.49KB
i18n (currency.js) 1.22KB 0.64KB
i18n (fallbackInterpolation.js) 6.25KB 2.77KB
i18n (i18n.js) 4.28KB 1.75KB
i18n (index.js) 3.65KB 1.47KB
i18n (pickLocalized.js) 7.62KB 3.26KB
i18n (provider.js) 26.89KB 9.04KB
i18n (useDisplayLocale.js) 2.85KB 1.45KB
i18n (useObjectLabel.js) 34.34KB 9.17KB
i18n (useSafeTranslation.js) 5.60KB 2.33KB
layout (index.js) 38.84KB 10.94KB
mobile (MobileProvider.js) 0.92KB 0.49KB
mobile (ResponsiveContainer.js) 0.94KB 0.38KB
mobile (breakpoints.js) 1.51KB 0.70KB
mobile (createOfflineDataSource.js) 5.61KB 1.75KB
mobile (index.js) 1.99KB 0.87KB
mobile (offlineQueue.js) 3.91KB 1.35KB
mobile (pwa.js) 0.97KB 0.49KB
mobile (serviceWorker.js) 1.48KB 0.62KB
mobile (serviceWorkerSource.js) 3.41KB 1.48KB
mobile (useBreakpoint.js) 1.54KB 0.65KB
mobile (useGesture.js) 6.96KB 1.98KB
mobile (useOfflineSync.js) 1.99KB 0.72KB
mobile (usePullToRefresh.js) 2.53KB 0.85KB
mobile (useResponsive.js) 0.72KB 0.42KB
mobile (useSpecGesture.js) 4.39KB 1.66KB
mobile (useTouchTarget.js) 1.01KB 0.54KB
permissions (MePermissionsProvider.js) 11.71KB 4.29KB
permissions (PermissionContext.js) 0.31KB 0.25KB
permissions (PermissionGuard.js) 0.89KB 0.45KB
permissions (PermissionProvider.js) 6.24KB 2.16KB
permissions (discardProofCache.js) 1.04KB 0.55KB
permissions (evaluator.js) 5.12KB 1.74KB
permissions (index.js) 0.93KB 0.41KB
permissions (store.js) 0.91KB 0.42KB
permissions (useFieldPermissions.js) 1.28KB 0.53KB
permissions (usePermissions.js) 4.83KB 2.27KB
plugin-ai (index.js) 15.16KB 3.68KB
plugin-calendar (index.js) 47.29KB 13.18KB
plugin-charts (index.js) 70.31KB 19.62KB
plugin-chatbot (index.js) 193.53KB 46.05KB
plugin-dashboard (index.js) 131.41KB 34.43KB
plugin-designer (index.js) 211.51KB 43.01KB
plugin-detail (index.js) 247.59KB 63.48KB
plugin-editor (index.js) 2.23KB 1.05KB
plugin-form (index.js) 131.01KB 32.32KB
plugin-gantt (index.js) 167.16KB 40.99KB
plugin-grid (index.js) 208.56KB 56.63KB
plugin-kanban (index.js) 52.30KB 14.49KB
plugin-list (index.js) 113.24KB 27.66KB
plugin-map (index.js) 20.35KB 6.77KB
plugin-markdown (index.js) 13.88KB 4.80KB
plugin-report (index.js) 43.42KB 11.92KB
plugin-timeline (index.js) 29.95KB 8.67KB
plugin-tree (index.js) 9.19KB 3.19KB
plugin-view (index.js) 84.33KB 20.75KB
providers (DataSourceProvider.js) 0.75KB 0.39KB
providers (MetadataProvider.js) 1.37KB 0.59KB
providers (ThemeProvider.js) 1.90KB 0.85KB
providers (UploadProvider.js) 11.66KB 3.50KB
providers (index.js) 0.45KB 0.23KB
providers (types.js) 0.01KB 0.04KB
react-runtime (index.js) 5.62KB 2.34KB
react (LazyPluginLoader.js) 4.47KB 1.63KB
react (SchemaRenderer.js) 81.07KB 26.86KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 4.63KB 2.18KB
react (schema-input.js) 2.32KB 1.24KB
react (spec-input.js) 0.20KB 0.18KB
sdui-parser (codegen.js) 5.41KB 2.34KB
sdui-parser (dashboard-widget-options.js) 3.08KB 1.30KB
sdui-parser (index.js) 4.93KB 2.24KB
sdui-parser (input-type.js) 2.84KB 1.40KB
sdui-parser (parse.js) 20.57KB 5.88KB
sdui-parser (provenance.js) 3.66KB 1.82KB
sdui-parser (types.js) 0.28KB 0.23KB
sdui-parser (validate.js) 10.35KB 3.60KB
types (ai.js) 0.20KB 0.17KB
types (api-types.js) 0.20KB 0.18KB
types (app.js) 2.87KB 1.00KB
types (base.js) 0.20KB 0.18KB
types (blocks.js) 0.20KB 0.18KB
types (complex.js) 2.74KB 1.41KB
types (crud.js) 0.20KB 0.18KB
types (dashboard-filter-alias.js) 6.23KB 2.74KB
types (data-display.js) 3.75KB 1.85KB
types (data-protocol.js) 0.20KB 0.19KB
types (data.js) 0.20KB 0.18KB
types (designer.js) 1.85KB 0.85KB
types (disclosure.js) 0.20KB 0.18KB
types (error-code.js) 1.54KB 0.88KB
types (expression.js) 0.20KB 0.18KB
types (feedback.js) 0.20KB 0.18KB
types (field-types.js) 0.20KB 0.18KB
types (form.js) 0.20KB 0.18KB
types (http-inflight.js) 8.87KB 3.73KB
types (http-retry.js) 4.32KB 2.02KB
types (icon-key-migration.js) 4.26KB 1.63KB
types (index.js) 4.74KB 2.25KB
types (layout.js) 0.20KB 0.18KB
types (managed-by.js) 0.19KB 0.18KB
types (mobile.js) 4.73KB 2.28KB
types (navigation.js) 0.20KB 0.18KB
types (objectql.js) 0.20KB 0.18KB
types (overlay.js) 0.20KB 0.18KB
types (permissions.js) 0.20KB 0.18KB
types (plugin-scope.js) 0.20KB 0.18KB
types (record-components.js) 0.20KB 0.19KB
types (record-semantics.js) 1.28KB 0.67KB
types (registry.js) 0.20KB 0.18KB
types (reports.js) 0.20KB 0.18KB
types (select-option.js) 0.20KB 0.19KB
types (spec-report.js) 5.05KB 1.93KB
types (spec-ui-namespace.js) 0.20KB 0.19KB
types (system-fields.js) 3.33KB 1.54KB
types (theme.js) 6.28KB 2.87KB
types (ui-action.js) 8.11KB 3.32KB
types (views.js) 0.20KB 0.18KB
types (widget.js) 0.20KB 0.18KB

Size Limits

  • ✅ Core packages should be < 50KB gzipped
  • ✅ Component packages should be < 100KB gzipped
  • ⚠️ Plugin packages should be < 150KB gzipped

Copy link
Copy Markdown
Contributor

Standing-down note — Live E2E (informational) is red on main and on every branch today: the upstream base-red anchored on #7990 (objectstack#16186). It is continue-on-error by design, never blocks the queue, and touches nothing this diff changes (one README, two lines out of the doc-snippet gate's ledger). Not this PR's to fix; no re-run requested. ACCEPTed on the card (#5174); flip and arming follow once the remaining checks conclude.


Generated by Claude Code

@baozhoutao
baozhoutao marked this pull request as ready for review September 6, 2026 12:33
@baozhoutao
baozhoutao added this pull request to the merge queue Sep 6, 2026
Merged via the queue into main with commit 58cd01a Sep 6, 2026
31 of 32 checks passed
@baozhoutao
baozhoutao deleted the claude/issue-5174-ungated-docs-batch21 branch September 6, 2026 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation package: types

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants