What's Changed
- fix: isolate component release workflows by @zhoujh01 in #2975
- feat(plugins): retrofit OpenCode and pi memory integrations (hybrid MCP, shared lib, 4-harness installer) by @t0saki in #3079
- fix(storage): serialize local collection lazy load by @qin-ctx in #3080
- perf(skills): parallelize user+agent skill search by @xiaochen-zhou in #3011
- fix(bot): don't discard vlm-only config when ovcli identity is missing by @ZaynJarvis in #2994
- fix(vectordb): handle Windows 11 platform.machine() empty string and circular import by @huang-yi-dae in #3019
- docs: fix contributing setup and AGFS references by @rocke2020 in #2876
- fix(embedding): keep failover retryable when only some creds auth-fail (#2916) by @khou in #2945
- fix(deps): bump bot socketio floors for GHSA DoS advisories by @r266-tech in #2870
- docs: update OpenViking Helper downloads by @yufeng201 in #3083
- feat(pi): context takeover — OpenViking as the authoritative session context store by @t0saki in #3081
- fix(benchmark): enforce configured search concurrency by @yuanqingz in #3091
- fix(memory): respect agent-only and peer-only memory scopes by @yeshion23333 in #3098
- feat(retrieval): support image search by @qin-ctx in #3093
- feat(plugins): workspace peer mode — per-project memory via path-derived peer id by @t0saki in #3099
- fix(memory): avoid nesting rendered links by @AITree69 in #3085
- 修复签名视频链接的解析路由 / Fix signed video URL parser routing by @KCHENPENGFEI in #3103
- fix(security): prevent Git submodule SSRF by @qin-ctx in #3108
- fix(parse): route mislabeled OOXML Word files correctly by @ehz0ah in #3113
- fix(openclaw): send peer_id for session messages by @huangruiteng in #3115
- docs: translate Grafana+Prometheus monitoring guide to English by @nankingjing in #3105
- fix(bot): add missing sender_name param in Slack and Email channels by @scott-kim-7 in #3104
- fix(vectordb): only write content field for VikingDB backends by @ByteDanceLiuYang in #3114
- chore(deps): sync uv.lock by @rocke2020 in #3107
- fix(cli): avoid misreporting upstream model auth errors by @sponge225 in #3116
- chore(deps): update litellm requirement from <1.90.3,>=1.83.7 to >=1.83.7,<1.91.2 by @dependabot[bot] in #3100
- ci(release): add controlplane MCP PyPI release workflow by @t0saki in #3117
- feat: add Cursor and TRAE memory integrations by @yufeng201 in #3109
- perf(cuvs): optimize filters, rebuilds, concurrency, and memory by @yuanqingz in #3092
- fix(plugins): bump memory plugin versions after workspace peer update by @t0saki in #3126
- feat(bot): add unified VikingBot gateway routing and OpenViking auth by @yeshion23333 in #3119
New Contributors
- @huang-yi-dae made their first contribution in #3019
- @rocke2020 made their first contribution in #2876
- @AITree69 made their first contribution in #3085
- @nankingjing made their first contribution in #3105
- @scott-kim-7 made their first contribution in #3104
Full Changelog: v0.4.8...v0.4.9