现象(v1.0.23 实机)
/memory on 反复返回 Memory remains off(/init 前后均如此)
memory_search 工具返回 Memory search is unavailable for this session
- 全程日志零 WARN(无
MEMORY command failed / needs manual repair / configured MEMORY model is unavailable)
已排除的假设(逐项实证)
| 假设 |
证据 |
结论 |
| 项目未初始化 |
活库 opencode.db 行 e81c016b:time_initialized=1786934694133(/init 于 02:44:54Z 成功盖章,事件链 project.ts:424→prompt.ts:2133 工作正常) |
❌ 排除 |
| global identity |
行 id=e81c016b…(真实 git remote 身份),非 global |
❌ 排除 |
| 子会话守卫 |
会话 ses_fe5ff616… parent_id 为空 |
❌ 排除 |
| 旧二进制 |
/usr/local/bin/opencode mtime=08-17 09:51 = v1.0.23;origin/main prompt.ts:2340 含 Memory.node |
❌ 排除 |
memory.jsonc 死键 topic_limit_floor |
config.ts:186 注释明示 Schema.Struct 容忍多余属性 |
❌ 排除 |
| Memory home 损坏/legacy 冲突 |
home 目录存在且为空;仓库工作树无遗留 memory 文件;无 unresolved 警告 |
❌ 排除 |
| 查错 DB |
初诊误查 opencode-local.db(陈旧行);活库为 opencode.db |
✅ 已纠正 |
症状指向
两条路径(prompt.ts:1879 拦截器 / memory-search.ts:36)都在 Effect.serviceOption(Memory.Service) 返回 None 时无警告地给出相同答复——Memory 服务在实机会话栈中不可达,尽管 Memory.node 在 SessionPrompt 节点清单(prompt.ts:2340)。
疑区
- 实机交付的会话层装配与源码 defaultLayer 存在变体差异(某条装配路径漏掉 Memory.node 或其依赖)
- Memory 层构建失败被某处静默吞掉(InstanceState/LayerNode 边界)
- 实例上下文错配导致服务在错误键下注册
复现
v1.0.23 + 有 git remote 的已初始化项目:/init → /memory on → Memory remains off;同会话 memory_search → unavailable。
验收
/memory on 返回 Memory on;memory_search 可召回;或当服务确实缺失时,两处守卫给出带原因的明确错误(而非静默 remains off)。
现象(v1.0.23 实机)
/memory on反复返回Memory remains off(/init 前后均如此)memory_search工具返回Memory search is unavailable for this sessionMEMORY command failed/needs manual repair/configured MEMORY model is unavailable)已排除的假设(逐项实证)
opencode.db行 e81c016b:time_initialized=1786934694133(/init 于 02:44:54Z 成功盖章,事件链 project.ts:424→prompt.ts:2133 工作正常)globalMemory.nodetopic_limit_flooropencode-local.db(陈旧行);活库为opencode.db症状指向
两条路径(prompt.ts:1879 拦截器 / memory-search.ts:36)都在
Effect.serviceOption(Memory.Service)返回 None 时无警告地给出相同答复——Memory 服务在实机会话栈中不可达,尽管Memory.node在 SessionPrompt 节点清单(prompt.ts:2340)。疑区
复现
v1.0.23 + 有 git remote 的已初始化项目:
/init→/memory on→Memory remains off;同会话memory_search→ unavailable。验收
/memory on返回Memory on;memory_search可召回;或当服务确实缺失时,两处守卫给出带原因的明确错误(而非静默 remains off)。