github volcengine/OpenViking v0.5.0

latest release: python-sdk@0.1.14
3 hours ago

OpenViking v0.5.0

中文

OpenViking Gateway(Beta)

本版本新增 OpenViking Gateway(OpenViking 网关),因此升级到 0.5。任何能改 base URL 的模型客户端,接入网关后都能用上 OpenViking 记忆,不用装插件,也不用改代码或 prompt(#5625)。该功能在 PR 中名为 Context Gateway,发布前已改名(#5795)。

  • 接入方式:网关是独立进程 openviking-gateway(默认端口 1935),位于客户端和模型服务之间。客户端只改两项:base URL 指向网关,模型服务的 API key 换成网关 key。网关支持 Anthropic Messages、OpenAI Chat Completions 和携带完整历史的 OpenAI Responses,按原协议转发给配置的上游(upstream),不在协议之间转换(#5625)。
  • 记忆注入:会话开头加入用户 profile 以及记忆、skill 目录;每条新用户消息先检索 OpenViking,再把相关记忆附在这条消息末尾。之后的请求会逐字节回放已注入的内容,provider 的 prompt cache 和 Claude thinking 签名因此保持有效(#5625)。
  • 保存与压缩:对话保存到 OpenViking session(名为 gateway-…),由 OpenViking 抽取新记忆;网关新建的 session 关闭 Working Memory。对话接近模型上下文窗口(默认 90%)时,由同一模型写一份有长度上限的摘要,替换切点之前的历史(#5625)。
  • OpenViking 工具:网关自己执行 OpenViking MCP 工具(名称加 openviking_ 前缀),三种协议都支持,客户端无需声明这些工具。新建的 context profile 默认只勾选只读工具;remember、write、edit、add_resource、add_skill、forget、set_acl 等会改数据的工具需要管理员手动勾选。DeepSeek、Ark、BytePlus 上游默认开启 reasoning 回放,带工具的请求可以保持 thinking 开启(#5625)。
  • 工具循环默认不设上限:网关内部的 OpenViking 工具循环默认不限轮数、总时长和 token,模型可以一直调用工具直到完成,流式请求中用户可随时中止。context profile 中的 tool_max_rounds、tool_total_seconds、tool_total_tokens 默认为空(不限),需要时可设上限;单次调用超时 tool_timeout_seconds(30 秒)不变。非流式客户端断开后循环不会停止,这类场景建议设置 tool_total_seconds(#5811)。
  • 管理:Studio 新增 Gateway 页面(Overview、Upstreams、Profiles、Keys、Requests、Connect),账号管理员在这里管理上游、context profile 和网关 key;服务端新增管理代理 /api/v1/admin/gateway/*,删除用户或账号时会一并清除网关数据(#5625)。Connect 页为 pi、OpenCode、DSH 按协议分别生成配置,新增 DSH,并修正 pi 的 apiKey 写法(#5705)。
  • 可选项:context profile 新增 show_recall(默认关闭),开启后每轮第一条回复开头显示本轮注入了哪些 OpenViking 内容,这段摘要不发给模型、也不存入记忆(#5751)。实验性的 agent 自管上下文窗口(agent_windows)中,hard reminder 改为每一步都提醒,直到模型新开窗口或触发压缩(#5707)。
  • 部署:pip extras gateway、gateway-fast;Docker 镜像内置网关;Docker Compose 新增 gateway profile;Helm chart 升到 0.2.0,用 gateway.* 启用 sidecar(#5625、#5795)。启动前在 ov.conf 的 gateway 段设置 enabled: true,并提供环境变量 OPENVIKING_GATEWAY_ENCRYPTION_KEY(Fernet key)和 OPENVIKING_GATEWAY_ADMIN_TOKEN(至少 32 个字符)。OpenViking Gateway 与 VikingBot Gateway(vikingbot gateway)是两个不同的组件(#5795)。

亮点

  • Working Memory 改为默认关闭:commit 仍归档原始消息并抽取长期记忆,但默认不再生成 archive overview 和 checkpoint 摘要;commit 接口新增 enable_working_memory,可按次开启(#5696)。Claude Code、Codex、OpenCode、pi、OpenClaw 等插件默认改由宿主自己管理历史和压缩,VikingBot 仍使用 OpenViking 管理上下文(#5686)。升级要点见「兼容性与迁移」第 1 条。
  • 检索与召回:context 模式召回不再返回 viking://resources 等系统预置目录,各类别 quota 用不满的名额由其他类别的结果补上(#5679);exclude_uris 传目录时排除整棵子树(#5627);session 搜索时显式传入的 context_type 不再被 planner 改掉(#5549);修复 v0.4.22 起图片检索一律报 Image search requires a multimodal embedding model. 的问题(#5644);本地 GGUF embedding 并发调用加锁,修复 v0.4.22、v0.4.23 中索引与召回重叠时的崩溃(#5548)。
  • Session 与记忆抽取:Working Memory 生成失败时 commit 任务重新标记为失败,不再写入占位摘要(#5624);模型返回非字符串的 section 更新内容时保留原内容(#5516);服务关闭导致的取消不再把排队中的 commit 标记为失败(#5591);抽取结果的字段与 schema 完全不匹配时触发格式重试,不再当作空结果(#5731);case overview 缺字段时回退到文件名(#5735);Markdown frontmatter 按 YAML 解析,只用顶层字符串 title 命名文档(#5734);MCP remember 改为报告「已提交抽取」并返回 task_id(#5678)。
  • Agent 插件:Claude Code memory 插件在回答下方显示 OpenViking 来源卡片,默认折叠,/openviking-usage expand|collapse 切换,桌面端同样可用(#5653、#5663、#5664、#5694);Codex 插件内置 OV-Usage 来源汇总,可在 ovcli.conf 中用 usageView / usageOutput 配置(#5699、#5738);Claude Code、Codex、DSH、OpenCode、pi 的 commit 改为归档全部消息(#5459);DSH 只在真实用户输入时召回(#5647),接受全部 0.x 版本(#5733),session ID 规范化以兼容 Windows 路径(#5522);OpenCode 修复会话结束时重复发送同一批消息(#5674);OpenClaw 自动上下文注入用户 profile(#5676);Kimi Code 采集保留用户轮次(#5677);Cursor、TRAE、ZCode hook 在宿主超时内结束,doctor 的超时检查改查正确的配置项(#5467);Windows 上斜杠形式的 bypassSessionPatterns 能正确匹配(#5737);共享 HTTP 客户端、OpenClaw 和 pi experimental 客户端在响应体被截断时按失败处理,不再当作空的成功结果(#5661、#5790);LangChain 修复 capture state 类型(#5717)。
  • Hermes:外部 provider 新增 Quick Local,复用 Hermes 已配置的 LLM,在私有运行环境中运行 OpenViking 和本地 BGE embedding,并提供 hermes openviking local status/start/stop/restart(#5465);setup 时安装最新的兼容版本并校验 PyPI 摘要(#5710);区分底层 LLM 错误类型(#5643);同一 session 按顺序上传(#5641);autostart 启动的服务端不再继承无关的 Hermes 密钥(#5706);去掉通用 session-end hook 声明,消除 plugins doctor 误报(#5736)。
  • Studio、CLI 与 VikingBot:Studio 的 Playground 改名为 Filesystem,旧 /playground 链接自动跳转到 /filesystem(#5681);Studio API 对缺失的 Compile 任务 source 列表做规范化(#5611);ov status、ov config 改为与 OPENVIKING_CLI_CONFIG_FILE 选中的配置文件保持一致(#5551);修复 v0.4.23 Windows wheel 中 ov 报告 0.4.24.dev0 的问题(#5588);vikingbot chat 新增可重复的 --disable-tool,LoCoMo 评测只保留 OpenViking 检索工具(#5761);VikingBot 召回时,作为回退使用的事件摘要也计入事件和总字符预算(#5817)。
  • 服务端与 SDK:embedding 服务对单个请求返回 400 时,只让这次请求失败,不再打开整个账号的 embedding 熔断器;超时、5xx、429 和配额错误仍按原样触发熔断(#5822);Volcengine KMS 写入失败时清除缓存的根密钥,避免数据用未落盘的密钥加密(#5561);QueueFS worker 关闭事件循环前先关闭其异步客户端,减少关停时的报错和耗时(#5675);Python 客户端保留服务端返回的结构化错误详情,例如 details.retryable(#5559);目录打包失败时清理残留的临时压缩包(#5557)。
  • 文档与品牌:文档站按 Quickstart、Concepts、Agents、Develop、Deploy、Reference、Community 重组导航(#5583);CLI 设置页拆成可复制的 agent prompt 和手动步骤(#5621);历史设计稿中仍适用的内容迁入用户文档(#5512);L0/L1 字符预算说明、Working Memory 升级指南及其他文档修正(#5529、#5690、#5700、#5703、#5704);E 标志更新(#5743);文档站与发布构建修复(#5569、#5574、#5576、#5584、#5585、#5586、#5600、#5634、#5708、#5749)。

兼容性与迁移

  1. Working Memory 默认关闭(#5696、#5686):memory_policy.working_memory.enabled 默认值由 true 改为 false。commit 仍归档原始消息并抽取长期记忆,但不再生成 archive overview 和 retention checkpoint 摘要。

    • 旧版本序列化策略时会省略值为 true 的 working_memory 字段,所以之前在 Studio 或 user/session 接口中显式开启过的策略,升级后也可能被当作 false。需要 Working Memory 的部署请重新显式开启。
    • 升级前已进入队列的旧任务仍按提交时的语义(Working Memory 开启)执行,升级后可能继续生成摘要。不希望出现这种情况时,升级前先等队列清空。
    • POST /api/v1/sessions/{session_id}/commit 新增 enable_working_memory(true / false / null),只覆盖本次 commit 的 Working Memory 设置,其他策略字段不变;传字符串或数字会被拒绝。响应中的 effective_enable_working_memory 表示本次实际生效的值。
    • Working Memory 关闭时完成的 archive,GET /api/v1/sessions/{session_id}/archives/{archive_id} 返回原始 messages,overview 和 abstract 为空字符串。
    • 升级 OpenViking Python 包不会更新已安装在各宿主中的插件,插件需要单独升级。新版插件的默认行为如下;已有的显式配置和环境变量仍然优先。
    集成 新默认 显式开启
    Claude Code、Codex / TraeCode CLI、OpenCode 恢复会话或压缩时不自动注入 archive,历史由宿主管理 resumeArchiveInject: true
    pi 官方扩展 使用 pi 原生压缩,不接管历史 takeoverEnabled: true
    OpenClaw contextManagementMode: "native" contextManagementMode: "openviking"
    VikingBot 仍由 OpenViking 管理上下文(session_context_enabled: true),commit 显式请求 Working Memory session_context_enabled: false 切回本地模式
    # 单次 commit 开启 Working Memory
    curl -X POST "$OV_URL/api/v1/sessions/$SID/commit" -H "X-API-Key: $KEY" \
      -H 'Content-Type: application/json' -d '{"enable_working_memory": true}'
  2. 插件 commit 归档全部消息(#5459):Claude Code、Codex、DSH、OpenCode 和 pi(非接管模式)的 commit 改为发送 keep_recent_count: 0,commitKeepRecentCount / OPENVIKING_COMMIT_KEEP_RECENT_COUNT 不再被读取。以前每次 commit 都会留下最新 10 条消息不归档,10 条以内就结束的短会话不会被归档和抽取。服务端按全部 live 消息计算 pending_tokens,基于 token 阈值的 commit 会比以前稍早触发。

  3. Context 模式召回结果变化(#5679、#5627):/api/v1/search/search 在 mode: "context" 下不再返回系统预置目录(viking://resources、viking://agent 及其子目录、用户根目录及其一级目录);各类别 quota 先作为上限,用不满的名额由其他类别的最佳结果补足,总数不变,quota 为 0 仍表示关闭该类别。exclude_uris 传目录 URI 时改为排除整棵子树,以前按字符串精确匹配,传目录实际什么都不排除。同一查询返回的条目可能与 v0.4.23 不同。

  4. MCP remember 返回文本变化(#5678):以前固定返回 Stored N message(s) and committed for memory extraction.;现在返回「已提交 N 条消息进行抽取」并附 task_id,没有生成任务时说明未提交的原因。抽取在后台进行,可能不产生记忆。解析旧返回文本的调用方需要更新。OpenClaw memory_store 在没有抽取出记忆时重新返回 action: "failed"、error: "no_memories_extracted"。

  5. CLI 配置管理跟随选中的配置文件(#5551):设置了 OPENVIKING_CLI_CONFIG_FILE 时,ov status、ov config validate、配置向导和配置管理都以该文件为准。命名 profile 在该文件所在目录查找,ov config switch 写入该文件,不再改默认文件;被选中的命名文件不能删除或重命名。要管理默认配置,请先 unset 该变量。

  6. DSH 插件(#5522、#5733):含 Windows 非法字符或以点、空格结尾的 DSH session ID 会被规范化并加上哈希后缀;这类旧会话升级后会对应新的 OpenViking session,已经合法的 ID 映射不变。插件的 DSH peer 依赖范围放宽为 >=0.1.0-rc.6 <1.0.0-0。

  7. Hermes Quick Local 版本范围(#5710):Quick Local setup 安装 openviking[local-embed]>=0.4.22,<0.5,重新运行 setup 会安装最新的 0.4.x,不会装 0.5.0。

English

OpenViking Gateway (Beta)

This release adds OpenViking Gateway, which is why the version moves to 0.5. Any model client that lets you change its base URL gets OpenViking memory through the gateway, with no plugin to install and no code or prompt to change (#5625). The feature was called Context Gateway in its PRs and was renamed before release (#5795).

  • How clients connect: the gateway is a separate process, openviking-gateway (default port 1935), between the client and the model provider. The client changes two settings: the base URL points at the gateway, and the provider API key is replaced with a gateway key. The gateway speaks Anthropic Messages, OpenAI Chat Completions and full-history OpenAI Responses, forwards each request to a configured upstream in the same protocol, and never converts between protocols (#5625).
  • Memory injection: a conversation starts with the user profile and the memory and skill catalogs; for each new user message the gateway searches OpenViking and appends the relevant memory to that message. Later requests replay the added content byte for byte, so provider prompt caches and Claude thinking signatures stay valid (#5625).
  • Saving and compaction: conversations are saved to OpenViking sessions (named gateway-…), and OpenViking extracts new memories from them; sessions the gateway creates have Working Memory turned off. When a conversation nears the model's context window (90% by default), the same model writes a bounded summary that replaces the history before the cut (#5625).
  • OpenViking tools: the gateway runs OpenViking MCP tools itself (with an openviking_ prefix) for all three protocols, so the client does not need to declare them. New context profiles enable only the read-only tools; tools that change data, such as remember, write, edit, add_resource, add_skill, forget and set_acl, must be checked by an admin. Reasoning replay is on by default for DeepSeek, Ark and BytePlus upstreams, so requests that carry tools can keep thinking on (#5625).
  • No default limits on the tool loop: the gateway's hidden OpenViking tool loop has no round, total-time or token limit by default, so the model keeps using OpenViking tools until it finishes, and in a streaming request the user can stop the reply at any time. The context profile fields tool_max_rounds, tool_total_seconds and tool_total_tokens default to empty (no limit) and can still be set to cap the loop; the per-call timeout tool_timeout_seconds (30 s) is unchanged. A non-streaming loop keeps running after the client disconnects, so set tool_total_seconds for non-streaming clients (#5811).
  • Management: Studio adds a Gateway section (Overview, Upstreams, Profiles, Keys, Requests, Connect) where account admins manage upstreams, context profiles and gateway keys; the server adds the admin proxy /api/v1/admin/gateway/*, and deleting a user or account also purges its gateway data (#5625). The Connect page generates per-protocol setup for pi, OpenCode and DSH, adds DSH, and fixes the pi apiKey snippet (#5705).
  • Options: context profiles add show_recall (off by default); when on, the first reply of each user turn starts with a short summary of what OpenViking added to that turn, which is never sent to the model or stored in memory (#5751). In the experimental agent-managed context windows (agent_windows), the hard reminder now repeats on every step until the model starts a new window or compaction runs (#5707).
  • Deployment: pip extras gateway and gateway-fast; the Docker image includes the gateway; Docker Compose adds a gateway profile; the Helm chart moves to 0.2.0 and enables the sidecar through gateway.* (#5625, #5795). Before starting it, set enabled: true in the gateway section of ov.conf and provide the environment variables OPENVIKING_GATEWAY_ENCRYPTION_KEY (a Fernet key) and OPENVIKING_GATEWAY_ADMIN_TOKEN (at least 32 characters). OpenViking Gateway and VikingBot Gateway (vikingbot gateway) are different components (#5795).

Highlights

  • Working Memory is now off by default: commits still archive raw messages and extract long-term memories, but no longer generate archive overviews or checkpoint summaries by default; the commit API adds enable_working_memory to opt in per commit (#5696). Claude Code, Codex, OpenCode, pi, OpenClaw and other plugins now leave history and compaction to the host by default, while VikingBot keeps OpenViking-managed context (#5686). See item 1 under Compatibility and Migration.
  • Retrieval and recall: context-mode recall no longer returns preset system directories such as viking://resources, and slots a category's quota leaves unused go to results from other categories (#5679); a directory in exclude_uris excludes its whole subtree (#5627); an explicit context_type in session search is no longer overridden by the planner (#5549); image search no longer always fails with Image search requires a multimodal embedding model., a regression since v0.4.22 (#5644); calls into a shared local GGUF embedding context are serialized, fixing the v0.4.22 and v0.4.23 crash when indexing and recall overlap (#5548).
  • Sessions and memory extraction: a failed Working Memory creation call fails the commit task again instead of writing a placeholder summary (#5624); a section whose update content is not a string keeps its previous content (#5516); cancellations caused by service shutdown no longer mark queued commits as failed (#5591); extraction results whose keys match none of the schema fields trigger a format retry instead of counting as an empty result (#5731); case overviews fall back to the file name when fields are missing (#5735); Markdown frontmatter is parsed as YAML and only a top-level string title names the document (#5734); MCP remember now reports the messages as submitted for extraction and returns the task_id (#5678).
  • Agent plugins: the Claude Code memory plugin shows OpenViking source cards under answers, collapsed by default and toggled with /openviking-usage expand|collapse, in both the terminal and the desktop app (#5653, #5663, #5664, #5694); the Codex plugin adds built-in OV-Usage source summaries, configurable with usageView / usageOutput in ovcli.conf (#5699, #5738); commits from Claude Code, Codex, DSH, OpenCode and pi archive every message (#5459); DSH recalls only on real user input (#5647), accepts every 0.x release (#5733), and normalizes session IDs for Windows-safe storage paths (#5522); OpenCode no longer sends the same message batch twice at session end (#5674); OpenClaw injects the user profile into automatic context (#5676); Kimi Code captures keep the user turn (#5677); Cursor, TRAE and ZCode hooks finish within their host timeouts, and the doctor checks the right settings (#5467); slash-form bypassSessionPatterns match on Windows (#5737); the shared HTTP client and the OpenClaw and pi experimental clients treat a response body cut off after the headers as a failure instead of an empty success (#5661, #5790); LangChain capture state typing is fixed (#5717).
  • Hermes: the external provider adds Quick Local, which reuses the LLM configured in Hermes and runs OpenViking with local BGE embeddings in a private runtime, with hermes openviking local status/start/stop/restart (#5465); setup installs the latest compatible release and verifies it against the PyPI digest (#5710); underlying LLM errors are classified correctly (#5643); uploads within a session keep their order (#5641); servers started by autostart no longer inherit unrelated Hermes secrets (#5706); the generic session-end hook declaration is removed, which silences a plugins doctor false positive (#5736).
  • Studio, CLI and VikingBot: Studio's Playground is renamed Filesystem, and old /playground links redirect to /filesystem (#5681); the Studio API normalizes missing Compile task source lists (#5611); ov status and ov config follow the file selected by OPENVIKING_CLI_CONFIG_FILE (#5551); the v0.4.23 Windows wheel's ov reporting 0.4.24.dev0 is fixed (#5588); vikingbot chat adds a repeatable --disable-tool, and LoCoMo evaluation keeps only the OpenViking retrieval tools (#5761); in VikingBot recall, event summaries used as fallbacks now count toward the events and total character budgets (#5817).
  • Server and SDK: an HTTP 400 from the embedding provider for a single request now fails only that request and no longer opens the account-wide embedding circuit breaker, while timeouts, 5xx, 429 and quota errors still trip it as before (#5822); when Volcengine KMS fails to persist a new root key, the cached key is cleared so data is not encrypted under a key that was never saved (#5561); QueueFS workers close their async clients before closing the event loop, cutting shutdown errors and delay (#5675); the Python client keeps structured error details from the server, such as details.retryable (#5559); partial temporary archives are removed when directory packing fails (#5557).
  • Docs and branding: the docs site navigation is reorganized into Quickstart, Concepts, Agents, Develop, Deploy, Reference and Community (#5583); the CLI setup page is split into a copyable agent prompt and manual steps (#5621); still-relevant content from historical design notes moves into the user docs (#5512); L0/L1 character budgets, the Working Memory upgrade guide and other doc fixes (#5529, #5690, #5700, #5703, #5704); refreshed E logo (#5743); docs site and release build fixes (#5569, #5574, #5576, #5584, #5585, #5586, #5600, #5634, #5708, #5749).

Compatibility and Migration

  1. Working Memory off by default (#5696, #5686): the default of memory_policy.working_memory.enabled changes from true to false. Commits still archive raw messages and extract long-term memories, but no longer generate archive overviews or retention checkpoint summaries.

    • The previous serializer omitted working_memory when it was true, so a policy explicitly enabled through Studio or the user/session APIs may now resolve to false. Deployments that need Working Memory should enable it again explicitly.
    • Tasks queued before the upgrade keep their submission-time meaning (Working Memory on) and can still generate summaries after the upgrade. If that is not acceptable, drain the queue before upgrading.
    • POST /api/v1/sessions/{session_id}/commit adds enable_working_memory (true / false / null), which overrides Working Memory for that commit only and leaves the other policy fields unchanged; strings and numbers are rejected. The response field effective_enable_working_memory reports the value actually used.
    • For an archive completed with Working Memory off, GET /api/v1/sessions/{session_id}/archives/{archive_id} returns the raw messages with empty-string overview and abstract.
    • Upgrading the OpenViking Python package does not update plugins installed in agent hosts; upgrade them separately. New plugin defaults are below; existing explicit settings and environment variables still take priority.
    Integration New default Explicit opt-in
    Claude Code, Codex / TraeCode CLI, OpenCode No automatic archive injection on resume or compaction; the host keeps history resumeArchiveInject: true
    pi official extension Native pi compaction, no takeover takeoverEnabled: true
    OpenClaw contextManagementMode: "native" contextManagementMode: "openviking"
    VikingBot OpenViking still manages context (session_context_enabled: true), and commits explicitly request Working Memory session_context_enabled: false for the local mode
    # Enable Working Memory for a single commit
    curl -X POST "$OV_URL/api/v1/sessions/$SID/commit" -H "X-API-Key: $KEY" \
      -H 'Content-Type: application/json' -d '{"enable_working_memory": true}'
  2. Plugin commits archive every message (#5459): commits from Claude Code, Codex, DSH, OpenCode and pi (outside takeover mode) now send keep_recent_count: 0, and commitKeepRecentCount / OPENVIKING_COMMIT_KEEP_RECENT_COUNT is no longer read. Previously every commit held the newest 10 messages back, so short sessions that ended within 10 messages were never archived or extracted. The server now counts pending_tokens over all live messages, so token-threshold commits fire slightly earlier than before.

  3. Context-mode recall results change (#5679, #5627): /api/v1/search/search with mode: "context" no longer returns preset system directories (viking://resources, viking://agent and its children, the user root and its first-level directories). Category quotas are first-pass ceilings; unused slots go to the best remaining results from other categories, the total stays the same, and a quota of 0 still turns a category off. A directory URI in exclude_uris now excludes its whole subtree; it used to match the exact string, so a directory excluded nothing. Results for the same query may differ from v0.4.23.

  4. MCP remember result text changes (#5678): it used to always return Stored N message(s) and committed for memory extraction.; it now says N messages were submitted for extraction and includes the task_id, or explains why nothing was committed. Extraction runs in the background and may produce no memories. Callers that parse the old text need to be updated. OpenClaw memory_store again returns action: "failed" with error: "no_memories_extracted" when nothing is extracted.

  5. CLI configuration management follows the selected file (#5551): when OPENVIKING_CLI_CONFIG_FILE is set, ov status, ov config validate, the wizard and configuration management all use that file. Named profiles are discovered next to it, and ov config switch writes that file instead of the default one; the selected named file cannot be deleted or renamed. Unset the variable to manage the default store.

  6. DSH plugin (#5522, #5733): DSH session IDs with Windows-invalid characters or trailing dots or spaces are normalized and get a hash suffix; such existing sessions map to a new OpenViking session after the upgrade, while already-portable IDs keep their mapping. The plugin's DSH peer range widens to >=0.1.0-rc.6 <1.0.0-0.

  7. Hermes Quick Local version range (#5710): Quick Local setup installs openviking[local-embed]>=0.4.22,<0.5, so running setup again installs the latest 0.4.x release, not 0.5.0.

First-time Contributors

Full Changelog: v0.4.23...v0.5.0

Don't miss a new OpenViking release

NewReleases is sending notifications on new releases.