Skip to content

feat(i18n,plugin-timeline): retire the unread timeline.bucket.overdue key (objectui#11676) - #11716

Merged
objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-11676-retire-overdue-key
Oct 6, 2026
Merged

objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-11676-retire-overdue-key

Conversation

@objectstack-fleet

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

Copy link
Copy Markdown
Contributor

Fixes #11676

Clause-②: no (narrowing)

The card's last piece. Its first half landed as ce464d9 (PR objectui#11700): a past day on an object-bound timeline is "Earlier". Triage then answered the due-date question with ruling A (comment 6011959066): no timeline says "Overdue", the dead key retires, and the card closes on that. This PR retires timeline.bucket.overdue and nothing else: no due-date bucket, no new key, no spec change.

What changes

  • packages/plugin-timeline/src/useTimelineTranslation.ts: the 'timeline.bucket.overdue': 'Overdue' row of TIMELINE_DEFAULT_TRANSLATIONS is gone, with its "kept until the open question decides" comment. A short tombstone comment points at the pin.
  • The ten packs (packages/i18n/src/locales/{en,zh,ja,ko,de,fr,es,pt,ru,ar}.ts): the overdue member of each timeline: { bucket: { ... } } block is deleted, one line per pack. The fields.relativeDate.overdue plural rows (the date cell's "Overdue 3d") and slaOverdue are other families and stay. Each pack's count of lines matching overdue drops by exactly one.
  • ObjectTimeline.pastBucket-11676.test.tsx: the card's own pin gains a describe that asserts the key is absent from the defaults row (and that translateTimelineDefault answers the bare key) and from every pack's timeline.bucket. Non-vacuity: the pack set equals BUILT_IN_LANGUAGE_CODES, and earlier is present in the table and in every pack. The fields.relativeDate.overdue family is pinned as the surviving sibling, because a sweep by leaf name would take it out. The header's "open question" prose now states ruling A. No existing assertion changed.
  • timeline-relative-defaults-retired-7874.test.ts: no assertion reads the key. Its header cites a positive control measured at 83fe6e741 that used timeline.bucket.overdue. That record stays, with a dated note that the key has since retired, so a re-run needs another ObjectTimeline.tsx key as its control.
  • packages/plugin-timeline/src/ObjectTimeline.tsx, comment only (patch round 1, 5068741): the comment above dateBucket said that bringing "Overdue" back through a declared signal "is an open question on objectui#11676". Ruling A answered that, and this PR closes the card, so the sentence now says that triage ruled that no timeline says "Overdue" (ruling A), the bucket is the calendar position alone, and a due-date timeline would be a new card that declares its signals in the spec first. No code line changed.
  • Changesets: two. .changeset/11676-timeline-past-bucket.md (pending, this card's first half) said "timeline.bucket.overdue is kept in every pack". That sentence is corrected in prose only; the front matter is untouched. A new .changeset/11676-retire-overdue-key.md (minor on @object-ui/i18n and @object-ui/plugin-timeline) declares the removal and the TranslationKeys narrowing. The second file is needed because check-changeset-presence counts ADDED changesets only (--diff-filter=A), so a modified one would not declare this change.

No docs edit: content/docs/plugins/plugin-timeline.mdx and the package README already list the buckets as Earlier, Today, Tomorrow, This week, Next week, Later, No date.

Premise, re-measured on main 9ca3cac

  • Readers: git grep over tracked packages/**, apps/**, scripts/** and examples/**, for the literal key and for assembled spellings (a template literal or concatenation on timeline. or bucket.). Zero non-test source reads timeline.bucket.overdue. The only hits were the defaults row itself and comments in the two pins. Control: the same search finds timeline.bucket.earlier read once, by dateBucket in ObjectTimeline.tsx.
  • The pack lines: in all ten packs the deleted line is the first member under timeline: { then bucket: {, read before the edit. The deletion was anchored on that three-line shape, one hit per pack, checked on disk after writing.

Public surface: the narrowing, read on built output

@object-ui/i18n was built at base (9ca3cac, a detached worktree) and at head, and every dist/**/*.d.ts was compared. The file set is the same. 11 files differ, all under dist/locales/, and every difference is one removed line. locales/en.d.ts loses exactly readonly overdue: "Overdue"; under timeline.bucket, so TranslationKeys = typeof en loses one member. zh.d.ts loses readonly overdue: "已逾期";, the other eight packs each lose overdue: string;, and locales/index.d.ts loses those ten members. dist/index.d.ts and the other d.ts files are byte-identical. No additions anywhere, so Clause-②: no (narrowing) holds. In @object-ui/plugin-timeline, TIMELINE_DEFAULT_TRANSLATIONS keeps its string-to-string Record type; head dist/index.js carries timeline.bucket.overdue 0 times and timeline.bucket.earlier 2 times.

Reverse type check against the rebuilt d.ts: a throwaway probe in packages/plugin-timeline reading en.timeline.bucket.overdue and TranslationKeys['timeline']['bucket']['overdue'] fails with TS2339 twice (exit 2). The same probe on earlier compiles (exit 0). Both probes were deleted after the run; git status was empty.

Tests and gates, at head e8d7630 (patch round 1 at 5068741, a comment-only commit, re-ran the plugin-timeline type-check, lint, the card's pin, packages/plugin-timeline/ (559 passed) and the line-citation, control-byte and changeset gates, all exit 0)

Heavy runs went through os-verify-lock.sh with OS_VERIFY_LOCK_SLOT=issue-11676. Every exit below was captured before any pipe.

  • pnpm exec vitest run --maxWorkers=2 on the two pins, scripts/__tests__/defaults-population-parity-7904.test.ts, packages/app-shell/src/__tests__/defaults-maps-mirror-en-pack.test.tsx, scripts/__tests__/date-only-zone-pins-10183.test.ts, all-locales-key-parity.test.ts and en-zh-key-parity.test.ts: at base Test Files 7 passed (7), Tests 102 passed (102); at head Test Files 7 passed (7), Tests 105 passed (105), the 3 new pins added. Exit 0 both.
  • pnpm exec vitest run --maxWorkers=2 packages/plugin-timeline/: Test Files 45 passed (45), Tests 559 passed | 37 skipped (596), exit 0. The skipped cases include the zone cases the 10183 driver runs.
  • pnpm exec vitest run --maxWorkers=2 packages/i18n/: Test Files 80 passed (80), Tests 1304 passed | 13 skipped (1317), exit 0.
  • pnpm --workspace-concurrency=2 --filter '@object-ui/plugin-timeline^...' build, then pnpm --filter @object-ui/plugin-timeline build: exit 0.
  • pnpm --filter @object-ui/i18n type-check, pnpm --filter @object-ui/plugin-timeline type-check: exit 0, both script names echoed. tsc -p tsconfig.test.json --listFilesOnly lists both edited pins, and it resolves @object-ui/i18n/locales to the rebuilt dist/locales/index.d.ts.
  • pnpm --filter @object-ui/i18n lint, pnpm --filter @object-ui/plugin-timeline lint: exit 0. As eslint . --format json: 112 and 51 files, 0 errors. The 13 changed TS files are all in those sets, with 0 errors and 0 warnings. Root pnpm lint is turbo run lint, the same per-package eslint ., so these two runs are its narrowing to the packages this diff touches. eslint.config.js sets no parserOptions / projectService, so linting is not type-aware and this diff cannot change a verdict in another package. The full run is CI's.
  • pnpm check:i18n-keys, check:i18n-drift, check:i18n-dead-keys: exit 0 before and after. Readings moved as predicted. Keys: the factory-defaults rows compared went from 969 to 968, all matching. Drift: "0 key(s) added, 1 removed". Dead keys: en pack keys from 3274 to 3273, candidates from 346 to 345, and the timeline.bucket namespace (1 needs-review, timeline.bucket.overdue) is gone from the report.
  • pnpm check:new-line-citations (VERDICT ... 0 new citation(s)), check:control-bytes, check:changeset-claims, check:pending-changeset-literals, check:test-path-roots, check:vi-mock-specifiers, check:vi-mock-inherit, check:vi-mock-override-shape, check:unreferenced-sources, check:phantom-deps, check:esm-specifiers, check:published-dist: exit 0.
  • node scripts/check-changeset-overwrite.mjs: exit 0, report-only. It reports the edit to .changeset/11676-timeline-past-bucket.md as its case 2, a deliberate prose correction; the declared packages are unchanged. check-changeset-no-major, check-changeset-presence ("1 changeset(s) added"), check-changeset-fixed: exit 0.
  • NOT MEASURED: check:eager-locale-catalogues needs a full console build. This diff removes one key and adds no catalogue to any eager closure. Left to CI.

Ablation: one key back in one pack

On the committed tree, node /home/user/objectstack/scripts/ablation-replace.mjs put overdue: '已逾期', back under timeline.bucket in zh.ts only. It wrapped a vitest run of the card's pin, all-locales-key-parity.test.ts and en-zh-key-parity.test.ts. The prediction was 3 red: the new "no pack carries it" pin, "zh defines no key that en lacks", and "has no zh key absent from en". Observed: Test Files 3 failed (3), Tests 3 failed | 52 passed (55), exactly those three. The mutation landed on disk: anchor x1 to x0, replacement x0 to x1, blob c683b85f to 753b9732, and the planted line counted 1 during the run. Restore: blob c683b85f equals HEAD, git diff HEAD is empty, and git status is clean. The run read packs from source (the vitest alias maps @object-ui/i18n to packages/i18n/src), so no rebuild was involved.

The first attempt was a refused no-op. Its anchor, the earlier line, also occurs inside the planted text, so the anchor count could not drop. The tool refused before running anything and proved the restore. The second attempt used the two-line bucket: { plus earlier anchor.

Acceptance notes

  • One local step broke the shared-box discipline: pnpm check:published-dist builds every published package (a 43-task turbo build, about 5 minutes) and ran outside the verify lock. It finished green and left the worktree clean.

Generated by Claude Code

…e` key (objectui#11676)

A past day on a timeline is "Earlier" since ce464d9, and triage ruled
that no timeline says "Overdue" (ruling A). Nothing reads the key, so it
retires from TIMELINE_DEFAULT_TRANSLATIONS and from the timeline.bucket
block of all ten packs. The fields.relativeDate.overdue plural rows and
slaOverdue are other families and stay.

The card's own pin now asserts the row and the ten pack keys absent,
with the fields.relativeDate.overdue family as the surviving sibling.
The pending changeset's "kept in every pack" sentence is corrected, and
a second changeset declares the TranslationKeys narrowing (minor).

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

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Eager closure (gzip, 330 chunks) 3323.2 KB 3330.4 KB
Main entry chunk (gzip) 153.6 KB 350 KB
Entry file index-w8xTaNRU.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) 17.60KB 6.51KB
app-shell (runtime-config.js) 22.52KB 7.86KB
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) 40.22KB 10.61KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 18.15KB 5.40KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.72KB 2.24KB
auth (SocialSignInButtons.js) 9.70KB 3.93KB
auth (UserMenu.js) 3.39KB 1.21KB
auth (auth-gate-events.js) 1.29KB 0.66KB
auth (authStyles.js) 5.04KB 1.72KB
auth (createAuthClient.js) 40.70KB 10.94KB
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.11KB 7.97KB
collaboration (LiveCursors.js) 3.17KB 1.27KB
collaboration (PresenceAvatars.js) 6.28KB 2.60KB
collaboration (PresenceProvider.js) 2.79KB 1.13KB
collaboration (index.js) 1.68KB 0.73KB
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) 574.72KB 137.94KB
core (index.js) 10.00KB 3.96KB
create-plugin (index.js) 27.94KB 9.51KB
data-objectstack (index.js) 233.72KB 64.83KB
fields (index.js) 262.75KB 66.62KB
i18n (LocalizationContext.js) 1.76KB 0.96KB
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) 35.66KB 9.49KB
i18n (useSafeTranslation.js) 7.14KB 2.92KB
layout (index.js) 41.18KB 11.71KB
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) 13.86KB 5.00KB
permissions (PermissionContext.js) 0.31KB 0.25KB
permissions (PermissionGuard.js) 0.89KB 0.45KB
permissions (PermissionProvider.js) 6.52KB 2.26KB
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) 53.39KB 15.52KB
plugin-charts (index.js) 84.26KB 23.05KB
plugin-chatbot (index.js) 198.81KB 47.14KB
plugin-dashboard (index.js) 143.75KB 38.87KB
plugin-designer (index.js) 231.46KB 48.87KB
plugin-detail (index.js) 247.23KB 65.04KB
plugin-editor (index.js) 2.23KB 1.05KB
plugin-form (index.js) 177.09KB 45.89KB
plugin-gantt (index.js) 179.16KB 45.06KB
plugin-grid (index.js) 238.48KB 65.51KB
plugin-kanban (index.js) 52.17KB 16.37KB
plugin-list (index.js) 116.72KB 29.10KB
plugin-map (index.js) 25.60KB 8.62KB
plugin-markdown (index.js) 13.88KB 4.80KB
plugin-report (index.js) 44.12KB 12.29KB
plugin-timeline (index.js) 38.90KB 11.74KB
plugin-tree (index.js) 14.51KB 5.15KB
plugin-view (index.js) 90.23KB 22.73KB
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.81KB 3.58KB
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.63KB 39.56KB
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.08KB 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.80KB
sdui-parser (provenance.js) 3.84KB 1.90KB
sdui-parser (types.js) 0.28KB 0.23KB
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-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) 4.99KB 1.96KB
types (spec-ui-namespace.js) 0.20KB 0.19KB
types (strict-authoring-face.js) 19.93KB 7.25KB
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

… open question (objectui#11676)

The comment above dateBucket said that bringing "Overdue" back through a
declared signal was an open question on the card. Triage answered it
(ruling A: no timeline says "Overdue"), and this PR closes the card, so
the sentence would be false on merge. Comment prose only; the rest of
the comment is unchanged.

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

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Eager closure (gzip, 330 chunks) 3323.2 KB 3330.4 KB
Main entry chunk (gzip) 153.6 KB 350 KB
Entry file index-w8xTaNRU.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) 17.60KB 6.51KB
app-shell (runtime-config.js) 22.52KB 7.86KB
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) 40.22KB 10.61KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 18.15KB 5.40KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.72KB 2.24KB
auth (SocialSignInButtons.js) 9.70KB 3.93KB
auth (UserMenu.js) 3.39KB 1.21KB
auth (auth-gate-events.js) 1.29KB 0.66KB
auth (authStyles.js) 5.04KB 1.72KB
auth (createAuthClient.js) 40.70KB 10.94KB
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.11KB 7.97KB
collaboration (LiveCursors.js) 3.17KB 1.27KB
collaboration (PresenceAvatars.js) 6.28KB 2.60KB
collaboration (PresenceProvider.js) 2.79KB 1.13KB
collaboration (index.js) 1.68KB 0.73KB
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) 574.72KB 137.94KB
core (index.js) 10.00KB 3.96KB
create-plugin (index.js) 27.94KB 9.51KB
data-objectstack (index.js) 233.72KB 64.83KB
fields (index.js) 262.75KB 66.62KB
i18n (LocalizationContext.js) 1.76KB 0.96KB
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) 35.66KB 9.49KB
i18n (useSafeTranslation.js) 7.14KB 2.92KB
layout (index.js) 41.18KB 11.71KB
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) 13.86KB 5.00KB
permissions (PermissionContext.js) 0.31KB 0.25KB
permissions (PermissionGuard.js) 0.89KB 0.45KB
permissions (PermissionProvider.js) 6.52KB 2.26KB
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) 53.39KB 15.52KB
plugin-charts (index.js) 84.26KB 23.05KB
plugin-chatbot (index.js) 198.81KB 47.14KB
plugin-dashboard (index.js) 143.75KB 38.87KB
plugin-designer (index.js) 231.46KB 48.87KB
plugin-detail (index.js) 247.23KB 65.04KB
plugin-editor (index.js) 2.23KB 1.05KB
plugin-form (index.js) 177.09KB 45.89KB
plugin-gantt (index.js) 179.16KB 45.06KB
plugin-grid (index.js) 238.48KB 65.51KB
plugin-kanban (index.js) 52.17KB 16.37KB
plugin-list (index.js) 116.72KB 29.10KB
plugin-map (index.js) 25.60KB 8.62KB
plugin-markdown (index.js) 13.88KB 4.80KB
plugin-report (index.js) 44.12KB 12.29KB
plugin-timeline (index.js) 38.90KB 11.74KB
plugin-tree (index.js) 14.51KB 5.15KB
plugin-view (index.js) 90.23KB 22.73KB
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.81KB 3.58KB
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.63KB 39.56KB
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.08KB 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.80KB
sdui-parser (provenance.js) 3.84KB 1.90KB
sdui-parser (types.js) 0.28KB 0.23KB
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-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) 4.99KB 1.96KB
types (spec-ui-namespace.js) 0.20KB 0.19KB
types (strict-authoring-face.js) 19.93KB 7.25KB
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

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.

timeline: every past date is bucketed "Overdue", including creation dates and Done records

2 participants