Skip to content

docs(gantt): make the remaining plugin-gantt source comments English (#4884) - #4888

Merged
yinlianghui merged 2 commits into
mainfrom
claude/issue-4884-gantt-comments-english
Aug 17, 2026
Merged

docs(gantt): make the remaining plugin-gantt source comments English (#4884)#4888
yinlianghui merged 2 commits into
mainfrom
claude/issue-4884-gantt-comments-english

Conversation

@yinlianghui

Copy link
Copy Markdown
Collaborator

Fixes #4884

诫条 #-1 覆盖的是代码注释,不只是面向用户的文案。本 PR 是 #4021 / PR #4883 的同形续集 —— 那一单清掉了同包 QuickFilterBar.tsx,本单清掉 packages/plugin-gantt/src其余六个非测试源码文件共 163 行中文注释(JSDoc、行尾 //、JSX 注释块)。

前提复核(stale-premise)

立卡时 origin/main 是 718ca9d45,本 PR 基线是 372d9f9b4(即 PR #4883 的合并提交)。逐文件重扫,六文件行数与卡内清单逐一吻合,合计 163,前提成立。QuickFilterBar.tsx 已不在非测试命中列表内(#4883 已清)。

逐文件 Han 计数 before / after

文件 before after
GanttView.tsx 93 0
ObjectGantt.tsx 51 0
shifts.ts 9 0
scheduling.ts 8 0
ResourceWorkload.tsx 1 0
workload.ts 1 0
合计 163 0

复现:rg -c '\p{Han}' packages/plugin-gantt/src --glob '!*.test.*' —— 改后零命中,无声明例外

包内其余非测试源码(index.tsxuseGanttTranslation.tsQuickFilterBar.tsx)顺扫零残留,所以六文件即全集。

额外:\p{Han} 扫不到的一处

GanttView.tsx:3725「→」 用的是 CJK 括号(Unicode 类别 Po,不是 Han),卡内那条 rg '\p{Han}' 扫不到它,163 这个数因此是偏低的。已一并改成 `→`,并补扫 CJK 标点/全角区(U+3000-303FU+FF00-FFEFU+FE10-FE1F)确认归零。记一笔:若后续真要建门,判据不能只有 \p{Han}

按现状改写处(注释与代码现状矛盾)

1. 引用 UI 字面量的注释 → 改指真实 bundle 键

这些注释引用的中文按钮/菜单文案,现已由 useGanttTranslation.tsgantt.* 键解析(英文默认值),注释里的中文literal 早已不对应任何调用点 —— 与 #4883 修 quick-filter labels 的同一类过期。改写后直接指键:

原注释引用 改后指向
"保存布局"(2 处:persistLayoutKey JSDoc、GanttLayout JSDoc) gantt.toolbar.saveLayout
"移除依赖" gantt.menu.removeDependency
手动刷新 gantt.toolbar.refresh
"添加紧前/紧后"(2 处) gantt.menu.addPredecessor / gantt.menu.addSuccessor
查看(context menu / focus 注释) gantt.menu.view
开始/结束 labels gantt.column.start / gantt.column.end
自动顺延 / 取消保留 gantt.conflict.confirm / gantt.conflict.cancel
无需排程 gantt.autoScheduleDlg.none

2. 注释块贴错了 JSX(位置漂移)

GanttView.tsx拖拽冲突 → 顺延确认 (Group 2) 这段注释,贴在 pendingAutoSchedule(自动排程对话框)上方,而它描述的冲突对话框在约 60 行之后的 pendingConflict 处 —— 两段注释叠在同一个 JSX 上,下面那段才是对的。已把冲突对话框的注释移回 pendingConflict 上方,自动排程那段留在原位。纯注释挪位,零行为。

3. ObjectGantt.tsx JSDoc 代码示例的取舍(216-217)

卡内点名的 label: '白班' / label: '夜班'JSDoc 代码示例,不是运行期取值。二选一里我选了改成英文示例('Day shift' / 'Night shift'),理由三条:

  1. 与同一字段的另一处文档一致 —— 这两行示例填的是 ShiftBandConfig.label,而 shifts.ts 里该字段自己的 JSDoc 我也改成了 'Day shift' / 'Night shift';同一个字段在两个文件里给出不同语言的示例是新的不一致。
  2. 示例演示的是形状,不是语言 —— 该字段文档明写 label 是「caller 已本地化的显示文本」,所以英文标签与中文标签作为示例同样真实,不存在失真;示例要传达的信息是 key/label/start/end 这四个键的结构。
  3. 先例 —— docs(gantt): make QuickFilterBar JSDoc English and point at the bundle keys (#4021) #4883 处理 QuickFilterLabels 时,对同类中文示例字面量的处置就是移除/英文化,而非保留。

顺带在该 JSDoc 里补了一句 label 是 caller 已本地化文本,让示例的英文标签不被误读成硬编码默认值。

其余中文按语义译,不逐字直译;仓内统一术语:顺延 一律作 forward-only(与该模块既有英文 "moved later, never pulled earlier" 一致),仅查看view-only,写后回读write-readback,排班日/白班/夜班shift-day / day shift / night shift

验证

注释-only 的机械证明(比测试更强的判据):用 TypeScript 编译器对六个文件做 removeComments 转译,改前(HEAD)与改后逐文件比对 —— 六个文件全部 byte-identical,即代码/类型/字符串一个字节没动:

IDENTICAL after comment-strip: GanttView.tsx
IDENTICAL after comment-strip: ObjectGantt.tsx
IDENTICAL after comment-strip: ResourceWorkload.tsx
IDENTICAL after comment-strip: scheduling.ts
IDENTICAL after comment-strip: shifts.ts
IDENTICAL after comment-strip: workload.ts

测试(pnpm --filter @object-ui/plugin-gantt test,先 --filter '@object-ui/plugin-gantt^...' build 备好依赖):

 Test Files  44 passed (44)
      Tests  386 passed (386)
   Duration  84.08s

type-check(turbo run type-check --filter @object-ui/plugin-gantt):Tasks: 14 successful, 14 total

lint:0 errors(259 warnings 全部落在未改动的 index.tsx / vitest.config.ts,与 main 同)。

:check-control-bytes OK(4370 文件);check-changeset-presence / no-major / fixed 均 OK。另按字节纪律对六文件自扫 grep -naP '[\x00-\x08\x0b\x0c\x0e-\x1f]' —— 零命中。

反向验证:如实记录方向

无门可红。仓内没有任何门机械强制诫条 #-1 的英文注释条款(#4884 正文已 grep 证实 eslint.config.jsscripts/ 下都没有对应规则),#4021 也已证同一点。所以「把中文改回去看测试变红」在本单不可能成立 —— 没有任何断言读注释。判据只能是:

  • Han grep 读数:163 → 0(逐文件表如上),外加 CJK 标点补扫 1 → 0;
  • 行为不变:comment-strip 后六文件 byte-identical(充分条件),测试 386 全绿、计数与基线一致。

changeset

.changeset/gantt-source-comments-english.md,空 frontmatter —— 声明「不发布任何东西」,这是该门的显式豁免而非绕行,与 PR #4883 同形。

范围

⛔ 未动测试文件(其中文夹具字面量是被验证的数据,#4021 正文已裁明,归维护者定,不属本单);⛔ 未动行为代码;⛔ 未动运行期字符串(复核确认非测试源码里没有中文运行期字符串);⛔ 未动 content/docs/releases/

「仓内无门强制该条款」的机制化半边不在本单(属门禁强度,归维护者),按派发要求留在卡内记录。


Generated by Claude Code

…4884)

Commandment #-1 covers code comments, not just user-facing text. The sequel to
#4021 / PR #4883, which cleared the same package's `QuickFilterBar.tsx`: the six
remaining non-test source files carried 163 lines of Chinese in JSDoc, trailing
`//` notes and JSX comment blocks. All 163 are now English.

Where a comment named a UI label it now points at the `gantt.*` bundle key that
actually resolves it, rather than quoting a Chinese literal no call site holds:
`gantt.toolbar.saveLayout`, `gantt.toolbar.refresh`, `gantt.menu.removeDependency`,
`gantt.menu.addPredecessor` / `addSuccessor`, `gantt.menu.view`, `gantt.column.start`
/ `end`, `gantt.conflict.confirm` / `cancel`, `gantt.autoScheduleDlg.none`. Same
class of staleness PR #4883 fixed for the quick-filter labels.

Two facts corrected to match the code as it stands:

- The drag-conflict dialog's comment block sat above the auto-schedule dialog
  (`pendingAutoSchedule`); the dialog it describes is ~60 lines further down at
  `pendingConflict`. Moved back over its own JSX.
- `ObjectGantt.tsx`'s `timeSegments` JSDoc example used Chinese band labels. The
  example now uses English labels, matching `ShiftBandConfig.label`'s own doc in
  `shifts.ts`; the doc states explicitly that `label` is caller-localized display
  text, which is what the example is illustrating.

Also removed one CJK bracket pair that `\p{Han}` does not match, so the package's
non-test sources are clean under both a Han scan and a CJK-punctuation scan.

Comment-only: every one of the six files is byte-identical after stripping
comments with the TypeScript compiler, so no code, type, or string changed.

Co-authored-by: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Main entry (gzip) 24.7 KB 350 KB
Entry file index-BPUrZIVt.js
Status PASS

📦 Bundle Size Report

Package Size Gzipped
app-shell (index.js) 9.56KB 3.59KB
app-shell (runtime-config.js) 7.42KB 2.32KB
app-shell (types.js) 0.01KB 0.04KB
app-shell (urlParams.js) 8.92KB 3.41KB
auth (AuthContext.js) 0.31KB 0.24KB
auth (AuthGuard.js) 1.17KB 0.53KB
auth (AuthProvider.js) 25.13KB 5.40KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 18.13KB 5.39KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.64KB 2.21KB
auth (SocialSignInButtons.js) 9.60KB 3.89KB
auth (UserMenu.js) 3.40KB 1.22KB
auth (auth-gate-events.js) 1.29KB 0.66KB
auth (authStyles.js) 5.04KB 1.72KB
auth (createAuthClient.js) 38.46KB 10.17KB
auth (createAuthenticatedFetch.js) 6.34KB 2.43KB
auth (index.js) 2.35KB 1.07KB
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.02KB 0.88KB
auth (useIsWorkspaceAdmin.js) 1.61KB 0.85KB
collaboration (CommentThread.js) 26.07KB 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.65KB 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.36KB 111.03KB
core (index.js) 3.79KB 1.52KB
create-plugin (index.js) 10.08KB 3.26KB
data-objectstack (index.js) 157.05KB 43.28KB
fields (index.js) 231.73KB 57.60KB
i18n (LocalizationContext.js) 1.76KB 0.96KB
i18n (currency.js) 1.22KB 0.64KB
i18n (i18n.js) 4.28KB 1.75KB
i18n (index.js) 3.35KB 1.38KB
i18n (pickLocalized.js) 3.69KB 1.73KB
i18n (provider.js) 23.12KB 7.62KB
i18n (useDisplayLocale.js) 2.84KB 1.45KB
i18n (useObjectLabel.js) 27.59KB 6.63KB
i18n (useSafeTranslation.js) 7.77KB 3.13KB
layout (index.js) 38.86KB 10.83KB
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.74KB
mobile (index.js) 1.50KB 0.62KB
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.71KB 0.42KB
mobile (useResponsiveConfig.js) 1.36KB 0.63KB
mobile (useSpecGesture.js) 4.32KB 1.64KB
mobile (useTouchTarget.js) 1.01KB 0.54KB
permissions (MePermissionsProvider.js) 9.35KB 3.31KB
permissions (PermissionContext.js) 0.31KB 0.25KB
permissions (PermissionGuard.js) 0.89KB 0.45KB
permissions (PermissionProvider.js) 4.42KB 1.42KB
permissions (evaluator.js) 5.12KB 1.74KB
permissions (index.js) 0.91KB 0.41KB
permissions (store.js) 0.91KB 0.42KB
permissions (useFieldPermissions.js) 1.28KB 0.52KB
permissions (usePermissions.js) 1.81KB 0.83KB
plugin-ai (index.js) 15.75KB 3.80KB
plugin-calendar (index.js) 46.62KB 12.83KB
plugin-charts (index.js) 64.75KB 18.37KB
plugin-chatbot (index.js) 181.21KB 43.14KB
plugin-dashboard (index.js) 128.14KB 32.58KB
plugin-designer (index.js) 212.39KB 42.83KB
plugin-detail (index.js) 239.81KB 59.97KB
plugin-editor (index.js) 2.46KB 1.10KB
plugin-form (index.js) 115.34KB 27.74KB
plugin-gantt (index.js) 164.11KB 39.87KB
plugin-grid (index.js) 192.23KB 51.30KB
plugin-kanban (index.js) 52.72KB 14.54KB
plugin-list (index.js) 111.23KB 26.97KB
plugin-map (index.js) 17.91KB 5.72KB
plugin-markdown (index.js) 13.72KB 4.69KB
plugin-report (index.js) 41.70KB 11.19KB
plugin-timeline (index.js) 26.68KB 7.66KB
plugin-tree (index.js) 8.50KB 2.88KB
plugin-view (index.js) 83.81KB 20.49KB
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.44KB 0.22KB
providers (types.js) 0.01KB 0.04KB
react-runtime (index.js) 5.62KB 2.34KB
react (LazyPluginLoader.js) 3.77KB 1.33KB
react (SchemaRenderer.js) 27.53KB 9.41KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 1.28KB 0.68KB
react (schema-input.js) 1.45KB 0.83KB
react (spec-input.js) 0.20KB 0.18KB
sdui-parser (codegen.js) 4.09KB 1.74KB
sdui-parser (index.js) 4.47KB 2.03KB
sdui-parser (parse.js) 10.04KB 2.82KB
sdui-parser (types.js) 0.29KB 0.24KB
sdui-parser (validate.js) 4.69KB 1.48KB
types (ai.js) 0.20KB 0.17KB
types (api-types.js) 0.20KB 0.18KB
types (app.js) 2.87KB 0.99KB
types (base.js) 0.20KB 0.18KB
types (blocks.js) 0.20KB 0.18KB
types (complex.js) 0.20KB 0.18KB
types (crud.js) 0.20KB 0.18KB
types (dashboard-filter-alias.js) 6.23KB 2.74KB
types (data-display.js) 0.20KB 0.18KB
types (data-protocol.js) 0.20KB 0.19KB
types (data.js) 0.20KB 0.18KB
types (designer.js) 1.87KB 0.85KB
types (disclosure.js) 0.20KB 0.18KB
types (error-code.js) 1.54KB 0.88KB
types (feedback.js) 0.20KB 0.18KB
types (field-types.js) 0.20KB 0.18KB
types (form.js) 0.20KB 0.18KB
types (http-retry.js) 4.32KB 2.02KB
types (index.js) 3.05KB 1.52KB
types (layout.js) 0.20KB 0.18KB
types (managed-by.js) 0.19KB 0.18KB
types (mobile.js) 2.59KB 1.31KB
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 (spec-report.js) 5.05KB 1.93KB
types (system-fields.js) 3.33KB 1.54KB
types (theme.js) 0.20KB 0.18KB
types (ui-action.js) 3.40KB 1.71KB
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

Follow-up polish on the same comment-only change, no new translation:

- `rescheduleOnConflict` JSDoc lost its sentence-ending period when the
  Chinese parenthetical was dropped, running two sentences together.
- Three comment blocks (the resize grab-zone note, `borderColorField`,
  `summaryExtent`, and the hidden-native-scrollbar CSS note) had ragged
  wraps left over from substituting longer English text; reflowed.

Still byte-identical after comment stripping on all six files.

Co-authored-by: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Main entry (gzip) 24.7 KB 350 KB
Entry file index-BC74xOxl.js
Status PASS

📦 Bundle Size Report

Package Size Gzipped
app-shell (index.js) 9.56KB 3.59KB
app-shell (runtime-config.js) 7.42KB 2.32KB
app-shell (types.js) 0.01KB 0.04KB
app-shell (urlParams.js) 8.92KB 3.41KB
auth (AuthContext.js) 0.31KB 0.24KB
auth (AuthGuard.js) 1.17KB 0.53KB
auth (AuthProvider.js) 25.13KB 5.40KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 18.13KB 5.39KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.64KB 2.21KB
auth (SocialSignInButtons.js) 9.60KB 3.89KB
auth (UserMenu.js) 3.40KB 1.22KB
auth (auth-gate-events.js) 1.29KB 0.66KB
auth (authStyles.js) 5.04KB 1.72KB
auth (createAuthClient.js) 38.46KB 10.17KB
auth (createAuthenticatedFetch.js) 6.34KB 2.43KB
auth (index.js) 2.35KB 1.07KB
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.02KB 0.88KB
auth (useIsWorkspaceAdmin.js) 1.61KB 0.85KB
collaboration (CommentThread.js) 26.07KB 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.65KB 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.36KB 111.03KB
core (index.js) 3.79KB 1.52KB
create-plugin (index.js) 10.08KB 3.26KB
data-objectstack (index.js) 157.05KB 43.28KB
fields (index.js) 231.73KB 57.60KB
i18n (LocalizationContext.js) 1.76KB 0.96KB
i18n (currency.js) 1.22KB 0.64KB
i18n (i18n.js) 4.28KB 1.75KB
i18n (index.js) 3.35KB 1.38KB
i18n (pickLocalized.js) 3.69KB 1.73KB
i18n (provider.js) 23.12KB 7.62KB
i18n (useDisplayLocale.js) 2.84KB 1.45KB
i18n (useObjectLabel.js) 27.59KB 6.63KB
i18n (useSafeTranslation.js) 7.77KB 3.13KB
layout (index.js) 38.86KB 10.83KB
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.74KB
mobile (index.js) 1.50KB 0.62KB
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.71KB 0.42KB
mobile (useResponsiveConfig.js) 1.36KB 0.63KB
mobile (useSpecGesture.js) 4.32KB 1.64KB
mobile (useTouchTarget.js) 1.01KB 0.54KB
permissions (MePermissionsProvider.js) 9.35KB 3.31KB
permissions (PermissionContext.js) 0.31KB 0.25KB
permissions (PermissionGuard.js) 0.89KB 0.45KB
permissions (PermissionProvider.js) 4.42KB 1.42KB
permissions (evaluator.js) 5.12KB 1.74KB
permissions (index.js) 0.91KB 0.41KB
permissions (store.js) 0.91KB 0.42KB
permissions (useFieldPermissions.js) 1.28KB 0.52KB
permissions (usePermissions.js) 1.81KB 0.83KB
plugin-ai (index.js) 15.75KB 3.80KB
plugin-calendar (index.js) 46.62KB 12.83KB
plugin-charts (index.js) 64.75KB 18.37KB
plugin-chatbot (index.js) 181.21KB 43.14KB
plugin-dashboard (index.js) 128.14KB 32.58KB
plugin-designer (index.js) 212.39KB 42.83KB
plugin-detail (index.js) 239.81KB 59.97KB
plugin-editor (index.js) 2.46KB 1.10KB
plugin-form (index.js) 115.34KB 27.74KB
plugin-gantt (index.js) 164.10KB 39.87KB
plugin-grid (index.js) 192.23KB 51.30KB
plugin-kanban (index.js) 52.72KB 14.54KB
plugin-list (index.js) 111.23KB 26.97KB
plugin-map (index.js) 17.91KB 5.72KB
plugin-markdown (index.js) 13.72KB 4.69KB
plugin-report (index.js) 41.70KB 11.19KB
plugin-timeline (index.js) 26.68KB 7.66KB
plugin-tree (index.js) 8.50KB 2.88KB
plugin-view (index.js) 83.81KB 20.49KB
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.44KB 0.22KB
providers (types.js) 0.01KB 0.04KB
react-runtime (index.js) 5.62KB 2.34KB
react (LazyPluginLoader.js) 3.77KB 1.33KB
react (SchemaRenderer.js) 27.53KB 9.41KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 1.28KB 0.68KB
react (schema-input.js) 1.45KB 0.83KB
react (spec-input.js) 0.20KB 0.18KB
sdui-parser (codegen.js) 4.09KB 1.74KB
sdui-parser (index.js) 4.47KB 2.03KB
sdui-parser (parse.js) 10.04KB 2.82KB
sdui-parser (types.js) 0.29KB 0.24KB
sdui-parser (validate.js) 4.69KB 1.48KB
types (ai.js) 0.20KB 0.17KB
types (api-types.js) 0.20KB 0.18KB
types (app.js) 2.87KB 0.99KB
types (base.js) 0.20KB 0.18KB
types (blocks.js) 0.20KB 0.18KB
types (complex.js) 0.20KB 0.18KB
types (crud.js) 0.20KB 0.18KB
types (dashboard-filter-alias.js) 6.23KB 2.74KB
types (data-display.js) 0.20KB 0.18KB
types (data-protocol.js) 0.20KB 0.19KB
types (data.js) 0.20KB 0.18KB
types (designer.js) 1.87KB 0.85KB
types (disclosure.js) 0.20KB 0.18KB
types (error-code.js) 1.54KB 0.88KB
types (feedback.js) 0.20KB 0.18KB
types (field-types.js) 0.20KB 0.18KB
types (form.js) 0.20KB 0.18KB
types (http-retry.js) 4.32KB 2.02KB
types (index.js) 3.05KB 1.52KB
types (layout.js) 0.20KB 0.18KB
types (managed-by.js) 0.19KB 0.18KB
types (mobile.js) 2.59KB 1.31KB
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 (spec-report.js) 5.05KB 1.93KB
types (system-fields.js) 3.33KB 1.54KB
types (theme.js) 0.20KB 0.18KB
types (ui-action.js) 3.40KB 1.71KB
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
Collaborator Author

【PM 验收 · ACCEPT】objectui 分片 PM(session_01GTRjn8xBqp75dk7kFupVRt)对 #4884(gantt 六文件 163 行注释英文化,#4021 同形续集)的实施验收:

实物核验:7 文件(六源码 + changeset),PM 抽查 shifts.ts 非注释行 0、六文件 Han grep 归零(与 dev 逐文件 163→0 对账一致)。模型标识 0、releases 0。行为不变的机械证明:六文件 removeComments:true 转译前后字节相同 —— 比测试计数更强的充分条件;386/386 行为测试两侧一致。加分项:①注释引用的中文 UI 字面量按 PR4883 同款改为指向真实 gantt.* 词条键(11 处 stale 改写清单在案);②白班/夜班示例取舍三条论证(shape 非 locale、跨文件一致性、先例)成立且补了「label 是已本地化文本」防误读句;③发现 \p{Han} 对 CJK 标点的盲区(「」U+300C 类)—— inline 修正 + 追评 #4884 而非开孪生单,并点出未来建门时的判据缺口,填单纪律正确;④唯一非文本编辑(冲突注释块移回其所述 JSX 上方 ~60 行)已声明。CI 亲读经 dev 终报确认:19 项全 completed(17 success + 2 skipped),零失败。

处置:undraft + auto-merge(SQUASH)。


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[finding] plugin-gantt 其余六个源码文件共 163 行中文注释(诫条 #-1),仓内无任何门机械强制该条款

2 participants