⏱️ 本卡所有读数取自同一动作:2026-09-18T09:32Z,树为 origin/main = 873e0e8e27。由 domain:spec seat 2(座位贴 #18549,session_01JbZnqu8bt6YqfJsr9vaFb3)立。⛔ 未定级、未指派。
⭐ 这是本席自己栅栏划错粒度漏掉的一处。 #18794 / PR #18979 收掉了 SYNC_ARCHITECTURE.md 的五处;本席在那轮的派发令里写「⛔ packages/spec/src/integration/** 的任何声明 —— 本轮不退休、不实现、不改 schema」,本意是护住声明,⛔ 但按路径划,于是同一道栅栏把下面这段散文也护住了。dev 量到并交了上来,⛔ 没有越栅栏 —— 处置正确。
那句话,逐字
⏱️ 2026-09-18T09:32Z 直读 packages/spec/src/integration/connector.zod.ts:44-47:
* What L3 does declare for a rate-limited upstream is
* `retryConfig` — whose `retryableStatusCodes` default `[408, 429, 500, 502, 503,
* 504]` includes `429` — and `health.circuitBreaker`.
⇒ ⭐ 与 PR #18979 刚在 SYNC_ARCHITECTURE.md 改掉的那句同一句,而这一处是源头。
它还有一个生成的下游
content/docs/references/integration/connector.mdx:42 是这段 TSDoc 由 packages/spec/scripts/build-docs.ts 生成出来的。⇒ ⛔ 不手改生成物 —— 改上面那段 TSDoc 再 gen:docs,两处一起好。
为什么它今天是假的
⏱️ 2026-09-18T09:32Z 直读 packages/spec/liveness/connector.json:
retryConfig 的 8 个子键 全部 dead verifiedAt 2026-09-17
health.circuitBreaker.enabled dead verifiedAt 2026-09-17
health.circuitBreaker.failureThreshold dead verifiedAt 2026-09-17
⭐ providerConfig live ← 同一份账本里的必响对照
⇒ 一个作者读到这句 TSDoc,会去写一份被静默忽略的配置。
修法(与 #18794 同形:只改散文,⛔ 不预判裁定)
把那段 TSDoc 改成「已声明但当前无实现」并指向 packages/spec/liveness/connector.json,然后 pnpm --filter @objectstack/spec gen:docs 让下游跟上。
⛔ 不退休、不实现、不改 schema —— 那是 #18975 要裁的,本卡不预判。⭐ 止血与裁定分开,理由与 #18794 完全一样:裁定可能要等,而作者今天就在被误导。
⛔ 本席未做的
查重词
connector.zod.ts retryConfig TSDoc declared unimplemented · build-docs regenerated connector.mdx retryConfig · rate-limited upstream retryConfig false teaching source · health.circuitBreaker dead ledger
相关:#18794 / PR #18979(同一句话在 SYNC_ARCHITECTURE.md 的五处,已收)· #18975(ADR-0049 的裁定,⛔ 本卡不预判)· packages/spec/liveness/connector.json(测量的记录)
Generated by Claude Code
⏱️ 本卡所有读数取自同一动作:2026-09-18T09:32Z,树为
origin/main=873e0e8e27。由domain:specseat 2(座位贴 #18549,session_01JbZnqu8bt6YqfJsr9vaFb3)立。⛔ 未定级、未指派。⭐ 这是本席自己栅栏划错粒度漏掉的一处。 #18794 / PR #18979 收掉了
SYNC_ARCHITECTURE.md的五处;本席在那轮的派发令里写「⛔packages/spec/src/integration/**的任何声明 —— 本轮不退休、不实现、不改 schema」,本意是护住声明,⛔ 但按路径划,于是同一道栅栏把下面这段散文也护住了。dev 量到并交了上来,⛔ 没有越栅栏 —— 处置正确。那句话,逐字
⏱️ 2026-09-18T09:32Z 直读
packages/spec/src/integration/connector.zod.ts:44-47:⇒ ⭐ 与 PR #18979 刚在
SYNC_ARCHITECTURE.md改掉的那句同一句,而这一处是源头。它还有一个生成的下游
content/docs/references/integration/connector.mdx:42是这段 TSDoc 由packages/spec/scripts/build-docs.ts生成出来的。⇒ ⛔ 不手改生成物 —— 改上面那段 TSDoc 再gen:docs,两处一起好。为什么它今天是假的
⏱️ 2026-09-18T09:32Z 直读
packages/spec/liveness/connector.json:⇒ 一个作者读到这句 TSDoc,会去写一份被静默忽略的配置。
修法(与 #18794 同形:只改散文,⛔ 不预判裁定)
把那段 TSDoc 改成「已声明但当前无实现」并指向
packages/spec/liveness/connector.json,然后pnpm --filter @objectstack/spec gen:docs让下游跟上。⛔ 不退休、不实现、不改 schema —— 那是 #18975 要裁的,本卡不预判。⭐ 止血与裁定分开,理由与 #18794 完全一样:裁定可能要等,而作者今天就在被误导。
⛔ 本席未做的
packages/spec/src/integration/**里还有多少处同句或同形散文。本卡主张的是这一处(加它那个生成的下游),⛔ 不是一个总体。⭐ 接手者第一件事应当用免折行判据扫一遍同一目录 —— 本班已三次栽在按行探针上。note(verifiedAt 2026-09-17)与 [finding]SYNC_ARCHITECTURE.md与flows.mdx把retryConfig教成上游限流的解法并列出它的默认值,而实测零消费者、ConnectorProviderContext根本不携带它 —— 照文档做的作者拿到的是被静默忽略的配置(同一文件的rateLimitConfig半边已由 #5554 收过) #18794 那轮 dev 的实测,⛔ 不是本席本轮重跑的。查重词
connector.zod.ts retryConfig TSDoc declared unimplemented·build-docs regenerated connector.mdx retryConfig·rate-limited upstream retryConfig false teaching source·health.circuitBreaker dead ledger相关:#18794 / PR #18979(同一句话在
SYNC_ARCHITECTURE.md的五处,已收)· #18975(ADR-0049 的裁定,⛔ 本卡不预判)·packages/spec/liveness/connector.json(测量的记录)Generated by Claude Code