Skip to content

docs(spec): connector.zod.ts 模块 JSDoc 停止宣传已退役的出站限流与映射转换 - #6473

Merged
qq9340100 merged 2 commits into
mainfrom
claude/issue-6383-connector-jsdoc-retirement-drift
Aug 8, 2026
Merged

docs(spec): connector.zod.ts 模块 JSDoc 停止宣传已退役的出站限流与映射转换#6473
qq9340100 merged 2 commits into
mainfrom
claude/issue-6383-connector-jsdoc-retirement-drift

Conversation

@qq9340100

Copy link
Copy Markdown
Collaborator

Fixes #6383

问题

packages/spec/src/integration/connector.zod.ts模块级 JSDoc 有四处措辞比它所描述的 schema 晚了两次退役。这段 JSDoc 被 pnpm --filter @objectstack/spec gen:docs 逐字生成进 content/docs/references/integration/connector.mdx,于是同一页自相矛盾:属性表(旧 L139/L454,现 L171/L486)的墓碑行说 rateLimitConfig 已移除且从未存在,上方散文却承诺 comprehensive rate limiting。读者相信哪一个,取决于他先读到哪一段。

伤害有两级:作者照着散文去写 rateLimitConfig,拿到 strictObject 的退役报错(响亮、可诊断);更糟的是他因此相信「平台替我节流出站调用」成立——而平台唯一的令牌桶 packages/runtime/src/security/rate-limit.ts入站的,没有任何东西节流连接器发出的调用。#4911 的墓碑专门点名这是连接器最像安全承诺的一面。

变更(四处,一次改动 + 一次 gen:docs)

# 原措辞 退役依据
1 Includes authentication, webhooks, rate limiting, field mapping, … #4911
2 … webhooks, and comprehensive rate limiting. #4911
3 - Bidirectional sync with field mapping and transformations #5552
4 - Webhook management and rate limiting required #4911

三处正面承诺删除、第四处收窄之外,JSDoc 新增一节 「What this layer does NOT provide」,把两条否定连同处方写明,而不是只做减法——否则下一位作者只会再问一遍「那出站限流在哪」:

  • 出站限流:平台唯一令牌桶是入站的;⛔ 不要拿 sharedRateLimitConfig 顶替(方向相反);在 connector provider 或上游网关做;L3 为「上游限了流」真正声明的是 retryConfig(retryableStatusCodes 默认 [408, 429, 500, 502, 503, 504]429)与 health.circuitBreaker
  • 字段映射不转换取值:ConnectorFieldMappingSchema 只扩了 dataType / required / syncMode 三个键;取值转换请用会真正执行它的面(import mapping 的 mapping.fieldMapping[].transform,或 L2 的 ETL 转换步骤);已写了退役键的用 os migrate meta --from 16

措辞直接复用 #4911 / #5552 墓碑与 packages/spec/docs/SYNC_ARCHITECTURE.md(#5554)的现成句,不另造一套——一次退役出现两种说法,就是它们日后互相矛盾的起点。改完后同一页的散文与两处墓碑行说的是同一件事。

有一处刻意改写:JSDoc 里指向完整理由的锚点没写成「本文件下方那一段」。那段是 // 行注释、不进 gen:docs,对 .mdx 读者是悬空指路——正是本单要修的那类漂移。改为点名文件:integration/connector.zod.tsREMOVED: outbound rate limiting 块 + SYNC_ARCHITECTURE.md,两侧读者都走得通。

交付物与 changeset 取舍

content/docs/references/integration/connector.mdxgen:docs 随动重生成(⛔ 未手改一个字节;check:docs 已绿)。

本单带 changeset(patch)而非 skip-changeset:改动虽只落在注释,但它有读者可见的产物——发布的参考文档页从「宣传一个不存在的能力」变成「写明它不存在并给出处方」,是使用者会读到的契约面澄清。skip-changeset 的适用面是 test-only / workflow-only / .claude/-only 这类什么都不发布的 PR,本单不属于。schema 形状、类型与运行时行为零变化

验证(全部前台执行,持容器级 flock 锁,--filter 限定范围)

pnpm --filter @objectstack/spec test        → Test Files 339 passed (339) / Tests 8699 passed (8699)
pnpm --filter @objectstack/spec typecheck   → tsc --noEmit + check:scripts-typecheck + check:test-typecheck 全绿
pnpm --filter @objectstack/spec check:docs  → 231 generated files in sync with packages/spec
pnpm --filter @objectstack/spec check:generated → All 10 generated artifacts are up to date
node scripts/check-nul-bytes.mjs            → OK (6094 tracked text files, no raw ASCII control bytes)

