OpenViking v0.3.15
本次 v0.3.15 是一个覆盖面很广的版本,重点落在 Memory/Session 体系升级、OpenClaw 与 Claude Code 生态打磨、CLI 与资源操作能力增强,以及服务端可靠性、安全性和部署体验提升。整体来看,这是一个明显偏“能力扩展 + 工程稳定性补强”的版本。
Highlights
- Memory 体系继续升级:引入 Working Memory v2、agent-scope 两阶段 trajectory/experience memory pipeline,并补齐 persistent session、recall redesign、memory isolation 等能力,进一步改善长会话、群聊、多 agent 和跨轮次记忆质量。
- OpenClaw / Claude Code 集成增强:OpenClaw 插件与主链路补上自动 recall、5.2 contract 兼容、shared remember writes、自动安装与发布流程;Claude Code 插件新增可选 statusline、
/ov status、session-start profile injection,并继续清理 tool-output 捕获链路。 - CLI 与资源接入更完整:新增
ovCLI 支持与--progress展示,add-resource支持路径变量和-p,并为add-resource/add-skill增加异步任务跟踪。 - 服务端启动与部署更稳:
/health与/ready生命周期解耦,初始化阶段可响应健康检查;Docker entrypoint、Helm readiness probe、延迟初始化失败退出逻辑同步完善。 - 安全与兼容性补强:限制
register_user的高权限角色注册,升级python-multipart与litellm安全基线,并修复 JSON typed loads、OpenAI VLM retry、RAGFS 扩展版本校验等稳定性问题。
Upgrade Notes
- 如果你使用 Memory / OpenClaw / cc-memory-plugin,建议关注本版本的 session memory、persistent recall、memory isolation 和 shared remember writes 行为变化;这些改动会直接影响长会话记忆注入、群聊隔离和插件侧记忆捕获方式。
- 如果你依赖 健康检查或容器编排,
v0.3.15起建议优先使用/ready作为 readiness probe;/health已支持在初始化期间响应,但不再等价于“服务已完全可用”。 - 如果你使用 CLI 或自动化脚本,可以评估迁移到新的
ovCLI 工作流,并注意add-resource/add-skill已支持异步任务跟踪,输出与交互节奏会比旧版本更明确。 - 如果你接入 MCP / OAuth 客户端,本版本新增原生 OAuth 2.1 authorization 支持,同时对 MCP 的资源添加、目录删除、tool 命名和 store 元数据做了兼容性修复。
- 如果你运行在安全敏感环境,建议同步升级到本版本以获得
python-multipart >=0.0.27、litellm >=1.83.7以及管理接口权限收敛带来的安全修复。
What's Changed
Memory / Session / Recall
- 引入 Working Memory v2:7-section session memory、anti-bloat guards、sliding-window tokens,并完成 OpenClaw 集成。
#1782 cc-memory-plugin完成 persistent session and recall redesign。
#1615- 支持 memory isolation,并进一步补齐群聊模式。
#1711 #1905 - 增加 agent-scope two-phase trajectory/experience memory pipeline。
#1880 - 修复 memory queue stall、fs-error 分类、final extract output 解析要求、bot memory build 等一批记忆链路问题。
#1531 #1902 #1912 cc-memory-plugin修复 assistant turn 默认捕获、inline tool I/O、tool-heavy batch 丢失等问题。
#1849 #1850
OpenClaw / Claude Code / Plugin Ecosystem
- OpenClaw 插件统一 session 与 agent-prefix 路由,支持合并连续 user turns,并补上自动 recall 通过 assemble 路径。
#1832 #1835 #1858 - OpenClaw 主链路支持 5.2 contracts、shared remember writes,并在 enable 前补充 plugin load path。
#1866 #1913 - 增加 OpenClaw OpenViking 插件的 自动化安装与 ClawHub 发布流程,适配
OpenClaw >5.4。
#1904 - Claude Code 插件新增 OpenViking statusline(opt-in)、
/ov status、session-start profile injection,并清理 tool-output capture。
#1890 #1914 cc-plugin移除 plugin commands 中的--scope,增加 legacy install path。
#1876- MCP 工具命名进一步收敛,便于跨插件统一调用。
#1851
CLI / Resource / Tasking
- 新增
ovCLI support,并增加ov --progress进度展示。
#1916 #1872 add-resource支持 path variables 与-p。
#1896- 为
add-resource/add-skill增加 async task tracking。
#1763 - 修复 CLI 摘要展示策略、BOM 配置兼容,以及 markdown slicing / Rust CLI 兼容性问题。
#1921 #1922 #1919
Server / API / OAuth / Admin
- 新增 response feedback tracking 到 OpenAPI / observability 链路。
#1660 - 新增面向 MCP 客户端的 原生 OAuth 2.1 authorization。
#1870 - 服务端支持 shared temp upload mode。
#1899 register_user现在会限制特权角色注册。
#1624list_agentsendpoint 已补充进 admin API overview 文档。
#1826
Storage / FS / Search / Rebuild
- 修复
_enqueue_direct_vectorization透传context_type,并兼容read_file返回str的情况。
#1853 - 修复 skill write URI 的 agent scope prefix 解析、写入时 shorthand namespace URI canonicalization,以及 multi-dot 文件名资源解析问题。
#1889 #1929 #1875 glob现在会把 AGFS “not a directory” 映射为FailedPrecondition。
#1898stat()暴露isLocked,便于感知 path-lock 状态。
#1940- 优化 VikingFS grep 实现,并为本地索引恢复增加节流进度日志。
#1731 #1888 - 新增 rebuild API scaffold。
#1592
Reliability / Deploy / Docker
- 服务端采用 分阶段 lifespan,使
/health在初始化期间可响应。
#1878 - Docker entrypoint 改为等待
/ready后再启动 console;Helm readiness probe 也同步切换到/ready。
#1886 #1884 - 延迟初始化失败时会主动退出进程,避免僵尸可用态。
#1893 - Docker 构建缓存 cargo + ccache,去掉冗余 maturin 步骤,显著改善 Python 改动下的重建速度。
#1885 - SIGTERM 处理改为
sys.exit(0)。
#1883
Security / Compatibility / Model Integrations
- 升级
python-multipart >=0.0.27,修复 GHSA-pp6c-gr5w-3c5g。
#1877 - 升级
litellm >=1.83.7,覆盖 5 个 GHSA 安全问题。
#1882 - 修复 OpenAI embedding 默认维度、VLM 重试关闭、rerank payload 健壮性、RAGFS cpython 扩展校验、JsonUtils typed loads validation。
#1825 #1860 #1933 #1854 #1768
Docs / Assets / Misc
- 文档补充 temp upload 配置、OpenClaw status /
--json验证方式,并持续整理 changelog / roadmap。
#1925 #1924 #1845 - 新增更紧凑的 favicon 变体,并修复透明背景丢失问题。
#1879 #1881 - 更新微信二维码与相关资源。
#1863 #1865 #1864
Full Changelog: v0.3.14...v0.3.15
What's Changed
- feat(observability): add response feedback tracking to openapi by @myysy in #1660
- fix(emb): Fix OpenAI emb model default dimension by @yeshion23333 in #1825
- fix(openclaw-plugin): unify session and agent-prefix routing across compact, commit, and tools by @jcp0578 in #1832
- fix(openclaw): route auto recall through assemble by @wlff123 in #1835
- Introduce Working Memory v2: 7-section session memory, anti-bloat guards, sliding-window tokens, and OpenClaw integration by @huangxun375-stack in #1782
- docs(admin): list
list_agentsendpoint in API overview tables by @r266-tech in #1826 - feat: replace controversial examples with neutral alternatives by @ZaynJarvis in #1844
- feat(cc-memory-plugin): persistent session and recall redesign by @t0saki in #1615
- feat: harden MCP add_resource + cc-memory-plugin claude wrapper by @t0saki in #1846
- docs: fix i18n switch, add v0.3.13/v0.3.14, normalize changelog, update Roadmap by @ZaynJarvis in #1845
- fix(cc-memory-plugin): default-capture assistant turns + inline tool I/O by @t0saki in #1849
- fix(cc-memory-plugin): stop silently dropping tool-heavy batches; remove MIGRATION.md by @t0saki in #1850
- fix(openclaw-plugin): merge consecutive user turns (#1724) by @huangxun375-stack in #1858
- Feat/memory isolation 支持群聊模式 by @chenjw in #1711
- fix(storage): pass context_type in _enqueue_direct_vectorization and handle str from read_file by @yc111233 in #1853
- fix: reject mismatched ragfs cpython extensions by @euyua9 in #1854
- fix(vlm): disable OpenAI SDK retries by @qin-ctx in #1860
- Fix/oc2ov v2 session 404 by @kaisongli in #1824
- Wechat QR code update by @Lumos088 in #1863
- docs(opencode-plugin): document account/user tenant config from #1820 by @r266-tech in #1861
- fix(semantic): memory queue stall + permanent fs-error classification by @ZaynJarvis in #1531
- wechat QR code update by @Lumos088 in #1865
- [security] fix(admin): restrict privileged roles in register_user by @Hinotoi-agent in #1624
- Fix JsonUtils typed loads validation by @duyua9 in #1768
- fix(openclaw): support 5.2 contracts and shared remember writes by @Mijamind719 in #1866
- feat: ov --progress by @MaojiaSheng in #1872
- fix(cc-plugin): drop --scope from plugin commands, add legacy install path by @t0saki in #1876
- feat: serve tight favicon variants for API server and docs site by @t0saki in #1879
- fix(favicon): preserve transparency instead of baking white background by @t0saki in #1881
- Delete docs/images/wechat-group-qrcode.jpg by @Lumos088 in #1864
- fix(server): 分阶段 lifespan 使 /health 在初始化期间可响应 by @A0nameless0man in #1878
- deps: bump python-multipart >=0.0.27 (GHSA-pp6c-gr5w-3c5g, CVSS 7.5 DoS) by @r266-tech in #1877
- perf(docker): cache cargo+ccache and drop redundant maturin step (-51% rebuild on .py change) by @t0saki in #1885
- fix(storage): resolve skill write URI with agent scope prefix by @fengluodb in #1889
- feat(claude-code-plugin): OpenViking statusline (opt-in) by @t0saki in #1890
- feat(storage): 本地索引恢复增加时间节流进度日志 by @A0nameless0man in #1888
- fix(docker): entrypoint 等待 /ready 后再启动 console by @A0nameless0man in #1886
- fix(deploy): Helm readiness probe 改用 /ready 端点 by @A0nameless0man in #1884
- fix(server): validate skill metadata by @qin-ctx in #1891
- fix(utils): SIGTERM 使用 sys.exit(0) 替代 signal.default_int_handler by @A0nameless0man in #1883
- deps(security): bump litellm floor to >=1.83.7 (5 GHSA: 2 CRITICAL + 3 HIGH) by @r266-tech in #1882
- fix(skill): reject missing skill names by @qin-ctx in #1874
- fix(server,plugin): readable OV session id + MCP store role_id by @t0saki in #1895
- perf(storage): optimize VikingFS grep implementation by @baojun-zhang in #1731
- fix(server): 延迟初始化失败时退出进程 by @A0nameless0man in #1893
- fix(markdown): preserve multi-dot filenames during resource parsing by @zexuyann in #1875
- docs(openclaw-plugin): drop agent_end from README hook list per #1866 by @r266-tech in #1871
- ci: deploy VitePress docs to TOS by @yufeng201 in #1897
- chore(agent-tools): converge MCP tool names by @Mijamind719 in #1851
- feat(server): add shared temp upload mode by @zhoujh01 in #1899
- fix(server): map AGFS 'not a directory' to FailedPrecondition in glob by @fengluodb in #1898
- Feat/memory isolation by @chenjw in #1905
- feat(memory): agent-scope two-phase trajectory/experience memory pipeline by @yangxinxin-7 in #1880
- chore(cli): bump ov_cli version to 0.3.14 by @ZaynJarvis in #1907
- feat: path variables and -p for add-resource by @MaojiaSheng in #1896
- feat(task): add async task tracking for add-resource and add-skill operations by @sponge225 in #1763
- fix(storage): use UTC date comparison for modTime display in ls & fix same day detection by @ZaynJarvis in #1909
- feat(openclaw-plugin): 支持 OpenViking OpenClaw 插件的自动化安装与 ClawHub 发布流程,适配OpenClaw >5.4安装 by @LinQiang391 in #1904
- feat(rebuild): add rebuild api scaffold by @zhoujh01 in #1592
- feat: ov CLI support by @MaojiaSheng in #1916
- feat(claude-code-plugin): session-start profile injection, /ov status command, tool-output capture cleanup by @t0saki in #1914
- fix(wizard): use volcengine provider for BytePlus + add Custom VLM option by @ZaynJarvis in #1915
- feat(oauth): native OAuth 2.1 authorization for MCP clients by @t0saki in #1870
- fix: optimize markdown slicing, and fix a rust CLI bug for compability by @MaojiaSheng in #1919
- fix(memory): require parseable final extract output by @duyua9 in #1902
- fix: 修复 CLI 对摘要的展示策略,现在有一个非服务端的截断不符合预期 by @MaojiaSheng in #1921
- fix(openclaw): add plugin load path before enable by @Mijamind719 in #1913
- docs(config): document temp_upload server config + ovcli.conf upload.mode (#1899) by @r266-tech in #1925
- docs(openclaw): surface openclaw openviking status / --json in Verify section (#1904) by @r266-tech in #1924
- fix(cli): tolerate BOM in ov config by @duyua9 in #1922
- fix(storage): canonicalize shorthand namespace URIs on write by @ehz0ah in #1929
- fix: Enhance rerank client robustness for unexpected response payloads by @heaoxiang-ai in #1933
- fix(mcp): support recursive directory deletion in forget tool by @t0saki in #1935
- fix(bot\skill): Bot memory build, skill experience only extract existing skill_name, ov chat response field by @yeshion23333 in #1912
- feat(transaction): add redo recovery toggle for session commits by @zhoujh01 in #1934
- Fix/apply patch bug by @chenjw in #1926
- feat(fs): expose isLocked in stat() to surface path-lock state by @fengluodb in #1940
- chore: release setup helper 0.3.0 by @LinQiang391 in #1941
Full Changelog: v0.3.14...v0.3.15