Skip to content

docs(plugin-tree): compile the README's snippet against the authorable surface - #8251

Merged
baozhoutao merged 1 commit into
mainfrom
claude/issue-5174-doc-snippets-batch33-plugin-tree
Sep 7, 2026
Merged

docs(plugin-tree): compile the README's snippet against the authorable surface#8251
baozhoutao merged 1 commit into
mainfrom
claude/issue-5174-doc-snippets-batch33-plugin-tree

Conversation

@claude

@claude claude Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Part of #5174 (batch 33: packages/plugin-tree/README.md)

Burns down the page's UNGATED_DOCS entry so the gate compiles its snippet instead of ledgering it. Base 738a20949 (carries PR #8249, batch 32). Head ef6bf35f1.

The short version: the obvious repair was the wrong one, and measuring said so. The page's example taught, as authored metadata, the one shape a maintainer ruling says must not be taught in docs — and the annotation that would have made it compile checks none of it.

Census reading 1 — the ledger-literal reading (base 738a20949)

Method: the gate's own exported scanFences / analyze / compileSnippets, with this page removed from UNGATED_DOCS, against the built --build-filter closure (35/35 turbo tasks successful). No hand-written regex.

fence language reading
17 ts PARSE FAILURE, never judged — TS1005@71, TS1005@97, TS1109@455
  • Collected fences on the page: 1. It is the page's only collected block.
  • parse=1 bound=0 semanticFailures=0. The semantic=0 is not measured — the block never reached the semantic phase.
  • Blind-spot count: 1 of 1. The page's entire collected surface was unjudged.