check:generated 首跑曾报 api-surface/ 陈旧——那是新 worktree 未 build 的假红(该产物按其自身说明「Reads the BUILT dist/*.d.ts」,而 gen:api-surface 直接以 Could not resolve module symbol … Is the package built? 失败)。pnpm --filter @objectstack/spec build 后复跑 10 项全绿,且 api-surface/ 一个字节未变——它只存 name (kind),不含任何文档文本,JSDoc 改动在结构上不可能影响它。

基线纪律(分诊条件 3)

本分支基点 eb7613c79 就是 #6466 的合并提交本身,开工即已跟上;gen:docs 在该树上整体重跑,git status 只吐出 connector.mdx 一个文件,证明无 #6224 式陈旧组合。飞行中 main 又前进到 82bf47b0b(#6471),增量仅动 scripts/,不触 content/docs/references/**packages/spec/src,已 git merge origin/main(⛔ 未 rebase)并复跑 check:docs 确认仍绿,无需再次重生成。


Generated by Claude Code

claude added 2 commits August 8, 2026 01:06
模块级 JSDoc 有四处措辞比它描述的 schema 晚了两次退役,而这段 JSDoc
被 gen:docs 逐字生成进 content/docs/references/integration/connector.mdx
——同一页 L171/L486 的属性表已写着「已移除」,散文却还承诺
「comprehensive rate limiting」。

收敛四处:SCOPE 行的 rate limiting、「comprehensive rate limiting」、
「Bidirectional sync with field mapping and transformations」(#5552)、
「Webhook management and rate limiting required」。

新增 "What this layer does NOT provide" 一节,措辞复用 #4911 / #5552
墓碑与 SYNC_ARCHITECTURE.md(#5554)现成句,一次退役只保留一种说法。

参考文档由 gen:docs 随动重生成(未手改)。仅注释与生成文档变化,
schema 形状与运行时行为不变。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011M7UwH25Unfi73UHim7ajY
…rift

main 侧增量(#6471)仅动 scripts/,不触 content/docs/references/** 与
packages/spec/src,故无 #6224 陈旧组合风险,无需重生成。
@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Aug 8, 2026 1:08am

Request Review

@github-actions github-actions Bot added the size/m label Aug 8, 2026
@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/spec.

112 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/ai/agents.mdx (via @objectstack/spec)
  • content/docs/ai/skills-reference.mdx (via @objectstack/spec)
  • content/docs/ai/skills.mdx (via @objectstack/spec)
  • content/docs/api/client-sdk.mdx (via @objectstack/spec)
  • content/docs/api/environment-routing.mdx (via @objectstack/spec)
  • content/docs/api/error-catalog.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-client.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-server.mdx (via @objectstack/spec)
  • content/docs/api/index.mdx (via @objectstack/spec)
  • content/docs/automation/approvals.mdx (via @objectstack/spec)
  • content/docs/automation/connectors.mdx (via @objectstack/spec)
  • content/docs/automation/flows.mdx (via @objectstack/spec)
  • content/docs/automation/hook-bodies.mdx (via packages/spec)
  • content/docs/automation/hooks.mdx (via @objectstack/spec)
  • content/docs/automation/index.mdx (via @objectstack/spec)
  • content/docs/automation/webhooks.mdx (via @objectstack/spec)
  • content/docs/automation/workflows.mdx (via @objectstack/spec)
  • content/docs/concepts/architecture.mdx (via @objectstack/spec)
  • content/docs/concepts/design-principles.mdx (via packages/spec)
  • content/docs/concepts/index.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-driven.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-lifecycle.mdx (via packages/spec)
  • content/docs/concepts/north-star.mdx (via @objectstack/spec)
  • content/docs/data-modeling/analytics.mdx (via @objectstack/spec)
  • content/docs/data-modeling/drivers.mdx (via @objectstack/spec)
  • content/docs/data-modeling/external-datasources.mdx (via @objectstack/spec)
  • content/docs/data-modeling/field-types.mdx (via @objectstack/spec)
  • content/docs/data-modeling/fields.mdx (via @objectstack/spec)
  • content/docs/data-modeling/formulas.mdx (via @objectstack/spec)
  • content/docs/data-modeling/index.mdx (via @objectstack/spec)
  • content/docs/data-modeling/objects.mdx (via @objectstack/spec)
  • content/docs/data-modeling/queries.mdx (via @objectstack/spec)
  • content/docs/data-modeling/schema-design.mdx (via @objectstack/spec)
  • content/docs/data-modeling/seed-data.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation-rules.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation.mdx (via @objectstack/spec)
  • content/docs/deployment/cli.mdx (via @objectstack/spec)
  • content/docs/deployment/tenancy-modes.mdx (via @objectstack/spec)
  • content/docs/deployment/troubleshooting.mdx (via @objectstack/spec)
  • content/docs/deployment/validating-metadata.mdx (via @objectstack/spec)
  • content/docs/getting-started/build-with-claude-code.mdx (via @objectstack/spec)
  • content/docs/getting-started/common-patterns.mdx (via @objectstack/spec)
  • content/docs/getting-started/examples.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-reference.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-start.mdx (via @objectstack/spec)
  • content/docs/getting-started/your-first-project.mdx (via @objectstack/spec)
  • content/docs/kernel/cluster.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/auth-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/cache-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/data-engine.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/index.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/metadata-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/storage-service.mdx (via @objectstack/spec)
  • content/docs/kernel/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/data-service.mdx (via @objectstack/spec)
  • content/docs/kernel/runtime-services/email-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/examples.mdx (via @objectstack/spec)
  • content/docs/kernel/runtime-services/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/queue-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sharing-service.mdx (via @objectstack/spec)
  • content/docs/kernel/runtime-services/sms-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/storage-service.mdx (via @objectstack/spec)
  • content/docs/kernel/services-checklist.mdx (via @objectstack/spec)
  • content/docs/kernel/services.mdx (via @objectstack/spec)
  • content/docs/permissions/authorization.mdx (via @objectstack/spec)
  • content/docs/permissions/permission-sets.mdx (via @objectstack/spec)
  • content/docs/permissions/permissions-matrix.mdx (via @objectstack/spec)
  • content/docs/permissions/positions.mdx (via @objectstack/spec)
  • content/docs/permissions/rls.mdx (via @objectstack/spec)
  • content/docs/permissions/sharing-rules.mdx (via @objectstack/spec)
  • content/docs/plugins/adding-a-metadata-type.mdx (via @objectstack/spec)
  • content/docs/plugins/development.mdx (via @objectstack/spec)
  • content/docs/plugins/index.mdx (via @objectstack/spec)
  • content/docs/plugins/packages.mdx (via @objectstack/spec)
  • content/docs/protocol/backward-compatibility.mdx (via @objectstack/spec)
  • content/docs/protocol/diagram.mdx (via packages/spec)
  • content/docs/protocol/kernel/config-resolution.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/http-protocol.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/i18n-standard.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/index.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/lifecycle.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/plugin-spec.mdx (via @objectstack/spec)
  • content/docs/protocol/knowledge.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/query-syntax.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/schema.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/security.mdx (via packages/spec)
  • content/docs/protocol/objectql/state-machine.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/actions.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/concept.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/layout-dsl.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/record-alert.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/widget-contract.mdx (via @objectstack/spec)
  • content/docs/releases/implementation-status.mdx (via @objectstack/spec)
  • content/docs/releases/index.mdx (via @objectstack/spec)
  • content/docs/releases/v12.mdx (via @objectstack/spec)
  • content/docs/releases/v13.mdx (via @objectstack/spec)
  • content/docs/releases/v16.mdx (via @objectstack/spec)
  • content/docs/releases/v17.mdx (via @objectstack/spec)
  • content/docs/releases/v9.mdx (via @objectstack/spec)
  • content/docs/ui/actions.mdx (via @objectstack/spec)
  • content/docs/ui/apps.mdx (via @objectstack/spec)
  • content/docs/ui/create-vs-edit-form.mdx (via @objectstack/spec)
  • content/docs/ui/dashboards.mdx (via @objectstack/spec)
  • content/docs/ui/field-grouping-and-order.mdx (via @objectstack/spec)
  • content/docs/ui/forms.mdx (via @objectstack/spec)
  • content/docs/ui/index.mdx (via @objectstack/spec)
  • content/docs/ui/public-data-collection.mdx (via @objectstack/spec)
  • content/docs/ui/setup-app.mdx (via @objectstack/spec)
  • content/docs/ui/translations.mdx (via @objectstack/spec)
  • content/docs/ui/views.mdx (via @objectstack/spec)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

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

Labels

documentation Improvements or additions to documentation size/m tooling

Projects

None yet

2 participants