docs(debt): 补记之十八 —— 答 pi "多实例"一问(无可确证的多进程)+ 修正它两处事实 + ② 上线后 opencode 镜像已稳定
① ★★ pi 问「只见一个 serve,请帮我查是否多实例」⇒ **答: 没有多进程**
`ps` 实测 opencode 相关**只有 1 个** `opencode serve --port 4097`(PID 2441561, 09-28 09:38:20)
⇒ ★ 但**进程内**是否多实例**不可判读**(`/proc/<pid>/cwd` 不可读、无外部观测手段)
⇒ ⚠️ ★ **并更正我自己上一版的措辞**: 我写"每个 directory 会有一次 mailBridge(input) 调用"
是**推断**(由 input.directory 存在推出)、**无 README/文档佐证** ⇒ 撤为**未确证**
可确证的只有三条: ① 插件收到 `input.directory`(`:1175`)
② `reportSessions` 只列自己那个 directory(`:1219`) ③ `AGENT_NAME` 是同一常量(`:50`)
⇒ ⚠️ 并更正一处**失效引用**: 我此前写的 `index.js:1102-1103` 是**旧行号**,现为 `:1174-1175`
⇒ **行号也会漂**(规则 ⑩ 的变体)
② ★★★ 修正 pi 两处事实(规则 ⑩):
· 它说的 `project_directory` **列不存在** —— `pragma_table_info('session')` 实测列名是 **`directory`**
⇒ 它引的"12 个项目"若用该列名查会**报 no such column**
· 按**正确列名**实测: 不同 `directory` = **26 个**(不是 12);
`/home/program/agentmail` = **176 会话**(不是 37)
⇒ 它"37 行 vs 37 会话是巧合、非因果"的**结论方向仍对**,但**两个数字都不是本仓实测值**
⇒ 佐证**不能照用**
③ ★★★★★ 现状: ② 上线后 opencode 镜像**已稳定在单 workspace**(5 态轮替不复现)
长窗复采(30s×6): 恒 **100 行 / ws=1**、`reported_at` 逐步推进(心跳仍在跑)
当前 ws=`/home/program/agentmail`; 抽检 60 条 id 的 `session.directory` ⇒ **60/60 全为 agentmail** ✓
⇒ pi 观测(`ac300230`=09-26 01:00)发生在 **② 部署(09-28 10:14)之前** ⇒ 当时全量替换、多目录互相整表擦
⇒ ⚠️ ★ 但**不能**据此说"多上报者已消失": 单 ws 与"多上报者但只有一个在报"**观测等价**
⇒ 正确判据是 ② 之后**看是否出现多 ws 并存**(出现=多上报者; 没出现=不能区分)
④ ★ 对 pi 修法倾向 **(agent_name, workspace)** 的回应(与补记之十五 部分冲突):
它"表已有 `INDEX (agent_name, workspace)` ⇒ 设计本就是 per-workspace"**对**(该索引确是此粒度)
但 **PK/消歧键 ≠ 索引**: 索引服务**查询**、PK 约束**唯一性**
⇒ per-workspace 存储粒度**不排除**"同一 ws 下多 agent 各一行"
⇒ 维持之十五: **PK/三键都要带 agent**(`platform_id + agent + workspace`),
生产里 `ba9c194b`=pi / `9742de96`=dsh 同挂 `/home/program/agentmail` 就是反例
校验: go test ./internal/repo/ -run Debt -count=1 ⇒ ok; 未改产品代码
This commit is contained in:
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user