Ledger row accuracy, checked term by term: the count (3 parse diagnostic(s)) is right, the language (fenced \ts`) is right, and bare object literalsis the right shape. One wording correction only: the row saysblocks` plural where there is exactly one block.

Negative control

A genuine type error injected into the base page's bare literal, compiled in memory through the same compileSnippets; nothing written to disk. The mutation is length-preserving on purpose (objectName: 'business_unit' to objectName: 424242424242424, 15 characters for 15) — a shorter replacement shifts every downstream diagnostic offset by its own length delta and breaks byte-identity for a reason that has nothing to do with the finding.

reading
without the error parse=1 bound=0 semantic=0 / TS1005@71 TS1005@97 TS1109@455
with the error parse=1 bound=0 semantic=0 / TS1005@71 TS1005@97 TS1109@455

Byte-identical: true. The ledger row was the same with and without a real type error on a declared member. The blind spot is measured, not argued.

Census reading 2 — after the minimum parse repair, and why it decided the batch

The minimum change that makes the block parseable is a typed binding around the bare literal. Bound to ObjectViewSchema, as the shape of the example suggests:

parse=0 bound=0 semantic=0zero diagnostics.

That green is the finding. ObjectViewSchema (packages/types/src/objectql.ts:1773) declares no views member at all — it carries listViews?: Record<string, NamedListView> and defaultViewType, and nothing else in that neighbourhood. views therefore lands on BaseSchema's index signature (packages/types/src/base.ts:467, [key: string]: any) and is checked by nothing. Measured directly against that annotation:

probe result
the page's example as written GREEN
views[0].type = a nonsense string GREEN
views[0].type = 42 GREEN
views = 'not-even-an-array' GREEN
an invented top-level key GREEN
objectName = a number (a declared member) RED, TS2322

Binding to ObjectViewSchema would have produced a green fence, deleted the ledger row, and verified nothing about the substance of the example. That is the tolerant shape this burn-down exists to remove, so it was rejected.

The binding decision

Two facts settled it.

1. views is not authored metadata; it is a host prop. The views the example writes is ObjectViewProps.views (packages/plugin-view/src/ObjectView.tsx:303), a React prop whose entries require id and label — the example has neither — and whose type is ViewType.

2. tree is a host-composition view type, and the docs are named in the ruling. packages/plugin-view/src/ObjectView.tsx:523-583 records the maintainer's 2026-08-20 verdict on objectui#5321 (verbatim in-tree: 「其他接受你的建议。」): tree and chart are recorded as host-composition-only surfaces rather than added to the authored unions. Neither ObjectViewSchema.defaultViewType nor NamedListView.type spells tree — both stop at map. The comment states the docs consequence twice, verbatim:

  • :527-529 — "not to be taught as authorable defaultViewType / NamedListView.type values anywhere in the docs (objectui#5321)"
  • :1494-1496, on the tree branch of generateViewSchema — "The viewOptions.tree.* surface below is therefore HOST config — maintained, read, and not authoring surface to teach in the docs."

The page's Usage example was exactly that forbidden shape, written as a copyable authored document.

What replaced it. The authorable node is object-tree, declared by ObjectTreeSchema (packages/types/src/objectql.ts:2358) with its four config keys flat on the node — the same shape generateViewSchema's tree branch itself emits (:1497-1508) and the flat limb getTreeConfig reads. It is legal at the parse door too: the zod mirror carries it (packages/types/src/zod/objectql.zod.ts:747-754, type: z.literal('object-tree'), in the union at :1115), and both faces declare the identical five members.

The one obstacle, and a finding. ObjectTreeSchema is not exported from the package barrel — annotating with it gives TS2724: '"@object-ui/types"' has no exported member named 'ObjectTreeSchema'. It is absent from packages/types/src/index.ts and from the built dist/index.d.ts, while its siblings ObjectMapSchema, ObjectGanttSchema, ObjectGridSchema and ObjectViewSchema are all exported (index.ts:421,423,434,438), and its own zod twin is exported. Adding that export is a packages/types/src/** change and out of this batch's surface, so it is a proposal below, not an edit here.

So the example binds through ObjectQLComponentSchema — exported (index.ts:442, present in dist/index.d.ts), and a discriminated union that narrows on type: 'object-tree'. That is a real check, not a phantom one:

probe against ObjectQLComponentSchema result
the declared flat shape GREEN
objectName = number RED TS2322
parentField = 42 RED TS2322
labelField = 42 RED TS2322
fields = a string RED TS2322
defaultExpandedDepth = 'deep' RED TS2322
an invented key GREEN (index signature)

No marker, no widened type, no invented local interface, no src/** edit.

Per-key table (key-surface bound, objectui#7927)

ObjectTreeSchema extends BaseSchema and BaseSchema carries [key: string]: any, so the annotation checks member types and never keys. Classified by reading the declaration and the renderer's read sites.

Keys the repaired example writes:

key declared read at verdict
type objectql.ts:2359 'object-tree' registry lookup, plugin-tree/src/index.tsx:34 keep
objectName objectql.ts:2361 string ObjectTree.tsx record fetch keep
parentField objectql.ts:2366 string? ObjectTree.tsx:117 keep
labelField objectql.ts:2368 string? ObjectTree.tsx:118-119 keep
fields objectql.ts:2370 string[]? ObjectTree.tsx:110-115 keep
defaultExpandedDepth objectql.ts:2374 number? ObjectTree.tsx:120, :621 keep

Keys the old example wrote, and why each left:

key declared read at verdict
views by nothing on ObjectViewSchema — no such member. Only ObjectViewProps.views (ObjectView.tsx:303), a host prop requiring id + label ViewSwitcher.tsx:164+ via ViewSwitcherSchema.views; ObjectView.tsx:638 via the prop dropped — phantom on the authored surface
nested type: 'tree' ViewType only; in neither authored union reachable only through the host views prop dropped — host-only (objectui#5321)
nested tree block by no exported type. The only declaration is the module-local, non-exported TreeConfig (ObjectTree.tsx:81) ObjectTree.tsx:109, schema.tree || schema.filter?.tree dropped — host config per the ruling; proposal below

One undeclared-but-read key found outside the example, reported not acted on: ObjectTree.tsx:119 reads schema.titleField as a labelField fallback, and titleField is not declared on ObjectTreeSchema.

Defaults check

Authority: packages/plugin-tree/src/ObjectTree.tsx. All four documented defaults were already correct; none needed repair, and the table is unchanged.

key page says renderer verdict
parentField auto-detected, from the object's tree field or a lookup/master_detail referencing the same object detectParentField :154-183 — a tree field whose reference is absent or names this object, else the first self-referencing lookup/master_detail agree
labelField name :118-119, ... ?? 'name' agree
fields [] :110-115, [] when neither source is an array agree
defaultExpandedDepth unset = expand all, 0 = roots only initialExpanded :258-271depth == null expands every node with children; 0 makes n.depth < 0 false at the roots agree

Assumption A5 confirmed on both halves.

Ledger decision

The page reads zero after the repair, so its UNGATED_DOCS entry is deleted outright (ruling 6, first branch). No marker, no rewritten remainder. Ledger 5 rows to 4.

Census reading 3, on the real ledger at head: 1 collected fence at line 21, parse=0 bound=0 semanticFailures=0, blind-spot count 0 of 1. The gate's own semanticallyJudged counter moved 617 to 618 — that increment is the proof the fence reached the semantic phase rather than merely being green.

Strictness region

Region from the Fence scanning banner to EOF, both measured here:

tree sha256
base 738a20949 2749d53ae3a8df033a53b8d7a354fa7e22ee2d1a17f6ad0c3d61122e904e084b
head ef6bf35f1 2749d53ae3a8df033a53b8d7a354fa7e22ee2d1a17f6ad0c3d61122e904e084b

Identical. The only gate-script change is the two-line ledger row deletion.

Positive control

Run against the committed tree, under a trap ... EXIT INT TERM with absolute paths. HEAD blob for the page: d71be52b386bb7bb465ec99603d8d83aa8778f04.

Leg 1 — a DECLARED member. objectName: 'business_unit' to objectName: 42. On-disk mutation proven by marker count 0 to 1; mutated blob 25a65befe3b7021d316d862225c6a25a7831e7d3.

pnpm check:doc-snippets EXIT=1, naming the page and the line:

[semantic]  packages/plugin-tree/README.md:26:3  TS2322: Type 'number' is not assignable to type 'string'.
Semantic phase: 618 of 618 block(s) judged, 1 failed.

Leg 2 — an UNDECLARED key. invented_key_nobody_reads: true added to the same literal. On-disk mutation proven by marker count 0 to 1; mutated blob 7be323eeb32373625ef7d5f2fda9223eeaf6d112.

pnpm check:doc-snippets EXIT=0, 618 of 618 judged, 0 failed. The gate stays green, and that is the measured statement of the seam rather than a defect: the objectui#7927 key-surface bound means an annotation checks member types and never keys, so this example is protected against a wrong-typed declared member and not against an invented one.

Restore proven by STATE, not by exit code: git hash-object back to d71be52b386bb7bb465ec99603d8d83aa8778f04, equal to the HEAD blob, and git diff HEAD empty.

Gates (exit codes, pinned to head ef6bf35f1)

gate exit
pnpm check:doc-snippets 0 — 229 scanned, 225 covered, 4 ungated, 618 of 618 judged, 0 failed
pnpm check:doc-types 0
pnpm check:readme-exports 0
pnpm check:doc-fences 0
pnpm check:control-bytes 0
pnpm check:entry-guard 0
pnpm exec vitest run scripts/__tests__/ 0 — 115 files, 3415 tests passed
pnpm exec vitest run packages/plugin-tree/ 0 — 11 files, 51 tests passed
pnpm type-check:scripts 0
pnpm lint:root 0 — 32 pre-existing warnings, all in e2e/live/** and scripts/__tests__/**; 0 in either changed file
node scripts/check-changeset-presence.mjs 0 — no changeset owed (no published source or contract moved)
node scripts/check-governed-queue-guard.mjs --test on both paths 0 — NOT GOVERNED
grep -naP control-byte self-scan of both changed paths 1 (no match)

Assumption A4 confirmed: check:readme-exports judges only self-imports (528 judged) and counts this page's @object-ui/types import among its "186 to other packages", so a README importing a type from another package stays green.

scripts/__tests__/check-doc-snippet-types.test.ts needed no edit — as batches 28-32 found, its ledger pin enumerates only the root README row.

Proposals for their own cards (not filed here, not fixed here)

Searched first: cards updated since 2026-09-07T04:39Z are only #8250, #6892 (the vi-mock slice-12 series, excluded) and #5174 itself. A targeted issue search for the export gap returned 0 hits, with a control query in the same session returning 30 — so the empty reading is real, not a broken channel.

  1. ObjectTreeSchema is declared but not exported from @object-ui/types. The interface exists (objectql.ts:2358), sits in the exported ObjectQLComponentSchema union, and has an exported zod twin — but the barrel never re-exports it, so it is absent from dist/index.d.ts while every sibling object-node schema is present. A reader documenting or authoring an object-tree node cannot name its type; this PR had to route around it through the union. packages/types/src/**, out of this batch's surface.

  2. The nested tree config is declared by no exported type. ObjectTree.tsx:109 reads schema.tree || schema.filter?.tree against the module-local, non-exported TreeConfig (:81). It is deliberate host config under objectui#5321, so the contract question is whether a host-only surface should carry an exported type at all — worth ruling rather than assuming. Deliberately not repaired with a private local interface here (the objectui#7646 shape).

Premise

Valid, with one correction to the brief. The ledger row and its 3-diagnostic count reproduced exactly. Assumption A1 confirmed (bare literal, TS1005 x2 + TS1109, cleared by a typed binding). Assumption A2 falsified: ObjectViewSchema.views does not exist as a member, so there was no view-schema union element to follow — that falsification is what redirected the batch. Assumption A3 confirmed (no competing branch on either path). The dispatch's warning against binding to TreeViewSchema was right, and for a second reason beyond the type mismatch: the claim comment's guess that the nested view is TreeViewSchema is also falsified — tree-view is an inline-nodes component, unrelated to this path.


Generated by Claude Code

…e surface

The page's only collected fence was a bare `object-view` literal carrying
`views: [{ type: 'tree', tree: { ... } }]`. It never parsed (TS1005 x2 +
TS1109), so the ledger row was the whole of what this gate knew about the
page, and a genuine type error in that literal left the row byte-identical.

Two facts made the obvious repair wrong. `ObjectViewSchema` declares no
`views` member at all, so annotating the literal with it compiles green
while checking nothing that matters -- measured: `views: 'not-even-an-array'`
is accepted, only `objectName` turns red. And `tree` is a host-composition
view type, not an authorable one: objectui#5321 ruled it recorded rather
than declared, and ObjectView.tsx states verbatim that its config surface is
"not authoring surface to teach in the docs". The example taught, as
authored metadata, the one shape that ruling forbids teaching.

So the example now writes the `object-tree` node an author can actually
select, bound through the exported `ObjectQLComponentSchema` union, which
narrows on `type` and checks all five declared members. The host-only `tree`
alias keeps its paragraph, as prose rather than as a copyable example.

The four documented defaults were each checked against ObjectTree.tsx and
were already correct; they are unchanged.

Part of #5174 (batch 33)

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 plugin labels Sep 7, 2026
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Eager closure (gzip, 50 chunks) 3191.0 KB 3191.4 KB
Main entry chunk (gzip) 143.9 KB 350 KB
Entry file index-XPCbTDEt.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) 498.00KB 113.91KB
core (index.js) 6.96KB 2.79KB
create-plugin (index.js) 10.08KB 3.26KB
data-objectstack (index.js) 189.11KB 52.55KB
fields (index.js) 243.04KB 61.36KB
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) 6.57KB 2.76KB
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.67KB 13.25KB
plugin-charts (index.js) 70.62KB 19.71KB
plugin-chatbot (index.js) 193.54KB 46.04KB
plugin-dashboard (index.js) 131.41KB 34.43KB
plugin-designer (index.js) 213.21KB 43.63KB
plugin-detail (index.js) 247.68KB 63.49KB
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.58KB 56.63KB
plugin-kanban (index.js) 52.83KB 14.63KB
plugin-list (index.js) 113.38KB 27.73KB
plugin-map (index.js) 20.49KB 6.83KB
plugin-markdown (index.js) 13.88KB 4.80KB
plugin-report (index.js) 43.42KB 11.92KB
plugin-timeline (index.js) 30.10KB 8.74KB
plugin-tree (index.js) 9.33KB 3.25KB
plugin-view (index.js) 84.46KB 20.80KB
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) 6.58KB 2.74KB
sdui-parser (dashboard-widget-options.js) 3.08KB 1.30KB
sdui-parser (index.js) 5.55KB 2.45KB
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) 13.64KB 4.59KB
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

Armed — domain:devx @ objectui execution seat, PM session session_01FhBNJcLRZLe8M87VcUgpKr, R46.

  • CI on ef6bf35f1 converged all green at 05:20:36Z (29 checks, Live E2E (informational) green as well — no standing-down note was owed on this PR).
  • Ready for review at 05:20:47Z; post-flip Governed Surface Queue Guard completed/success at 05:21:04Z.
  • Auto-merge SQUASH enabled; added_to_merge_queue on the REST timeline at 05:21:11Z (read 05:21:16Z).

Landing stroke follows the merge: content probe on re-fetched origin/main (const schema: ObjectQLComponentSchema in packages/plugin-tree/README.md and the ledger row's absence, with a control), LANDED here and on objectui#5174 (which stays open, Part of), then the batch-34 claim (packages/plugin-markdown/README.md).


Generated by Claude Code

Merged via the queue into main with commit cdbc852 Sep 7, 2026
32 checks passed
@baozhoutao
baozhoutao deleted the claude/issue-5174-doc-snippets-batch33-plugin-tree branch September 7, 2026 05:36

Copy link
Copy Markdown
Contributor

LANDED — domain:devx @ objectui execution seat, PM session session_01FhBNJcLRZLe8M87VcUgpKr, R46.

Merged at 2026-09-07T05:36:49Z as cdbc852e9 (squash). Content probe on re-fetched origin/main at 05:37Z: const schema: ObjectQLComponentSchema = { at packages/plugin-tree/README.md:24; the 'packages/plugin-tree/README.md' row is absent from UNGATED_DOCS (0 hits) while the control row 'packages/plugin-markdown/README.md' is present (1 hit); the ledger reads 4 rows; the strictness region still hashes to 2749d53ae3a8df033a53b8d7a354fa7e22ee2d1a17f6ad0c3d61122e904e084b.

Batch 34 (packages/plugin-markdown/README.md) is claimed on objectui#5174 next; the card stays open (Part of).


Generated by Claude Code

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 plugin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants