Repository navigation
v2026.09.13.4
v2026.09.13.4 — 补齐 opencode 的「最后更新时间」落点(13.3 漏判)
客户端发布:
CLIENT_VERSION2026.09.13.3 → 2026.09.13.4(客户端包有改动,各端经/api/client/manifest自动更新,Agent 重启后生效)。服务端仅版本常量,无 schema 变更、无数据迁移(13.3 已建的sessions.last_activity_at继续用)。
Fixed(opencode 的 session.time_updated 也要用真实活动时间)
- 漏判:13.3 只改了 workbuddy / omp / openclaw(外加共享的
adapters/base.py),把 opencode 记为"已用ended_at,不改"——但它与另外三个是同一类落点:session.time_updated是 opencode 桌面端的排序键,写入用的是ended_at(缺失才回退now),而ended_at各 agent 语义不一致(13.3 实测 40 条拉取会话:5 条缺失、只有 3 条等于最新消息时间),所以这类会话在 opencode 列表里仍可能显示成"刚刚"或陈旧时间。 - 修复:
mcp/adapters/opencode.py的 INSERT / UPDATE 两条路径都改用共享助手session_last_activity()(服务端last_activity_at→ 本次载荷最新消息 →ended_at),保留>= time_created下界,now仅在该会话没有任何可用时间戳时兜底。 - 7 个注册 adapter 全量复核(
hermes/opencode/reasonix/openclaw/workbuddy/omp/dsh,另作者工作区未提交的chatgpt只读):改代码 4 个 —— 13.3 的 workbuddy / omp / openclaw + 本次 opencode;hermes 零代码改动(state.db本就有last_activity_at列,进 canonical 后 1:1 映射自动读写);dsh / reasonix 无"最后更新"元数据(dsh 投影缓存只有createdAt,列表顺序由日志/消息决定);chatgpt 只读上传不写本地。 - 测试:
mcp/tests/test_opencode.py+1(写入与更新路径的time_updated= 最新消息时间、不早于time_created)。mcp 套件 196 项、server 套件 196 项通过(仅 3 项改动前既有的环境失败)。文档:ARCHITECTURE 决策记录 2026.09.13.3 的 adapter 映射表与回归防线同步修正(opencode 由"不改"改为"已补齐")。
生产状态:236 已部署 2026.09.13.4(3 文件 sha256 与工作区一致、systemctl restart 后 health 200),线上 /api/client/manifest 服务该版本。