調查完成

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.ts lines 342-351,setupListeners() 中的 narrative:entry handler
  • remove() 方法已存在(lines 73-82),可直接使用
  • 插入 ~8 行 cap 邏輯即可,風險低

Task B — memory:updated index(重要性 4/5)

  • B-1 event-bus.ts line 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.ts lines 353-396:在 handler 開頭加入 data.index != null 的早期返回路徑

⚠️ 需注意的風險

  1. addTopic.find().findIndex() 重構改動了代碼結構,需注意 persist() 和 knowledge-graph fire-and-forget 呼叫的位置
  2. 向後相容已確認:不帶 index 的 emit 會 fallback 到 full re-index

我的權限是 observer,無法執行程式碼修改。報告中包含所有精確的行號、修改方案和注意事項,可直接交給有寫入權限的 programmer agent 實作。