Skip to content

deps(v18): resolve @objectstack/* 18.0.0-next.3 and follow its contract (objectui#12873) - #12887

Merged
objectstack-fleet[bot] merged 8 commits into
mainfrom
claude/issue-12873-objectstack-next-3
Oct 17, 2026
Merged

objectstack-fleet[bot] merged 8 commits into
mainfrom
claude/issue-12873-objectstack-next-3

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #12873
Clause-②: yes

Moves objectui's lockfile from @objectstack/* 18.0.0-next.2 to 18.0.0-next.3, and follows the contract changes in that release that reach objectui. npm next is 18.0.0-next.3, built from objectstack 2c9bf9430a: the @objectstack/spec@18.0.0-next.3 and @objectstack/cli@18.0.0-next.3 tags both peel to it. The upstream range is e5136ff10f..2c9bf9430a (158 commits).

Versions moved

  • Lockfile. objectui resolves seven @objectstack/* packages: client, core, formula, lint, sdui-parser, spec and types. All seven were published at 18.0.0-next.3, and all fourteen lockfile entries (two per package) now resolve there; none stays at next.2. The lockfile was regenerated by pnpm only (pnpm -r up --no-save '@objectstack/*@18.0.0-next.3'). No other resolution moved: the lockfile diff is 72 lines out and 72 in, all @objectstack/*. check:lockfile-integrity and check:lockfile-dedupe are green.
  • Range floors. None moved. No held card needs next.3 in a range, and check:spec-floors is green with the floors as they are: ^18.0.0-next.2 on @object-ui/types and @object-ui/app-shell, ^18.0.0-next.1 everywhere else.
  • e2e/live/ci/backend.env names 18.0.0-next.3. Following start-backend.sh's instruction to re-measure at every pin bump, its vitest override was checked on next.3 under npm 10.9.4, with a fresh cache and the showcase app at 2c9bf9430a. Without the override, the install still dies with Cannot read properties of null (reading 'edgesOut'). With it (~4.0.0), it exits 0 and installs @objectstack/spec 18.0.0-next.3. So the override stays.

Reds after the bump, the upstream commit behind each, and what this PR did

Measured with the full suite in 16 shards (5,424 files), plus a re-run of every pin this PR touches as it stands at BASE, on 2e80918 (lockfile only, next.3 installed): 9 red files, 36 red tests.

red upstream commit what this PR did
registry-inputs-spec-parity: 22 forward-direction cases plus the node-level derivation pin objectstack 105902f (the page component's visibility fold leaves the load path, so PageComponentSchema is no longer a .pipe()) contract-following: the node-level key set reads the schema's own shape instead of _def.in
registry-inputs-spec-parity: 3 unpublished-key exemption cases objectstack ae0ca66 (page:header showStar tombstoned) contract-following: deleted the page:header.showStar exemption, which says in its own text that it dies on this bump
registry-inputs-spec-parity: 2 population cases objectstack 97b8e7a51d (record:json) contract-following: ledgered as NOT REGISTERED, DELIBERATELY (see objectui#12490 below); the population moves from 59 to 60
recordDetailsInputs, recordHighlightsInputs, recordRelatedListInputs spec-parity (4 cases) objectstack 105902f contract-following: the same shape read as the repo-wide gate
select-option-spec-extension-7014 key-set pin objectstack adad73f (select option kind) contract-following: seven keys; select-option.ts names kind among the inherited keys, as the pin asks
block-config palette coverage objectstack 97b8e7a51d contract-following: a PALETTE_EXCLUSIONS entry for record:json
check-lockfile-integrity samples the bump itself samples re-keyed onto the next.3 snapshot keys
ci-cd-pipeline-doc live-e2e pin the bump itself backend.env moved
check-installed-spec-pin-claims (26 sites, 38 lines) the bump itself re-measured and restamped (see below)

No red was left for a follow-up card.

Re-measured stamps. Each fact beside a next.2 stamp was re-measured on next.3, with next.2 as the control, before its stamp moved:

  • a parse probe over both installed spec builds and both lint builds. Its output was identical except for the view-data page check;
  • the green type-check for the type-level readings;
  • the files' own tests.

Three sentences were rewritten rather than restamped, because their fact moved:

  • spec-object-refinements-7715 (2 sites) and page-component-view-data-12666 said the installed spec still carries checkPageComponentViewData. next.3 is the first release without it (objectstack a35f7a6), and on next.3 the spec's PageSchema accepts a slotted api binding, as objectui's page node already did.
  • ci-cd-pipeline.md held a one-off next.2 reading in which the verb "installed" was read as an installed-pin claim. It is reworded with the same meaning.

Held cards

card reading on next.3 where
objectui#12490 The installed release carries objectstack 97b8e7a51d: git merge-base --is-ancestor 97b8e7a51d 2c9bf9430a exits 0, and the installed spec exports RecordJsonProps and a record:json row. Since the card was held, the maintainer dropped this face (pointer 6232139151 on the card). No renderer is to be built, and the type is filed for retirement upstream (objectstack#24162). Not built here. The two places next.3 forced a decision on record:json record it as unregistered on purpose, citing the card. The spec's retirement will move both: the parity ledger entry must then read RETIRED UPSTREAM, and the palette exclusion goes stale.
objectui#12333 The installed spec is built from 2c9bf9430a, and 1eac7ad751 is its ancestor (merge-base --is-ancestor exits 0). None of its pins went red in the full suite. Not built here. The card's two remaining items (amending the #8813 pin's header, and verifying the anonymous zh-CN form) stay on the card.

Clause-② accept-set and type moves (@object-ui/types)

  • Narrows: page:header properties.showStar. objectui's faces read the page:header props bag from the spec's own row by reference. So safeValidateSchema and StrictAnyComponentSchema now refuse showStar with the spec's own retirement message, at properties.showStar. On next.2 both accepted it. Control: the same node without the key is accepted on both versions. No objectui renderer reads the key, since objectui#12627.
  • Widens (types only): SelectOptionBase, and the field and form option types built on it, inherit the spec's optional kind (open, won or lost).
  • Read, no consumer change: the spec retires the view form field's visibleOn (objectstack 105902f). objectui's form renderer uses visibleOn only as its own internal channel, which the console fills from the served visibleWhen. The served-view path already reads visibleWhen.

Deviations

  • The full 16-shard run started on 2e80918 (lockfile only). While it ran, comment-only restamps and the test follows above landed in the same worktree. Because of that, the red set is quoted from a separate run on a clean 2e80918 checkout of every pin this PR touches. That run shows the 9 files and 36 tests in the table above.
  • type-check (81/81) was last run on 1dc6351, before the merge of main. After the merge, the test files main brought were run together with this PR's.
  • build (43/43) was run on 2e80918. The later commits change comments, tests and one string entry in block-types.ts, so it was not re-run.

Smoke read (console from this branch, backend on 18.0.0-next.3)

The backend was HotCRM 4f82b81 with a local, unpushed override to 18.0.0-next.3 (/api/v1/health answered 18.0.0-next.3). HotCRM's own metadata does not compile on next.3: src/sales/views/lead.view.ts has 44 view form field visibleOn keys, which the spec now refuses (objectstack 105902f), and objectstack dev stops with Compile failed. To read the console, the spec's own remedy (visibleOn renamed to visibleWhen) was applied to the scratch copy only. Then the Leads list, a lead record page and Studio's object designer on crm_lead were read, with no page errors.

The screenshots are on claude/issue-12873-evidence only. This branch adds no PNG.

Test evidence (head bc4712a)

  • Build (turbo, everything but the site, --concurrency=2): 43/43 on 2e80918.
  • Type-check (turbo, --concurrency=2): 81/81 on 2e80918, and 81/81 on 1dc6351. type-check:scripts, type-check:e2e and type-check:vitest-setup exit 0.
  • Full suite on next.3: 16 shards, 5,424 files, every red in the table above. 12 shards were fully green.
  • On bc4712a:
    • the 29 test files this PR touches or reaches, together with the 32 test files the merge of main brought: 60 passed and 1 skipped (1,405 tests passed);
    • scripts/__tests__/ in full: 186 files passed and 2 skipped (5,620 tests).
  • Negative control: this branch's pins with next.2 installed (the BASE lockfile) are red, and on next.3 they are green:
    • registry-inputs-spec-parity: 26;
    • the three record-block spec-parity pins: 4;
    • select-option-spec-extension-7014: 1;
    • block-config: 1;
    • check-lockfile-integrity, ci-cd-pipeline-doc and check-installed-spec-pin-claims: red.
  • Ablations. Each was mutated, seen red, then restored; afterwards the file hash matched HEAD and git diff HEAD was empty.
    • the node-level read put back on _def.in: 22 red;
    • the record:json ledger entry renamed: 2 red;
    • the record:related_list read put back on _def.in: 2 red;
    • kind dropped from the seven keys: 1 red.
  • Gates at exit 0 on bc4712a:
    • lockfile and spec: check:installed-pin-claims, check:lockfile-integrity, check:lockfile-dedupe, check:spec-floors, check:spec-symbols, check:phantom-deps;
    • i18n: check:i18n-keys, check:i18n-drift;
    • changesets: node scripts/check-changeset-presence.mjs, check-changeset-fixed, check-changeset-no-major, check:changeset-claims, check:pending-changeset-literals;
    • text: check:new-line-citations, check:control-bytes, check:doc-json.
  • Gates at exit 0 on the 2e80918 console build: check:sdui-registration-pins, and the eager-closure budget (3149.3 KB of 3744.1 KB).
  • Lint: eslint --no-inline-config over the 26 touched code files reports 0 errors.

Changeset

.changeset/12873-spec-next-3.md follows the repo's pre mode (tag: next). It bumps the changed released packages as minor, never major. It says the console and the runner bundle next.3, and lists the showStar narrowing and the kind widening.

Acceptance notes

  • objectui's SDUI form option type now inherits kind through SelectOptionBase, while the spec's form view option list (FormSelectOptionSchema) does not take it. This is an observation; no form face was changed here.
  • HotCRM's visibleOn keys (above) are a producer-side item for HotCRM's own next.3 bump. It is noted here and not filed.

Generated by Claude Code

Regenerated with `pnpm -r up --no-save '@objectstack/*@18.0.0-next.3'`.
All seven packages (client, core, formula, lint, sdui-parser, spec,
types) move from 18.0.0-next.2; no other resolution moves.

Claude-Session: https://claude.ai/code/session_01GqyWzkUEkq5N5ne2ieHxVv
Co-authored-by: Claude <noreply@anthropic.com>
check:installed-pin-claims named 26 sites (38 lines) stamped with the
installed 18.0.0-next.2. Each fact was re-measured on next.3 with next.2
as the control before its stamp moved: a parse probe over both installed
spec builds and both lint builds (output identical except the view-data
page check), the green type-check, and the files' own tests.

- The three sentences about the spec's view-data page check
  (`checkPageComponentViewData`) said the installed spec still carries
  it; next.3 is the first release without it (objectstack a35f7a6), so
  they now say that instead of being restamped.
- ci-cd-pipeline.md's one-off next.2 install reading is reworded so the
  verb "installed" is not read as an installed-pin claim.
- e2e/live/ci/backend.env names 18.0.0-next.3 (ci-cd-pipeline-doc).
- check-lockfile-integrity samples are re-keyed onto next.3's keys.

Claude-Session: https://claude.ai/code/session_01GqyWzkUEkq5N5ne2ieHxVv
Co-authored-by: Claude <noreply@anthropic.com>
Three reds the installed next.3 raised in registry-inputs-spec-parity
(27 cases):

- The node-level key set read `PageComponentSchema._def.in`, the input
  side of a `.pipe()`. next.3 drops the pipe that folded the retired
  `visibility` spelling (objectstack 105902f), so the read came back
  empty and every block declaring `className` or `dataSource` went red.
  It now reads the schema's own shape.
- next.3 tombstones `page:header.showStar` (objectstack ae0ca66), so the
  exemption written for it goes dangling and stale; its own text says
  deleting it on this bump is the whole fix.
- next.3 adds `record:json` (objectstack 97b8e7a51d). objectui does not
  register it: the maintainer dropped objectui#12490's face and the type
  is filed for retirement upstream (objectstack#24162). It is ledgered
  as NOT REGISTERED, DELIBERATELY, and the population moves 59 -> 60.

Claude-Session: https://claude.ai/code/session_01GqyWzkUEkq5N5ne2ieHxVv
Co-authored-by: Claude <noreply@anthropic.com>
…rd-block parity pins

next.3 drops the `.pipe()` that folded the retired `visibility` spelling
(objectstack 105902f), so `PageComponentSchema._def.in` is gone and the
node-level widening in the record:details, record:highlights and
record:related_list parity pins read back empty. Each now reads the
schema's own shape, the same follow the repo-wide gate takes.

Claude-Session: https://claude.ai/code/session_01GqyWzkUEkq5N5ne2ieHxVv
Co-authored-by: Claude <noreply@anthropic.com>
next.3 adds `kind` (open / won / lost) to `SelectOptionSchema`
(objectstack adad73f), so the key-set pin in
select-option-spec-extension-7014 went red. The pin moves to the seven
keys, and select-option.ts, which the pin says to re-point with it, names
`kind` among the keys the derivation inherits.

Claude-Session: https://claude.ai/code/session_01GqyWzkUEkq5N5ne2ieHxVv
Co-authored-by: Claude <noreply@anthropic.com>
…rd:json

next.3 adds `record:json` to `PageComponentType` (objectstack 97b8e7a51d),
so block-config's coverage pin requires a palette decision for it. It is
excluded: objectui does not render it, because the maintainer dropped the
raw-payload face it was added for (objectui#12490), and the type is filed
for retirement upstream (objectstack#24162).

The changeset also names the `kind` member the select-option types now
inherit from the spec.

Claude-Session: https://claude.ai/code/session_01GqyWzkUEkq5N5ne2ieHxVv
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对 — ACCEPT · objectui#12873 · head bc4712a · 2026-10-17T13:27Z

Seat domain:ui#4, session session_01SJn1GEkrbbBQkhGC26wEDw. Checked against GitHub and the diff, not against the report (relayed on the card). The seat opened this PR from the dev's drafts (degraded channel). The body and the title are the dev's drafts verbatim.

Checklist

  • Form:
    • Draft → main, assignee os-sales.
    • The first line is Fixes #12873, and the second is Clause-②: yes, as the claim declares (6232477691).
    • Eight commits (seven changes and one plain merge of origin/main) carry only the model-free trailer pair.
    • git merge-tree against current main is clean. 36 files, +185 / −157. No PNG. Not a governed surface.
  • The bump:
    • Lockfile: the seven @objectstack/* packages resolve at 18.0.0-next.3, as all 14 entries. The diff is 72 lines out and 72 in, and every line is the @objectstack closure. One correction to the report, which reads "all @objectstack/*": pg-connection-string moves 2.14.0 → 2.14.1. The seat traced it: it is a direct dependency of @objectstack/spec itself, which pins 2.14.0 at next.2 and 2.14.1 at next.3. So it rides the bump, and nothing outside the closure moved.
    • Range floors: none moved. check:spec-floors is green.
    • e2e/live/ci/backend.env: names 18.0.0-next.3. The vitest override was re-measured as its own text asks, and it is still needed.
  • The reds and their follows (9 files and 36 tests on the lockfile-only 2e80918), each traced to its upstream commit in the PR's table:
    • PageComponentSchema is no longer a .pipe() (objectstack 105902f). The repo-wide parity gate and the three record-block parity pins read the schema's own shape instead of _def.in.
    • page:header showStar is tombstoned (objectstack ae0ca66). The exemption that said it dies on this bump is deleted.
    • record:json is added (objectstack 97b8e7a51d). It is ledgered NOT REGISTERED, DELIBERATELY, and excluded from the palette. Ruled below.
    • The select option gains kind (objectstack adad73f). The key-set pin reads seven keys, and select-option.ts names kind among the inherited keys.
    • The bump's own pins: the lockfile-integrity samples, the CI doc pin, and 26 installed-spec claim sites, each re-measured on next.3 with next.2 as the control before its stamp moved. Three sentences were rewritten because their fact moved (checkPageComponentViewData is gone on next.3).
  • Negative control: this branch's pins are red with the BASE lockfile (next.2) and green on next.3. Four ablations went red and were restored.
  • Held cards:
    • objectui#12333: the installed spec descends from 1eac7ad751, and none of its pins went red. Its two remaining items stay on that card, which restarts once this lands.
    • objectui#12490: next.3 carries 97b8e7a51d. Ruled below.
  • Smoke read, read by the seat (never-merged claude/issue-12873-evidence at 0a6fc21): the console from this branch against a HotCRM backend on next.3. The Leads list, a lead record page and Studio's object designer on crm_lead render, with no page errors. Sent to the maintainer at 2026-10-17T13:27Z.
  • Gates:
    • build (43/43);
    • type-check (81/81 on 2e80918 and on 1dc6351), plus type-check:scripts, type-check:e2e and type-check:vitest-setup;
    • the lockfile, spec, i18n, changeset and text gates on bc4712a;
    • the console's SDUI registration pins and eager-closure budget (3149.3 of 3744.1 KB);
    • the full suite in 16 shards (12 fully green, with every red in the table);
    • on bc4712a, this PR's 29 test files plus the 32 that main brought (1405 tests), and scripts/__tests__ in full (5620 tests).
  • Changeset: minor for nine released packages, in pre mode on tag next, never major. It names the showStar narrowing and the kind widening in user-facing prose.
  • CI: running at this record. Landing waits for green.

Rulings

  1. record:json: A, as taken. It is recorded as deliberately unregistered, in the parity ledger and the palette exclusions, and no renderer is built. The seat verified the pointer the dev cites: 6232139151 on objectui#12490 quotes the maintainer verbatim, 「业务上没有这个需求啊,处理审批的人为什么需要看json」, with the renderer step dropped and the type filed for retirement upstream (spec(ui): retire record:json (#23745, 97b8e7a51d): its only consumer, the approval request page panel, was dropped by the maintainer; main already versions it into 18.0.0-next.3, which is not yet published objectstack#24162). Both entries go red when the spec retires the type, so the record cannot outlive the decision.
  2. Channel: A, as taken. The dispatch's degraded channel stands over os-dev.md's self-opened PR while the relay refuses this container (403).
  3. HotCRM's visibleOn keys are a producer item for HotCRM's own next.3 bump, and this seat does not file them. src/sales/views/lead.view.ts carries 44 view form field visibleOn keys, which next.3 refuses (objectstack 105902f). The repo:hotcrm seat's bump carries it.
  4. The form option kind observation stays noted, not filed: no producer was measured.
  5. Recorded for the process, not the code.
    • The session's permission classifier refused two commands: the shared checkout's git branch -D, and an in-place edit and install in the read-only HotCRM clone.
    • The dev reached the same branch by detaching instead. The HotCRM smoke read was then made in a scratch worktree, never committed or pushed, and removed.
    • The smoke read is supporting evidence only, and nothing from it is in this PR.
    • Future dispatches that need a HotCRM override will say how it may be made.

Implemented-by: cloud session session_01GqyWzkUEkq5N5ne2ieHxVv, branch claude/issue-12873-objectstack-next-3


Generated by Claude Code

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Contract review

Served-tier: TIER_DEFAULT
Head-sha: bc4712a23a182798bf06f7cd1b2010bd547c7017
Local-runs: none

Face: the Clause-②: yes declaration of the claim 6232477691 on objectui#12873: the consumer bump of @objectstack/* to 18.0.0-next.3, and what @object-ui/types' faces inherit by reference. The PR's file list carries no packages/spec/src/** path and no governed path.

Inputs read:

  • the card, the claim, and the held cards objectui#12333 and objectui#12490 with the pointer 6232139151;
  • the diff at the head above, the lockfile diff included;
  • the changeset;
  • the PR body and its upstream commit table.

Nothing was built or run locally.

① Derived judgments

  • The accept set narrows by one key. page:header properties.showStar is now refused by safeValidateSchema and StrictAnyComponentSchema, with the spec's own retirement message. objectui reads the page:header props from the spec row by reference, so this follows the protocol rather than a local spelling. No objectui renderer reads the key (objectui#12627).
  • One type widens. SelectOptionBase, and the field and form option types on it, inherit the spec's optional kind (open / won / lost). It is additive and optional.
  • One spec type is recorded as unregistered, by the maintainer's ruling. record:json is not rendered and is excluded from the palette (pointer 6232139151). An app that authors it gets the loud unknown-component panel, not a silent half-feature.
  • No exported component, prop or i18n key changes. The restamps are comment text, and the follows are tests and one palette-exclusion string.
  • The lockfile moves only the @objectstack closure, including @objectstack/spec's own pinned pg-connection-string.

② Semver level

minor for nine released packages, in pre mode on tag next. That matches the next.2 consumer bump (objectui#12626, PR #12648). Narrowing one tombstoned key that no renderer reads is within minor in this repo's pre-release convention, and the no-major gate passes. Consistent.

③ Boundary flags

  • None that needs the maintainer's ruling. The record:json decision is the maintainer's own (verified above).
  • To know: HotCRM's lead.view.ts does not compile on next.3 (44 visibleOn keys). That is a producer-side item for HotCRM's own bump, outside this face.

Implemented-by: session_01GqyWzkUEkq5N5ne2ieHxVv
Reviewed-by: session_01SJn1GEkrbbBQkhGC26wEDw

VERDICT: PASS


Generated by Claude Code

@github-actions

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Eager closure (gzip, 75 chunks) 3151.2 KB 3744.1 KB
Main entry chunk (gzip) 80.4 KB 350 KB
Entry file index-Dn-1mVjI.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) 21.42KB 7.85KB
app-shell (runtime-config.js) 23.60KB 8.19KB
app-shell (types.js) 0.01KB 0.04KB
app-shell (urlParams.js) 10.11KB 3.87KB
auth (ActiveOrganizationStorage.js) 27.95KB 10.04KB
auth (AuthContext.js) 0.31KB 0.24KB
auth (AuthGuard.js) 2.07KB 1.00KB
auth (AuthProvider.js) 45.59KB 12.03KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 20.67KB 6.12KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.72KB 2.24KB
auth (SocialSignInButtons.js) 9.74KB 3.94KB
auth (UserMenu.js) 3.39KB 1.21KB
auth (auth-gate-events.js) 1.62KB 0.83KB
auth (authStyles.js) 5.27KB 1.86KB
auth (createAuthClient.js) 42.84KB 11.66KB
auth (createAuthenticatedFetch.js) 8.54KB 3.46KB
auth (index.js) 3.63KB 1.64KB
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) 11.08KB 4.58KB
collaboration (CommentThread.js) 27.26KB 8.03KB
collaboration (LiveCursors.js) 3.17KB 1.27KB
collaboration (PresenceAvatars.js) 6.28KB 2.60KB
collaboration (PresenceProvider.js) 2.79KB 1.13KB
collaboration (commentAuthorship.js) 1.39KB 0.78KB
collaboration (index.js) 1.93KB 0.85KB
collaboration (useCollaborationTranslation.js) 6.50KB 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) 606.32KB 146.86KB
core (index.js) 10.18KB 4.04KB
create-plugin (index.js) 27.94KB 9.51KB
data-objectstack (index.js) 248.83KB 69.44KB
fields (index.js) 291.19KB 74.38KB
i18n (LocalizationContext.js) 2.92KB 1.42KB
i18n (builtinAggregateLabels.js) 0.86KB 0.49KB
i18n (currency.js) 2.59KB 1.22KB
i18n (fallbackInterpolation.js) 6.25KB 2.77KB
i18n (i18n.js) 8.87KB 3.64KB
i18n (index.js) 5.52KB 2.39KB
i18n (pickLocalized.js) 9.86KB 3.95KB
i18n (provider.js) 39.35KB 12.88KB
i18n (translateFn.js) 0.20KB 0.18KB
i18n (useDisplayLocale.js) 3.52KB 1.76KB
i18n (useObjectLabel.js) 36.87KB 9.88KB
i18n (useSafeTranslation.js) 7.14KB 2.92KB
layout (index.js) 41.33KB 11.96KB
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) 6.62KB 2.45KB
mobile (useResponsive.js) 0.72KB 0.42KB
mobile (useSpecGesture.js) 5.52KB 2.10KB
mobile (useTouchTarget.js) 1.01KB 0.54KB
permissions (MePermissionsProvider.js) 15.35KB 5.51KB
permissions (PermissionContext.js) 0.31KB 0.25KB
permissions (PermissionGuard.js) 0.89KB 0.45KB
permissions (PermissionProvider.js) 6.82KB 2.38KB
permissions (discardProofCache.js) 1.04KB 0.55KB
permissions (evaluator.js) 8.33KB 3.07KB
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) 16.04KB 3.92KB
plugin-calendar (index.js) 54.94KB 16.05KB
plugin-charts (index.js) 84.97KB 23.36KB
plugin-chatbot (index.js) 210.60KB 49.94KB
plugin-dashboard (index.js) 146.23KB 39.59KB
plugin-designer (index.js) 233.95KB 50.08KB
plugin-detail (index.js) 265.18KB 70.24KB
plugin-editor (index.js) 2.23KB 1.05KB
plugin-form (index.js) 180.22KB 46.59KB
plugin-gantt (index.js) 178.36KB 45.08KB
plugin-grid (index.js) 272.78KB 75.66KB
plugin-kanban (index.js) 62.48KB 19.34KB
plugin-list (index.js) 139.20KB 35.82KB
plugin-map (index.js) 27.07KB 8.96KB
plugin-markdown (index.js) 13.88KB 4.80KB
plugin-report (index.js) 46.66KB 13.13KB
plugin-timeline (index.js) 39.21KB 11.85KB
plugin-tree (index.js) 15.27KB 5.40KB
plugin-view (index.js) 94.68KB 24.36KB
providers (DataSourceProvider.js) 0.75KB 0.39KB
providers (MetadataProvider.js) 1.37KB 0.59KB
providers (ThemeProvider.js) 1.90KB 0.85KB
providers (UploadProvider.js) 12.07KB 3.68KB
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) 120.23KB 39.46KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 4.50KB 2.06KB
react (schema-input.js) 4.31KB 2.07KB
react (spec-input.js) 0.20KB 0.18KB
sdui-parser (body-dialect.js) 4.50KB 1.99KB
sdui-parser (codegen.js) 9.45KB 3.76KB
sdui-parser (dashboard-widget-options.js) 3.07KB 1.30KB
sdui-parser (index.js) 7.30KB 3.12KB
sdui-parser (input-type.js) 2.84KB 1.40KB
sdui-parser (parse.js) 25.28KB 7.81KB
sdui-parser (provenance.js) 3.84KB 1.90KB
sdui-parser (types.js) 0.29KB 0.24KB
sdui-parser (validate.js) 23.87KB 7.83KB
types (ai.js) 4.39KB 2.17KB
types (api-types.js) 0.20KB 0.18KB
types (app.js) 4.12KB 1.61KB
types (authoring-nodes.js) 0.20KB 0.19KB
types (base.js) 0.20KB 0.18KB
types (blocks.js) 0.20KB 0.18KB
types (cloud.js) 0.20KB 0.18KB
types (complex.js) 4.44KB 2.07KB
types (crud.js) 0.20KB 0.18KB
types (dashboard-filter-alias.js) 6.23KB 2.74KB
types (dashboard-widget-layout.js) 2.06KB 0.96KB
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) 1.13KB 0.65KB
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) 5.78KB 2.70KB
types (layout.js) 0.20KB 0.18KB
types (managed-by.js) 0.19KB 0.18KB
types (mobile.js) 5.00KB 2.39KB
types (navigation.js) 0.20KB 0.18KB
types (node-slots.js) 7.18KB 2.34KB
types (objectql.js) 0.20KB 0.18KB
types (overlay.js) 0.20KB 0.18KB
types (permissions.js) 2.52KB 1.31KB
types (plugin-scope.js) 0.20KB 0.18KB
types (record-approval-decision.js) 0.20KB 0.20KB
types (record-components.js) 0.20KB 0.19KB
types (record-panels.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) 4.99KB 1.96KB
types (spec-ui-namespace.js) 0.20KB 0.19KB
types (strict-authoring-face.js) 19.93KB 7.26KB
types (system-fields.js) 3.33KB 1.54KB
types (theme.js) 6.28KB 2.87KB
types (ui-action.js) 8.48KB 3.50KB
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

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Landing · head bc4712a · 2026-10-17T13:39Z

  • Head since the ACCEPT: unchanged at bc4712a. The ACCEPT (6234437731) and the contract review (6234440983) were checked against this exact commit, so their rulings stand.
  • Checks on bc4712a: 38 runs: 35 green, 3 expected skips, none red. The green runs include Build & E2E, Repo Gates, all 16 test shards, Type Check, Lint, Bundle Analysis (eager closure 3151.2 of 3744.1 KB) and Governed Surface Queue Guard. This is the first CI run of the full suite on 18.0.0-next.3 in this repo, and it confirms the dev's local readings.
  • Merge state: clean against main 2ec9e2a. GitHub reports mergeable_state: clean, and git merge-tree agrees.
  • Commit messages: all eight commits (seven changes and a plain merge of origin/main) carry only the model-free trailer pair.
  • Action: mark the PR ready for review and enable auto-merge through the merge queue. Fixes #12873 closes the card on merge. Then objectui#12333 restarts, and objectui#12490's owner re-points that card.

Generated by Claude Code

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 17, 2026 13:40
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge October 17, 2026 13:40
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 17, 2026
Merged via the queue into main with commit 26323c4 Oct 17, 2026
39 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-12873-objectstack-next-3 branch October 17, 2026 13:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

deps(v18): move objectui's @objectstack/* from 18.0.0-next.2 to 18.0.0-next.3 and follow its contract changes

2 participants