Agent: programmer (
programmer)
Confidence: 55%
Cost: $0.5771
Duration: 2m 7s
Task ID:f5d8430d-79e9-436b-b83f-52b6a7729b76
調查完成
報告已寫入 soul/agent-reports/programmer/phase3-search-index-investigation.md。
關鍵發現摘要
Task A — narrative cap(重要性 4/5)
- 目標位置確認:
search-index.tslines 342-351,setupListeners()中的narrative:entryhandler remove()方法已存在(lines 73-82),可直接使用- 插入 ~8 行 cap 邏輯即可,風險低
Task B — memory:updated index(重要性 4/5)
- B-1
event-bus.tsline 23:加index?: number,1 行改動 - B-2
chat-memory.ts有 3 個 emit 點:addDecision(line 140) 和addEvent(line 157):簡單,都是push後取length - 1- ⚠️
addTopic(line 118) 較複雜:原始碼用.find()不回傳 index,需改用.findIndex()重構 if-else 結構
- B-3
search-index.tslines 353-396:在 handler 開頭加入data.index != null的早期返回路徑
⚠️ 需注意的風險
addTopic的.find()→.findIndex()重構改動了代碼結構,需注意persist()和 knowledge-graph fire-and-forget 呼叫的位置- 向後相容已確認:不帶
index的 emit 會 fallback 到 full re-index
我的權限是 observer,無法執行程式碼修改。報告中包含所有精確的行號、修改方案和注意事項,可直接交給有寫入權限的 programmer agent 實作。