Commit 02a8256
`degradeConnectorInstance`(#3017 的降级/重试路径)有两条记录报告的是外来失败,
却把它插进了日志 message —— 与 #5048(flow 绑定)、#5575(`fail()`)同一类,是那
两单范围之外的第三个接缝:
• husk 注册失败(`warn`):`err` 来自 `registerDegradedConnector` →
`ConnectorSchema.parse`,catch 注释自己写着「the entry's def no longer
parses」,即预期接到的正是多行 `ZodError.message`(第一行只有一个 `[`)。
• 降级公告(`error`):文本是 `ConnectorUpstreamUnavailableError.message`,由
第三方 provider factory 构造(ADR-0097 鼓励第三方去写),spec 不约束其文本。
这条 `warn` 的下游与 #5575 的 `error` 不同,且是实测的:`warn` 走 stdout,`serve`
的启动静默窗口只包了 `process.stdout.write`,而冷启动的
`materializeDeclaredConnectors(ctx, { fatal: true })` 遇到上游不可达是降级不抛错,
所以它在窗口内就跑。`BootLogCapture.offer()` 只保留能被 `classifyBootLogLine` 找到
等级头的物理行 —— 对一份 13 行的插值 dump 实测:保留 1 行(止于 `[` 的头行)、丢弃
12 行,唯一留下的那行不含任何事实。即 cloud#971 的原始形态。
两条都复用同包 `describeThrownForLog`:message 单行自足,cause 走结构化 meta。位置
按 `Logger` 契约核实后区分 —— `warn(message, meta?)` 用第二参,
`error(message, error?, meta?)` 用第三参。
`degradedReason`(`GET /connectors` 与 `connector_action` 被拒时的文本)刻意逐字不变:
它是人透过 JSON 读的字段。因此调用点同时传 `reason`(那段文本)与 `cause`(抛出值),
测试双向钉住这个分离。
Claude-Session: https://claude.ai/code/session_01BWS4heBoAitLmzCLhcYdbK
Co-authored-by: Claude <noreply@anthropic.com>
1 parent aa25a81 commit 02a8256
3 files changed
Lines changed: 512 additions & 2 deletions
File tree
- .changeset
- packages/services/service-automation/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
0 commit comments