Skip to content

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

Merged
baozhoutao merged 2 commits into
mainfrom
claude/issue-5174-ungated-docs-batch19
Sep 6, 2026
Merged

docs(collaboration): compile the collaboration README's 7 blocks and drop its ledger entry#8017
baozhoutao merged 2 commits into
mainfrom
claude/issue-5174-ungated-docs-batch19

Conversation

@claude

@claude claude Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

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

packages/collaboration/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 and JSX
elements are spelled out in words below — "RealtimeResult of unknown", "the
LiveCursors element" — rather than in their real angle-bracket form. The README
itself carries the real spellings; this page does not.

⚠️ Concurrency

Batch 18 (PR #8009) and objectui#7307 batch 2 (PR #8013) both merged while
this batch was measuring.
origin/main moved from 28cfff4 to eeda78a, so
origin/main was merged into this branch (merge commit 83be4e9) and every
gate, test, probe and reading reported below was re-run on the merged head after
a second forced rebuild. The merge was clean: batch 18's removal and this one
are two line deletions in the same object literal, on different lines, for
different documents.

No open pull request touches packages/collaboration/README.md or the gate
file — all 7 open PRs' file lists were read at the final head. packages/auth/README.md
is still held by draft PR #7685 (67 paths, read again here).

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 eeda78a branch 83be4e9
UNGATED_DOCS entries 19 18
covered documents 208 209
…of them holding a ts/tsx block 106 107
covered blocks 686 693
blocks to compile 528 535
declared fragments 158 158 (zero new)
semantic failures 0 0

Both rows were MEASURED, not computed: the base row is a real
pnpm check:doc-snippets run with both changed files checked out at
origin/main bytes (on-disk hashes proven equal to the origin/main blobs) and
restored afterwards under a trap.

Programmatic diff of the two UNGATED_DOCS objects (both imported as objects,
never diffed as text): removed = ['packages/collaboration/README.md'],
added = [], reason-changed = [], key order preserved for survivors = true,
survivors = 18. git diff --numstat on the gate file is exactly 0 2.

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 rather than inherited; it is
the value batches 15 to 18 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 — first on the
original base 28cfff4 (20 entries, 16 candidates), then again on the
post-merge base eeda78a (19 entries, 16 candidates). Both runs give the same
table and the same pick.

Rung 1 (larger measured debt: blocks, then diagnostics) TIES at 7 blocks / 18
diagnostics. Rung 2 (more distinct diagnostic codes) decided: 7 against 4.

document blocks diagnostics distinct codes
packages/collaboration/README.md 7 18 7
packages/permissions/README.md 7 18 4
packages/types/README.md 7 6 3
packages/layout/README.md 7 3 2
packages/react-runtime/README.md 5 27 6
packages/plugin-list/README.md 5 8 3
packages/core/README.md 5 6 2
packages/plugin-kanban/README.md 5 6 2
packages/plugin-ai/README.md 4 8 2
packages/providers/README.md 4 8 2
packages/plugin-charts/README.md 4 6 1
packages/plugin-editor/README.md 4 6 1
packages/plugin-map/README.md 4 2 2
packages/plugin-markdown/README.md 4 2 2
packages/fields/README.md 2 3 2
packages/plugin-tree/README.md 1 3 2

Collaboration's 7 codes: TS2304x10 TS2339x2 TS7006x2 TS2353x1 TS2552x1 TS2554x1
TS2739x1. Permissions' 4: TS2304x12 TS2322x4 TS2345x1 TS2353x1.

The dispatch's assumption A1 is CONFIRMED on both bases, tie and tie-break
alike. Exclusions re-verified against GitHub on this base, not inherited: the
root README.md is not a packages/NAME/README.md; packages/auth/README.md
is held by open draft PR #7685; packages/plugin-gantt/README.md was batch 18's
and has now landed, so it is out of the ledger entirely rather than merely
reserved; packages/plugin-chatbot/README.md is deferred by an earlier ruling
on the card.

A2 is CONFIRMED: the gate reads README bytes from the working tree and
compiles against BUILT types, so the forced package build came first, twice —
once on 28cfff4 and again after the merge.

What the 18 diagnostics were, and what each repair did

Zero parse failures, zero bound failures: all 18 were semantic. Five of them
were real drift — the README taught an API this package has never shipped

and the rest were continuation-fragment shape. Every replacement was checked
against packages/collaboration/dist/*.d.ts after the forced build.

block was now
Quick Start (fence 26) five defects at once: usePresence called with ONE argument and a channel key, destructuring updatePresence; useRealtimeSubscription given an event key and destructured for data; an ambient Editor name; an implicitly-any pos parameter; the CommentThread element missing two required props the shipped signature — usePresence(sendPresence, config) with the config's user key, destructuring updateCursor; useRealtimeSubscription with channel only, destructuring lastMessage; the Editor element replaced by a plain div carrying the same cursor handler, whose event parameter now types itself; comments and currentUser supplied from declare const placeholders typed to the shipped Comment type
useRealtimeSubscription API (fence 62) doc lie: event: 'update' is not a key of RealtimeSubscriptionConfig, and data is not a field of RealtimeResult real self-import; event dropped; destructures lastMessage, messages, connectionState, error, which the interface really declares
usePresence API (fence 73) doc lie: called with a single config object carrying channel; updatePresence destructured real self-import; the broadcast callback first and the config second; destructures users, updateCursor, currentUser
useConflictResolution API (fence 84) doc lie: called with a resourceId object; resolve destructured real self-import; called as useConflictResolution('user-1', 'Alice') — the declared (userId, userName?, config?) — destructuring resolveConflict
LiveCursors (fence 94) bare top-level JSX, LiveCursors and presenceUsers both undefined real self-import, a declare const presenceUsers typed PresenceUser[], and the element bound to a name with no re-indentation
PresenceAvatars (fence 102) same same
CommentThread (fence 110) doc lie: onSubmit is not a prop of CommentThreadProps, currentUser is required and was absent, and comments / saveComment were ambient real self-import, placeholders for comments, currentUser and the save callback, and onAddComment — the prop the component really declares, with its real (content, mentions) arity

Every one of these five contradictions is between the README and the SHIPPED
type of the same package, so each is corrected in the README, per this card's
standing ruling. None is a contradiction between two shipped surfaces, so
nothing here is deferred to a maintainer the way batch 18's registry gap was
(objectui#8008).

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.

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

Predictions were written to the scratchpad before any leg ran. 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, 207 covered … 20 ungated, 668 — 510 to compile, 510 of 510 judged, 0 failed exactly that, on base 28cfff4. (Re-run on eeda78a for the table above: 208 covered … 19 ungated, 686 — 528 to compile.)
P1 — restore the ledger entry ONLY, keep the repaired README exit 0 and coverage falls silently back to M0's numbers exit 0; 207 covered (105 …), 20 ungated, 668 — 510 to compile, 510 of 510 judged, 0 failed. The entry is what suppressed the verification
P2 — retype a placeholder this diff added: presenceUsers from PresenceUser[] to number[], aimed BY LINE so the sibling block keeps its own declaration exit 1, exactly one TS2322 at that element exit 1, 517 of 517 judged, 1 failed, README.md:113:30 TS2322: Type 'number[]' is not assignable to type 'PresenceUser[]' — exactly one, and the PresenceAvatars block stayed green
P3 — base README bytes with the ledger removal KEPT exit 1 and all 18 original diagnostics at their pre-repair sites exit 1, all 18, every code and every site as predicted; 7 blocks failed
P4 — fabricate a self-import name this diff added (LiveCursorsNope) check:readme-exports control green first, then exit 1 with 1 fabricated control 459 real, 0 wrong-path, 0 fabricated; mutated exit 1, 458 real, 0 wrong-path, 1 fabricated, naming packages/collaboration/README.md:109
P5 — put ONE doc lie back: updateCursor to updatePresence in the Quick Start block exit 1, one TS2339 on PresenceResult exit 1, 1 failed, README.md:42:18 TS2339: Property 'updatePresence' does not exist on type 'PresenceResult'
P6 — put a second doc lie back: re-add event: 'update' to the subscription config exit 1, one TS2353 exit 1, 1 failed, README.md:75:3 TS2353: … 'event' does not exist in type 'RealtimeSubscriptionConfig'

P5 and P6 exist because five of this diff's repairs are corrections of the
documented API rather than fragment plumbing: they show the gate reds on each
lie individually, so the repair is load-bearing and not cosmetic.

P4's FIRST attempt was a no-op and is reported rather than quietly retried: the
line anchor was off by one and landed on a blank line, the on-disk proof caught
it — injected count 0, hash unchanged — and the leg refused to run. The anchor
was corrected and the whole probe, control leg included, was re-run.

Gates — all at 83be4e9, 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): 209 covered (107 of them hold a ts/tsx block), 18 ungated · 535 of 535 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 — 465 of them self-imports judged (465 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 6444 tracked text file(s); skipped 85 binary); plus a manual C0/DEL scan of both changed paths, no hit
node scripts/check-node-esm-load.mjs 0 — Provenance leg: 37 of 37 gradable entries were built by this tree.
pnpm type-check:scripts 0
node scripts/check-changeset-presence.mjs 0 — no changeset is owed (2 files changed, 0 of them published source of a released package)
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, both before the merge and again after it:
turbo run build --filter=./packages/* --concurrency=2 --force, 39 successful, 0 cached. Forced because turbo shares one cache across every worktree of a
checkout and check-node-esm-load's provenance leg refuses artifacts a
different tree produced — the failure batch 17 measured. Every reading here
rests on dist/ this tree produced.

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 — 16 files,
Test Files 16 passed (16) / Tests 597 passed (597). That set includes
scripts/__tests__/check-doc-snippet-types.test.ts, which this diff's own
edited script owes, and scripts/__tests__/doc-version-claims.test.ts, which
names this README path and which a docs-only diff would otherwise reach only
inside the merge-group build. Owning package:
pnpm exec vitest run packages/collaboration/Test Files 5 passed (5) / Tests 72 passed (72); pnpm --filter @object-ui/collaboration type-check
exit 0, its output echoing tsc --noEmit && tsc -p tsconfig.test.json so the
test tsconfig really is included.

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 4354 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 for the README path and for the package name over
scripts/ and packages/, 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 (459 to 465 across the repository), so
    it hands that gate more to check than it had.
  • scripts/__tests__/doc-version-claims.test.ts — names this README path; green
    inside the 16-file run, and no version literal on this page moved.
  • No live test pin extracts a fence from this README. That was checked, not
    assumed: git grep -l for the path over *.test.ts / *.test.tsx returns
    only doc-version-claims.test.ts, and packages/collaboration/src/__tests__/
    holds no README-reading suite (unlike gantt's readme-navigation-example.test.ts,
    which batch 18 found and which is exercised here anyway inside the 16-file run).
  • Nothing under content/docs/ teaches this package's API: git grep -l for
    usePresence, useRealtimeSubscription, useConflictResolution,
    PresenceAvatars, LiveCursors and CommentThread across content, docs,
    apps, examples, skills and the other package READMEs returns this README
    alone. So the five corrected lies had exactly one carrier, and it is fixed here.

One measurement worth recording

The removed entry's reason string was stale in both directions. It read
13 undefined-name diagnostic(s) … plus TS2339x2 TS2353x1 TS2554x1 TS2739x1;
the measurement on this base reads 11 undefined-name (TS2304x10 + TS2552x1),
and it never mentioned the two implicit-any diagnostics (TS7006x2) at all. The
entry is gone either way, so there is nothing left to correct — but it is the
third batch running to find a reason string that disagrees with the measurement,
which is why the census is re-measured on every batch rather than read off the
ledger.

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

…drop its ledger entry

Every ts/tsx block in packages/collaboration/README.md now compiles against the
built types, so the document leaves UNGATED_DOCS in scripts/check-doc-snippet-types.mjs.
The gate file's only change is the two lines of that one entry.

Five of the 18 measured diagnostics were real drift rather than fragment shape:
usePresence ships as usePresence(sendPresence, config) and returns updateCursor,
not updatePresence; PresenceConfig has no channel key; RealtimeSubscriptionConfig
has no event key and RealtimeResult has no data field; useConflictResolution takes
(userId, userName?) and returns resolveConflict; CommentThreadProps requires
comments and currentUser and has onAddComment, not onSubmit. The README now spells
each of them the way the shipped dist/*.d.ts declares it. The remaining blocks were
continuation fragments and gained real self-imports plus declare-const placeholders
typed to the shipped surface.

No packages/** source touched, no public type widened, no gate loosened, and no new
fragment marker: declared fragments stay at 158.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FhBNJcLRZLe8M87VcUgpKr
Batch 18 (PR #8009) and objectui#7307 batch 2 (PR #8013) landed while this batch
was measuring. Both gate-file changes are removals inside UNGATED_DOCS on
different lines, for different documents.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FhBNJcLRZLe8M87VcUgpKr
@github-actions github-actions Bot added documentation Improvements or additions to documentation package: collaboration labels Sep 6, 2026
@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-BO0uFEv5.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.35KB 13.21KB
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.16KB 3.18KB
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 (5558528 series, see #5174); flip and arming follow once Type Check and the four shards conclude.


Generated by Claude Code

@baozhoutao
baozhoutao marked this pull request as ready for review September 6, 2026 10:21
@baozhoutao
baozhoutao added this pull request to the merge queue Sep 6, 2026
Merged via the queue into main with commit 4bb33d7 Sep 6, 2026
31 of 32 checks passed
@baozhoutao
baozhoutao deleted the claude/issue-5174-ungated-docs-batch19 branch September 6, 2026 10:37
baozhoutao pushed a commit that referenced this pull request Sep 6, 2026
Batch 19 (PR #8017, packages/collaboration/README.md) and objectui#7692
(PR #8016) landed while this batch was measuring. The two UNGATED_DOCS
removals are different lines of the same object literal, so the merge is
clean; every gate, test, probe and reading is re-run on the merged head.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FhBNJcLRZLe8M87VcUgpKr
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: collaboration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants