Commit 4b6c69fe3da1d82126897b3834cf8af60bf00098

Authored by yibo
1 parent 8c54cffa

docs(32): 补「解决了什么/没解决什么」对照表

用户追问「这个方案能解决什么问题」,发现文档原来把这个信息拆在§三要点和§四
风险里,没有对照着讲清楚。补一张表:撞车丢请求/卡死不可见两条真解决了,
agent-creator 真的坏了/主动通知人/另外两处同构缺口/hire 接口异步体验这几条
明确没解决——避免看完方案高估它的覆盖范围。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
docs/todo/system-design/32-hire-body-fill-reliability.md
... ... @@ -134,6 +134,21 @@ if (existing?.protocol?.isConnected) {
134 134 4. **不做**:不做「保证自动跑到底」——这跟 30 号文档 §三的结论一致,全系统没有一处做这个
135 135 保证,这里也不该单独破例发明一套。目标只是把"静默卡死"变成"卡死了但看得见"。
136 136  
  137 +### 3.1 解决了什么 / 没解决什么(对照表,别读完方案又高估了它)
  138 +
  139 +| | 解决了 | 没解决 |
  140 +|---|---|---|
  141 +| **撞车丢请求** | ✅ 加了重试,绝大多数"招聘间隔太近撞车"场景自愈,不需要人工 | —— |
  142 +| **卡死后没人知道** | ✅ 从一行 console.error 变成可查询的持久标记 | ❌ 只是**可查询**,不是**主动通知**——没人去查还是发现不了;30 号文档 §三点名的"主动喊人"那一层没做 |
  143 +| **agent-creator 真的坏了(不是撞车、持续报错)** | —— | ❌ 重试耗尽照样停在"失败等人工",跟 DevLoop `retry_budget` 耗尽、Graph `blocked` 是同一套哲学,不追求自动恢复到底 |
  144 +| **新引入的并发复用会话风险** | ✅ 互斥锁从设计上直接避免触发这个场景 | ⚠️ `SessionPool` 并发复用同一会话本身的真实后果仍未实测验证(§四.1)——只是这次修复不会踩到它,不代表这个坑对别处调用方也不存在 |
  145 +| **另外两处同构缺口(DevLoop / Graph)** | —— | ❌ 完全不碰,本文档只动招聘装配这一处 |
  146 +| **hire 接口的调用体验** | —— | ❌ 接口仍是异步的,前端拿到的还是立即返回的 `training` 状态;装配完成/失败要另外查,跟今天一样,只是"失败"这个状态现在是真的会被写出来的 |
  147 +
  148 +**一句话版本**:这个方案把"静默卡死、永远没人知道"变成"卡死了会重试,重试也不行就留下一个
  149 +能查到的信号"——它治的是**可靠性的地板**(从"完全没有保证"提到"有重试 + 失败可见"),
  150 +不是把整条链路变成"保证成功",也不负责把这个信号推给人看。
  151 +
137 152 ---
138 153  
139 154 ## 四、风险 / 未决问题
... ...