Skip to content

chore(deps): move .objectstack-sha to the objectstack 18.1.0 release commit e649c2d91e (objectui#13440) - #13445

Merged
objectstack-fleet[bot] merged 5 commits into
mainfrom
claude/issue-13440-objectstack-pin-18-1
Oct 24, 2026
Merged

objectstack-fleet[bot] merged 5 commits into
mainfrom
claude/issue-13440-objectstack-pin-18-1

Conversation

@objectstack-fleet

@objectstack-fleet objectstack-fleet Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Sales · project thread

Closes #13440
Clause-②: no
Metadata-protocol: none

Unblocks #13285 and #13305 (both wait for a pin that carries 18.1.0).

The pin

What the move breaks, and the follow-through in this PR

Each item below is red on the bare pin move and was fixed here because the failing check names its own fix. Nothing else changed.

1. The external tripwire in @object-ui/auth (objectui#13427)

packages/auth/src/__tests__/org-roles.test.ts › "spells external itself only while the pin predates objectstack#25515" went red as designed. Its message prescribes the swap, and this PR does exactly that:

  • packages/auth/src/org-roles.ts re-exports the spec's MEMBERSHIP_ROLE_EXTERNAL as ORG_ROLE_EXTERNAL instead of spelling the literal. The exported name and its value ('external') are unchanged, and its declared type is still the literal "external", so @object-ui/auth's public face does not move (Clause-② stays no). ORG_ROLE_LABELS is typed Record<OrgRole, …> again, with the | typeof ORG_ROLE_EXTERNAL union dropped.
  • The tripwire test is deleted, with its now unused @objectstack/spec namespace import.
  • InviteMemberDialog.roleCap.test.tsx and org-i18n-holdouts-4474.test.tsx now expect external in the invite dialog's role list. This is the spec's 18.1.0 vocabulary reaching ORG_ROLES, which objectui#13427's changeset already described: "Wherever the installed spec lists the role, the invite dialog offers it to every issuer who can invite". It is not a choice made by this card. The owner list gains external, and a delegated admin or an unloaded membership is offered ['member', 'external']. The delegate test's name now says "offered member and external only".

2. check:installed-pin-claims: 34 present-tense "installed 18.0.0" stamps

The gate is blocking through scripts/__tests__/check-installed-spec-pin-claims.test.ts. The packed manifests now say 18.1.0, so it flagged 34 lines in 24 files, all comments or test description strings. No code changes.

Every stamp was re-measured before it moved. The method:

  • The spec SOURCE diff between the two pins, git diff --name-only 915e9404 e649c2d91e -- packages/spec/src, touches only automation/flow.zod.ts (the runAs description text and a comment), data/object.zod.ts (the new membershipKeys key and its extension refusal), identity/* (the external role), kernel/execution-context.zod.ts and security/explain.zod.ts (descriptions and comments), security/rls.zod.ts (MembershipKeysSchema), stack.zod.ts (the duplicate membership-key refusal), index.ts (two new exports) and one semantic migration entry, plus tests.
  • No claim's subject is in that set. The subjects are ui/* rows (ViewDataSchema, ComponentPropsMap['object-calendar'] and ['object-kanban'], list-view conditional formatting and card style rules, the chart and dashboard aria tombstones, record components, form section groups, master-detail details, the gantt navigation tombstone), FieldSchema and SelectOptionSchema, and flow node config (waitForInput, the single-brace mark, the canvas-seed save errors). The two claims about non-spec sources were checked at their own source: packages/lint/src/validate-expressions.ts (the current_user CEL message celAuthoring.ts quotes) has an empty diff between the pins, and the trigger packages changed only CHANGELOG.md and package.json.
  • The test files that carry a claim, or pin a source file's claim, ran green at the new pin (see the verification comment).

Each stamp moves 18.0.0 to 18.1.0. A stamp that carries its re-measure list (objectui#12030, … objectui#13261) gains objectui#13440, the same form objectui#13261 used. After the restamp the gate answers 34 at the pin and OK.

3. e2e/live/ci/backend.env

scripts/__tests__/ci-cd-pipeline-doc.test.ts › "pins OBJECTSTACK_VERSION to the version the lockfile resolves" went red. OBJECTSTACK_VERSION moves 18.0.0 to 18.1.0. Its @objectstack/cli@18.1.0 tag peels to this pin's commit, so the live lane's backend and the console's pin are the same release.

4. The ObjectSchema key-count guards in app-shell

MetadataService.retiredObjectEnabled.test.ts (line 157) and MetadataService.specKeyObjectPayload.test.ts (line 171) count the keys ObjectSchema accepts, and both went red with expected 47 to be 46. Spec 18.1.0 adds one key, membershipKeys (objectstack-ai/objectstack#25513). Measured, not assumed: the spec's own authorable-surface/data.json gains exactly data/Object:membershipKeys between 915e9404 and e649c2d91e, and loses nothing. Both guards now expect 47, and each carries a comment with that basis, in the same form as the earlier re-point (objectui#12971). The two files pass, 25 tests.

Changeset

.changeset/13440-objectstack-pin-e649c2d.md declares '@object-ui/auth': patch. The published module now imports MEMBERSHIP_ROLE_EXTERNAL from @objectstack/spec, so it needs a spec that exports it (18.1.0 or later). node scripts/objectstack-floor.mjs --dry-run exits 0 and moves 37 ranges to ^18.1.0 at publish, so the published ranges will require that version. check-changeset-presence.mjs and check-changeset-no-major.mjs pass.

Acceptance notes

Session: https://claude.ai/code/session_01CErMSwkRLW7c7jk23MHfVP

🤖 Generated with Claude Code

https://claude.ai/code/session_01CErMSwkRLW7c7jk23MHfVP

chore: version packages (#25606)

objectstack@e649c2d91e270e3da26820bcfe54a28445305a75

Moves the pin to the objectstack 18.1.0 release commit (objectui#13440).

Claude-Session: https://claude.ai/code/session_01CErMSwkRLW7c7jk23MHfVP
Co-authored-by: Claude <noreply@anthropic.com>
… pin carries it (objectui#13440)

The pin now names objectstack 18.1.0, whose spec exports
MEMBERSHIP_ROLE_EXTERNAL and lists `external` in BUILTIN_MEMBERSHIP_ROLES.
This is the swap the org-roles tripwire prescribed:

- org-roles.ts re-exports MEMBERSHIP_ROLE_EXTERNAL as ORG_ROLE_EXTERNAL
  (same name, same value 'external') instead of spelling the literal, and
  ORG_ROLE_LABELS is typed Record<OrgRole, ...> again.
- The tripwire test is deleted, with its now unused spec namespace import.
- InviteMemberDialog.roleCap and org-i18n-holdouts-4474 expect external in
  the invite dialog's role list, as objectui#13427 announced for a spec that
  lists the role.

Claude-Session: https://claude.ai/code/session_01CErMSwkRLW7c7jk23MHfVP
Co-authored-by: Claude <noreply@anthropic.com>
…18.1.0 (objectui#13440)

The pin's packed manifests now say 18.1.0, so check:installed-pin-claims
(blocking through scripts/__tests__/check-installed-spec-pin-claims.test.ts)
flagged 34 present-tense "installed 18.0.0" stamps in 24 files, and
ci-cd-pipeline-doc.test.ts flagged e2e/live/ci/backend.env.

Re-measured before restamping: between 915e9404 and e649c2d91e the spec
source moves only automation/flow.zod.ts (the runAs description),
data/object.zod.ts (membershipKeys), identity/*, kernel/execution-context,
security/explain and rls, stack.zod.ts and one semantic migration entry.
No claim's subject is among them (ui/*, data/field, FieldSchema options,
flow node config, ComponentPropsMap rows), and packages/lint's
validate-expressions.ts and the trigger packages' sources are unchanged.
Each stamp moves 18.0.0 -> 18.1.0; a stamp carrying its re-measure list
gains objectui#13440.

OBJECTSTACK_VERSION moves to 18.1.0, whose @objectstack/cli tag peels to
the pin commit e649c2d91e.

Claude-Session: https://claude.ai/code/session_01CErMSwkRLW7c7jk23MHfVP
Co-authored-by: Claude <noreply@anthropic.com>
…AL re-export (objectui#13440)

Claude-Session: https://claude.ai/code/session_01CErMSwkRLW7c7jk23MHfVP
Co-authored-by: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Eager closure (gzip, 85 chunks) 3006.3 KB 3496.0 KB
Main entry chunk (gzip) 80.3 KB 350 KB
Entry file index-Cuxu8ZSw.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 (buildIdentity.js) 0.80KB 0.49KB
app-shell (consoleActionDispatch.js) 0.20KB 0.19KB
app-shell (index.js) 21.41KB 7.90KB
app-shell (runtime-config.js) 24.52KB 8.48KB
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) 8.84KB 3.61KB
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) 614.94KB 150.52KB
core (index.js) 10.18KB 4.04KB
create-plugin (index.js) 27.94KB 9.51KB
data-objectstack (index.js) 253.04KB 70.68KB
fields (index.js) 295.90KB 75.88KB
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.17KB 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 (ServerReadScope.js) 4.03KB 1.82KB
permissions (discardProofCache.js) 1.04KB 0.55KB
permissions (evaluator.js) 8.33KB 3.07KB
permissions (index.js) 0.99KB 0.43KB
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.01KB 3.91KB
plugin-calendar (index.js) 55.41KB 16.19KB
plugin-charts (index.js) 88.30KB 24.33KB
plugin-chatbot (core.js) 5.22KB 2.18KB
plugin-chatbot (index.js) 237.93KB 56.26KB
plugin-dashboard (index.js) 147.15KB 39.95KB
plugin-designer (index.js) 232.83KB 50.01KB
plugin-detail (index.js) 267.21KB 71.14KB
plugin-editor (index.js) 2.21KB 1.04KB
plugin-form (index.js) 185.46KB 48.48KB
plugin-gantt (index.js) 178.19KB 45.06KB
plugin-grid (index.js) 278.30KB 77.57KB
plugin-kanban (index.js) 64.27KB 19.81KB
plugin-list (index.js) 149.60KB 39.26KB
plugin-map (index.js) 27.11KB 8.99KB
plugin-markdown (index.js) 13.79KB 4.79KB
plugin-report (index.js) 46.42KB 13.06KB
plugin-timeline (index.js) 39.30KB 11.87KB
plugin-tree (index.js) 15.25KB 5.38KB
plugin-view (index.js) 94.26KB 24.27KB
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) 129.13KB 42.23KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 4.71KB 2.11KB
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 (product-blocks.js) 0.20KB 0.19KB
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

… membershipKeys (objectui#13440)

@objectstack/spec 18.1.0 adopts ObjectSchema.membershipKeys
(objectstack#25513). Measured against the 915e9404 pin: the spec's
authorable-surface/data.json gains exactly data/Object:membershipKeys,
none lost. Both files carry the count as a corpus guard for their own
membership claims, which stay unchanged, so it is re-pointed 46 -> 47
with its history sentence, as the four earlier adoptions were.

Claude-Session: https://claude.ai/code/session_01CErMSwkRLW7c7jk23MHfVP
Co-authored-by: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Eager closure (gzip, 85 chunks) 3006.3 KB 3496.0 KB
Main entry chunk (gzip) 80.3 KB 350 KB
Entry file index-BKjfvGRN.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 (buildIdentity.js) 0.80KB 0.49KB
app-shell (consoleActionDispatch.js) 0.20KB 0.19KB
app-shell (index.js) 21.41KB 7.90KB
app-shell (runtime-config.js) 24.52KB 8.48KB
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) 8.84KB 3.61KB
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) 614.94KB 150.52KB
core (index.js) 10.18KB 4.04KB
create-plugin (index.js) 27.94KB 9.51KB
data-objectstack (index.js) 253.04KB 70.68KB
fields (index.js) 295.90KB 75.88KB
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.17KB 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 (ServerReadScope.js) 4.03KB 1.82KB
permissions (discardProofCache.js) 1.04KB 0.55KB
permissions (evaluator.js) 8.33KB 3.07KB
permissions (index.js) 0.99KB 0.43KB
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.01KB 3.91KB
plugin-calendar (index.js) 55.41KB 16.19KB
plugin-charts (index.js) 88.30KB 24.33KB
plugin-chatbot (core.js) 5.22KB 2.18KB
plugin-chatbot (index.js) 237.93KB 56.26KB
plugin-dashboard (index.js) 147.15KB 39.95KB
plugin-designer (index.js) 232.83KB 50.01KB
plugin-detail (index.js) 267.21KB 71.14KB
plugin-editor (index.js) 2.21KB 1.04KB
plugin-form (index.js) 185.46KB 48.48KB
plugin-gantt (index.js) 178.19KB 45.06KB
plugin-grid (index.js) 278.30KB 77.57KB
plugin-kanban (index.js) 64.27KB 19.81KB
plugin-list (index.js) 149.60KB 39.26KB
plugin-map (index.js) 27.11KB 8.99KB
plugin-markdown (index.js) 13.79KB 4.79KB
plugin-report (index.js) 46.42KB 13.06KB
plugin-timeline (index.js) 39.30KB 11.87KB
plugin-tree (index.js) 15.25KB 5.38KB
plugin-view (index.js) 94.26KB 24.27KB
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) 129.13KB 42.23KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 4.71KB 2.11KB
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 (product-blocks.js) 0.20KB 0.19KB
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

席位核对

ACCEPT — objectui#13440 (p1, S mechanics), head aad44f7158076ad4ba67204dc853642d0f37d8dc, reviewed 2026-10-24T14:35Z.

Seat: domain:ui#1 · Clause-②: no

项 读数
形态 40 个文件,+104/−112。包括:.objectstack-sha(915e9404 → e649c2d91e);.objectstack-pin/ 下 7 个打包清单;packages/auth 的 org-roles.ts 和它的测试;两个 organizations 测试;两个 MetadataService 键数守卫;24 个文件里的 34 处版本说法;e2e/live/ci/backend.env;一个 changeset(auth patch)。pnpm-lock.yaml 字节不变。NOT GOVERNED。全部在认领及三次修订(6383965483、6384029956、6384092848、6384208990)申报的文件面内。与当前 main 无冲突。
改动核对 读了 diff。pin 改由 scripts/bump-objectstack.sh 写入,清单和 sha 一起提交,没有搭载别的改动。org-roles.ts 改为 MEMBERSHIP_ROLE_EXTERNAL as ORG_ROLE_EXTERNAL 再导出:导出名和值 'external' 都不变;ORG_ROLE_LABELS 回到 Record<OrgRole, …>,因为 OrgRole 已含 external,键集不变;绊线测试按它自己写的指示删除。34 处版本说法只改注释和测试说明,代码不动;PR §2 写了逐处核对的依据:两个 pin 之间 spec 源码的改动都不涉及这些说法的主语。抽查 field-types.ts、plugin-detail、optionRules.ts,都只是 18.0.0 → 18.1.0。两个键数守卫从 46 改到 47,多出的键是 membershipKeys(objectstack#25513),成员断言不变。
钉测与门禁 dev 本地:全量 type-check 81/81,0 个 TS 错误;organizations 目录 17 个文件 164 项通过;两个 MetadataService 文件 25 项通过;check:installed-pin-claims 和 ci-cd-pipeline-doc 都通过。首个 head b26cfb1 的分片 4、5 因键数守卫变红,已在 aad44f7 修好。CI 全绿后由席位转 ready、进合并队列。
接受的偏差 邀请对话框里 owner 也能选到 external:这是 spec 18.1.0 的成员角色词表带来的(objectstack#25515,objectstack#25233 的裁决 B),不是本卡的选择,修订 6384029956 已写明。
不在本卡内 #13285 和 #13305 依赖本 pin,但按 Sales 10-24 的迁仓安排,暂不开工,等 objectui 并入 objectstack 后再开。
落地条款 Closes #13440:合并后关卡。

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 24, 2026 14:36
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge October 24, 2026 14:36
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 24, 2026
Merged via the queue into main with commit 0984c77 Oct 24, 2026
37 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-13440-objectstack-pin-18-1 branch October 24, 2026 14:55
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.

chore(deps): move the objectstack pin to the 18.1.0 release commit e649c2d91e

3 participants