pypi / langchain-openviking
langchain-openviking
What changed in langchain-openviking 0.4 to 0.5, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.
23 breaking1 deprecations34 new APIs and options9 behavior and defaults4 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initlangchain-openviking 0.51 changes
Fixes and other changes 1
The LangChain integration's capture state typing is fixed.
langchain-openviking 0.470 changes
Breaking changes 23
Each query now performs one global vector recall followed by one unified rerank; directory recursion and parent score propagation are removed, and thresholds apply after reranking.
The gemini and gemini-async extras now require google-genai>=1.39.0.
Requests with explicitly invalid or expired API keys now receive an authentication error; requests without credentials still receive 200.
This legacy setting is ignored; use memory.session_auto_commit.enabled instead.
Replaces default_enabled and idle_enabled; its default is false, so deployments using the old keys must set enabled: true to keep auto-commit on.
This legacy setting is ignored; use memory.session_auto_commit.enabled instead.
Replaces scan_batch_size and scan_batch_pause_seconds, with a default of 2.0.
The installer now installs the ov CLI by default using npm install -g @openviking/cli, which requires npm on the machine.
A non-recursive semantic_and_vectors request for a semantic namespace now returns INVALID_ARGUMENT; target a specific resource, memory, or skill directory.
Hotness weighting and this setting are removed; leftover configuration entries are ignored with a warning.
This setting is removed; leftover configuration entries are ignored with a warning.
Results now order only by vector or rerank scores; scores and ordering may differ for the same query, so callers using score thresholds or filters should recalibrate.
With the opensandbox backend, managed now defaults to true; set it false to use an existing external OpenSandbox service.
Native C++ and cuVS map pure cosine scores from [-1,1] to [0,1] without changing ranking; callers using score thresholds or filters should recalibrate.
Root API keys can no longer access /mcp; use a user or admin key.
The person value now fails with a hint to use sender; existing peer_role: "person" plugin configuration remains treated as sender.
The pi extension replaces its seven hand-written viking_* tools with server MCP tools registered as openviking_<tool>.
The directory import file limit now defaults to null (unlimited) instead of 1000; set an explicit limit to retain the cap.
The person value now fails with a hint to use sender; existing peer_role: "person" plugin configuration remains treated as sender.
Removes the session used-reporting endpoint; calls now return 404.
Writes and filesystem operations targeting reserved metadata and lock names return INVALID_ARGUMENT; WebDAV returns 404 for .exact.ovlock.*.
The image no longer ships ripgrep, and RAGFS no longer probes or invokes an external rg binary.
Removes the Python Session.used() method; callers should drop the call.
Deprecations 1
The existing account settings endpoints remain available but are deprecated; new clients should use the configuration API.
New APIs and options 34
add_resource now accepts an acl parameter.
Adds an event time-decay ranking parameter to find and search.
Adds the get_acl MCP tool.
ls and tree responses now include a pagination status flag.
Adds the list_groups MCP tool.
Adds the list_users MCP tool.
Adds include_abstract and include_overview options.
MCP tools now advertise behavior annotations.
The --skill memory mode deduplicates, merges, and normalizes a memory directory in place.
Adds force to reindex; the command also moves to the RFV planner and async tasks become recoverable.
The configuration file now accepts oidc_token.
Jev reranking adds Choice mode, enabled with rerank.mode set to "choice"; the default remains "noul".
Adds search_type="keywords" for BM25 keyword retrieval across REST, MCP, CLI, and the Python, TypeScript, and Go SDKs.
Adds the set_acl MCP tool.
Adds directory filtering and L0/L1 content display support.
write now accepts an acl parameter.
Creation and import operations can accept ACL settings; passing acl requires manage permission, and write-only callers receive 403.
Adds a CLI option for supplying ACL settings when creating or importing resources.
Adds the add_skill tool to MCP.
Adds Account-level runtime configuration, including per-account VLM, Query Planner, Embedding, remote VectorDB, and Feishu credentials.
Adds asyncio executor metrics for observability.
Adds parsing support for Feishu mindnotes.
Adds Cluster-level runtime configuration that can be read or patched without editing ov.conf or restarting.
Adds a Jev rerank provider.
Adds a memory plugin for Kimi Code CLI.
Supports JSON output through the format=json query parameter.
The OpenCode plugin now supports OpenCode v2.
Adds an openGauss DataVec vector backend.
Memory plugins now ship the openviking-skills skill and inject a Skill catalog at session start.
Adds case-insensitive account search to Studio's Account list through the query parameter.
Adds QueueFS processing latency observability.
Use root_uri to obtain the Skill package root because skills/find results may have uri values pointing inside the package.
Adds a deployment-level default for user configuration auto-commit policy.
Watch tasks now support externally managed OAuth tokens.
Behavior and default changes 9
Choice scores are relative probabilities within the candidate pool; callers must set rerank.threshold to 0 and pass min_score=0 for MCP calls.
The default install no longer runs git clone; legacy source options and repository variables are accepted but only print a notice.
The default check interval changes from 60 seconds to 600 seconds.
The default maximum concurrency for reindex workers is now 4.
Context-mode search returns one best hit per Skill.
Unparseable or empty memory extraction results after retries now mark the task and archive failed, with failure_kind=parse_error or failure_kind=empty_response.
With acl.enabled, the shared root defaults to inherited user:* = manage; the setting applies only to Accounts with ACL enabled.
Returns one best hit per Skill; uri may point within the package, so use root_uri when the package root is needed.
Unknown fields in ov.conf and Account setting.json are ignored with a WARNING instead of preventing startup; type errors in known fields still fail.
Fixes and other changes 3
Whole-call MCP failures now return isError: true.
Run semantic_and_vectors reindexing to build missing Skill package-level summaries and indexes; vectors_only does not generate missing summaries.
User-created tasks and _system directories below the account root now appear in ls, tree, and glob results.