Commit Graph
508 Commits
Author SHA1 Message Date
Evo 91c8958c8b docs(config): document encryption.api_key_hashing.enabled in 01-configuration.md (#1736) (#1757)
* docs(config): document encryption.api_key_hashing.enabled in EN reference

* docs(config): document encryption.api_key_hashing.enabled in ZH reference
2026-04-28 10:19:12 +08:00
Evo fa5aac48dc docs(api): add memory_diff.json to archive directory tree (#1715)
* docs(api): add memory_diff.json to archive directory tree (EN)

Document the memory_diff.json artifact added to history/archive_N/ in #1710 (chenjw). The file is written by Phase 2 memory extraction whenever the update produces non-empty adds/updates/deletes (see openviking/session/compressor_v2.py guard 'if archive_uri and result.has_changes()').

* docs(api): add memory_diff.json to archive directory tree (ZH)

Mirror EN counterpart for #1710 memory_diff.json artifact, ZH 全角标点对齐既有 'Phase 2 写入(后台)' convention.
2026-04-27 22:51:46 +08:00
Qin Haojie 190494aa59 fix(api): tighten public URI validation (#1750) 2026-04-27 21:28:53 +08:00
baojun-zhang 64682ae189 feat(encryption): make apikey hash encryption as single switch (#1736)
* feat(encryption): make apikey hash encryption as single switch

* feat(encryption): add break change note
2026-04-27 19:23:23 +08:00
Qin Haojie 121b6e1cab fix(api): return processing errors as error envelopes (#1744) 2026-04-27 17:49:13 +08:00
Qin Haojie f9cf3cd209 fix(storage): make content writes immediately readable (#1742)
* fix(storage): make content writes immediately readable

* fix(storage): drop legacy write update flags
2026-04-27 17:16:48 +08:00
r266-tech 150479a205 docs(metrics): document otel.service_name and export_interval_ms keys (#1729)
* docs(metrics): document otel.service_name and export_interval_ms keys

* docs(metrics): document otel.service_name and export_interval_ms keys (zh)
2026-04-27 11:04:09 +08:00
Zayn JarvisandClaude Opus 4.7 ac027adba8 fix(docker): collapse persistent state into /app/.openviking (#1728)
* fix(docker): collapse persistent state into /app/.openviking

The Docker image previously crashed on startup when ov.conf was missing,
making it impossible to docker exec in to fix the configuration. This
also forced two separate volume mounts (config + data), which is awkward
on managed platforms that only offer one persistent volume.

Changes:
- Set HOME=/app and put all persistent state under /app/.openviking, so
  the in-container layout mirrors the host's ~/.openviking.
- docker-compose.yml mounts ~/.openviking -> /app/.openviking as a single
  volume that captures ov.conf, ovcli.conf, and the workspace.
- Entrypoint bootstraps ov.conf from OPENVIKING_CONF_CONTENT when set;
  otherwise prints a fix-it message and sleeps until the file exists, so
  the container stays up for docker exec.
- openviking-server init honors OPENVIKING_CONFIG_FILE and derives the
  workspace from its parent directory, so a single env var places init
  output where the server will read it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(docker): describe single-mount layout and no-mount fallbacks

Switch all Docker examples to the new single-volume layout
(~/.openviking -> /app/.openviking) and document the two ways to
configure when bind mounts aren't available: pass the full ov.conf JSON
through OPENVIKING_CONF_CONTENT, or docker exec in and run
openviking-server init while the entrypoint waits for the file.

Updates docs/{en,zh}/getting-started/02-quickstart.md and
docs/{en,zh}/guides/03-deployment.md, including the macOS socat block.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: link

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 10:51:12 +08:00
r266-tech 3b8b35a16c docs(api): add *.larkoffice.com to supported Feishu URL hosts (#1699)
* docs(api): add *.larkoffice.com to supported Feishu URL hosts (en)

* docs(api): add *.larkoffice.com to supported Feishu URL hosts (zh)
2026-04-25 16:00:36 +08:00
Qin Haojie 92f0caa563 fix(docker): resolve image version explicitly (#1698)
Avoid Docker builds defaulting OpenViking package metadata to 0.0.0 and document the required build arg for local image builds.
2026-04-25 10:19:20 +08:00
baojun-zhangandMaojiaSheng 17d2c5603e feat(observability): unify observability context && support otel && etc. (#1666)
* feat(observability): unify OTLP metrics export, log/trace context, and telemetry bridging
- - Add OTLP metrics http/grpc exporter that pushes MetricRegistry snapshots
- - Decouple telemetry response payload from telemetry collection; always finish() and bridge summary to metrics
- - Unify observability config under server.observability (metrics/traces/logs siblings); update ov.conf.example and docs (zh/en)
- - Improve log/trace correlation via structured context injection
- - Add/adjust tests for exporter lifecycle, config loader, metrics/telemetry runtime
- BREAKING CHANGE: remove legacy telemetry.* config path; use server.observability.*

* feat(observability): import Status/StatusCode for LogToSpanEventFilter

* feat(observability): fix check issue

* feat(observability): format code

---------

Co-authored-by: MaojiaSheng <shengmaojia@bytedance.com>
2026-04-24 21:32:25 +08:00
yufeng 4364d64299 Fix docs build and split docs workflows (#1693)
* Fix docs configuration invalid details tags

* Split docs build and deploy workflow

* Separate docs build and deploy reusable workflows
2026-04-24 21:29:25 +08:00
yufeng 8c4867ce97 Fix docs npm registry for release builds (#1690) 2026-04-24 21:00:25 +08:00
yufeng 18e82eebf4 add Copy Markdown button and llms.txt support (#1688)
* feat(docs): add Copy Markdown button, per-page llms.txt, and llms-full.txt

- Add "Copy markdown" dropdown button (top-right of each doc page) with
  Open in GitHub / ChatGPT / Claude actions
- Generate per-page llms.txt at /{page-path}/llms.txt serving raw Markdown,
  plus site-wide /llms.txt index and /llms-full.txt full-content dump
- Add Vite dev middleware so per-page llms.txt works in dev mode without a build step
- Add llms.txt footer link on each doc page pointing to the current page's llms.txt
- Fix dark mode background: replace green-tinted colors with neutral dark palette

* fix(docs): use llms.txt URL pattern for Open in ChatGPT/Claude links

* ci: add manual docs deployment workflow

* Revert "ci: add manual docs deployment workflow"

This reverts commit 6123acaf26.
2026-04-24 20:29:38 +08:00
MaojiaShengandopenviking 85986a91bd fix: apikey security: API Key 管理重构与安全增强 (#1686)
* fix: apikey security

* fix: apikey security

* fix: apikey security

* fix: apikey security

---------

Co-authored-by: openviking <openviking@example.com>
2026-04-24 20:13:36 +08:00
Jiahui Zhou ce090be826 feat(ragfs): add s3 key normalization encoding (#1685) 2026-04-24 19:44:19 +08:00
yufeng d796af4d68 Add VitePress docs site and Pages deployment (#1681)
* Add VitePress docs deployment

* fix docs english home route

* route docs logo to introduction

* route zh docs logo to introduction
2026-04-24 18:00:06 +08:00
Jiahui Zhou 495b7a7616 feat: support trusted admin tenant management (#1616) 2026-04-23 21:35:52 +08:00
r266-tech c5bfdf8bb4 docs(design): sync §4.6 role_id rules with #1643 (passthrough + no server-side format check) (#1657) 2026-04-23 14:56:21 +08:00
r266-tech be0a0c9ae1 docs(filesystem): document write() mode=create (#1608) (#1623)
* docs(filesystem): document write() mode=create (#1608)

* docs(filesystem): document write() mode=create zh (#1608)
2026-04-22 11:47:17 +08:00
Hao ZheandZayn Jarvis 01403312ea feat(vlm): add Codex, Kimi, and GLM VLM support (#1444)
* feat(vlm): add Codex OAuth-backed VLM setup and docs

* fix(codex): address PR review follow-up issues

* feat(vlm): add Kimi and GLM backends

* refactor(vlm): simplify codex auth flow and docs

* fix: update code comments and doctor validation

* chore: update uv.lock after merge

* Refine Codex auth flow and VLM backend integrations

* Take over mirrored Codex auth on refresh

* feat(vlm): refine provider setup and auth flow

* style: format VLM and setup files

* style: fix lint import ordering

* fix(codex): harden auth refresh and disable streaming

* fix(codex): translate tool history and refresh auth safely

* style(lint): fix changed-file ruff violations

* fix(init): refine cloud VLM setup prompts

* style(lint): format setup wizard changes

---------

Co-authored-by: Zayn Jarvis <zhiheng.liu@bytedance.com>
2026-04-22 11:01:23 +08:00
x__dotandjohnny ef2513c3e7 feat(openclaw-plugin): align auth, namespace, and role id handling (#1606)
* feat(plugin): multi-tenant identity, agent scope mode, and resource recall

Made-with: Cursor

* fix(openclaw-plugin): avoid default tenant fallback

* feat(openclaw-plugin): add server auth mode handling

* feat(openclaw-plugin): add server auth mode and canonical namespace config

* feat(openclaw-plugin): propagate sender role id in session writes

* test(openclaw-plugin): add multi-tenant coverage and Chinese report

* docs(openclaw-plugin): update Chinese multi-tenant docs

* fix(openclaw-plugin): align default namespace policy and shared role id logic

* test(auth): drop unintended test_auth changes from plugin PR

* fix(openclaw-plugin): preserve tenant headers for api key root flows

---------

Co-authored-by: johnny <1667704220@qq.com>
2026-04-21 16:02:06 +08:00
Lumos088 7660cbc03a WeChat QR code更新 (#1597)
替换旧的WeChat QR code
2026-04-20 20:21:53 +08:00
MaojiaShengandopenviking 09ab814af5 fix: allow --sudo for ov admin commands (#1589)
* fix: allow --sudo for ov admin commands

* fix: allow --sudo for ov admin commands

* fix: allow --sudo for ov admin commands

* fix: allow --sudo for ov admin commands

---------

Co-authored-by: openviking <openviking@example.com>
2026-04-20 18:55:29 +08:00
r266-tech 750ccdb248 docs(vlm): document timeout config field (#1580) (#1593)
* docs(vlm): document timeout config field (#1580)

* docs(vlm): 补充 timeout 字段说明 (#1580)
2026-04-20 18:53:29 +08:00
r266-tech 67464facb4 docs(en): list dashscope in embedding provider table (#1535) (#1584) 2026-04-20 11:06:28 +08:00
MaojiaSheng b13410546b fix: auth and system cmds (#1545) 2026-04-17 20:04:30 +08:00
A0nameless0man 147f1e3bd3 feat(embedder): add DashScope embedding provider (#1535)
* feat(embedder): 实现 DashScopeDenseEmbedder 双模式嵌入器

* test(embedder): 添加 DashScope 单元测试和集成测试

* feat(config): 添加 DashScope provider 支持、验证和 factory 注册

* docs(embedding): add DashScope provider configuration guide

* fix(embedder): 关闭 DashScope embedder 的 sync/async OpenAI 客户端避免资源泄漏

close() 方法原先仅关闭 httpx 客户端,遗漏了 sync OpenAI 客户端和
async OpenAI 客户端。将两个 async 客户端的清理逻辑合并为单个协程,
复用 event-loop-aware 模式统一处理运行中/无事件循环两种场景。
2026-04-17 18:09:43 +08:00
Qin Haojie cebc45907b feat(session): add account namespace policy and shared sessions (#1356)
* feat(session): add account namespace policy and shared sessions

Unify namespace resolution across filesystem, indexing, and session storage.
Add account-shared session paths, role_id auth semantics, and an HTTP demo
script for the four namespace-policy combinations.

* space

* fix(pack): skip derived semantic files in ovpack transfer

Keep ovpack imports resilient to stale sidecars and rebuild semantics through the normal queue instead of restoring derived files verbatim.

* Revert "fix(pack): skip derived semantic files in ovpack transfer"

This reverts commit f4e4db8401.

* fix(namespace): default legacy accounts to agent-shared policy

Clarify that memory.agent_scope_mode is deprecated and document the supported agent memory migration paths.
2026-04-17 15:12:45 +08:00
baojun-zhang 629fc241e4 feat(metric): add token-full-cycle metric (#1488)
* feat(metric): add token full-cycle metric && support token dashboard && optimize metric guide && deprecated 'server.telemetry.prometheus.enabled' configuration && change metric config to observability.metric

* feat(metric): add token full-cycle metric && support token dashboard && optimize metric guide && deprecated 'server.telemetry.prometheus.enabled' configuration && change metric config to observability.metric

* feat(metric): add debug log

* feat(metric): format code

* feat(metric): format code
2026-04-16 18:22:40 +08:00
Qin Haojie b43cf313f5 docs(api): align reference docs with current server behavior (#1483)
Sync the English and Chinese API reference pages with the current HTTP routes,
request fields, and documented examples so raw API usage matches the server.
2026-04-16 11:19:51 +08:00
yeyitechandyeyitech 232dfbfaee feat(server): add resources-only WebDAV adapter (#1435)
* feat(webdav): add resources-only WebDAV adapter

* style(webdav): fix lint formatting

* fix(webdav): unify put write semantics

---------

Co-authored-by: yeyitech <yeyitech@users.noreply.github.com>
2026-04-15 19:38:38 +08:00
Mingjian QueandGPT-5.4 3b0ac8a0d4 feat: add local llama-cpp embedding support (#1388)
* feat: local llama.cpp embedding support, setup wizard, lazy storage imports, and config singleton deadlock fix

Made-with: Cursor
Co-authored-by: GPT-5.4 <noreply@openai.com>

* fix: remove unsupported custom local gguf setup

---------

Co-authored-by: GPT-5.4 <noreply@openai.com>
2026-04-15 12:03:40 +08:00
Brian Le 0005364cad feat(retrieval): add time filters to find and search (#1429)
* feat(retrieval): add time filters to find and search

* test(retrieval): fix sdk time-filter test header

* chore(retrieval): add missing python license headers

* fix(retrieval): resolve lint failures in time-filter PR

* refactor(retrieval): simplify CLI time filters

* refactor(retrieval): narrow CLI time param helper

* docs(retrieval): clarify time filter merge logic
2026-04-15 11:58:46 +08:00
MaojiaSheng 95cc0f84d0 reorg: split parser layer to 2-layer: accessor and parser, so that we can reuse more code (#1428) 2026-04-15 10:33:12 +08:00
baojun-zhang b441622ee6 feat(metric): add metric system (#1357)
* feat(metric): add metric system

* feat(metric): add metric system

* feat(metric): add metric system

* fix(metric): do not cancel refresh tasks on deadline; trust only authenticated account id; avoid per-scrape rerank clients

* doc(metric): add metric guide doc

* doc(metric): add metric guide doc

* doc(metric): add metric guide doc

* doc(metric): add metric guide doc

* feat(metric): fix bug & change account dimension switch to default true
2026-04-14 20:55:02 +08:00
Qin Haojie b7d50d8dbf feat(filesystem): support directory descriptions on mkdir (#1443)
Allow mkdir callers to initialize .abstract.md at creation time and enqueue L0 directory vectorization immediately.
2026-04-14 18:13:31 +08:00
Yaoyao 91121a579c update new wechat group qr code (#1440)
remove the old one
2026-04-14 16:52:51 +08:00
Qin Haojie 3c2f095c4f fix(volcengine): update default doubao embedding model (#1438)
Align docs, examples, the setup wizard, and telemetry tests with the
current Doubao multimodal embedding model so generated configs keep
referencing the supported default consistently.
2026-04-14 15:51:06 +08:00
caisiriusandClaude Opus 4.6 37e106a958 feat: rerank support extra headers (#1359)
* feat(rerank): add extra_headers field to RerankConfig

Add support for extra_headers configuration in RerankConfig, following the same pattern as EmbeddingConfig and VLMConfig. This allows users to specify custom HTTP headers for OpenAI-compatible rerank providers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add copyright header to test file

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(rerank): OpenAIRerankClient accepts and stores extra_headers

- Add extra_headers parameter to __init__ method
- Add extra_headers to from_config classmethod
- Default to empty dict when extra_headers is None
- Add comprehensive unit tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(rerank): merge extra_headers into API requests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: add `extra_headers` param in doc

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 14:24:52 +08:00
sentisso 7388e4d598 feat: dir ignore support in ovcli.conf (#1393) 2026-04-13 11:14:10 +08:00
MaojiaShengandopenviking a7e5417ef2 reorg: remove golang depends (#1339)
* docs: fix docker deployment

* reorg: remove third_party/agfs

* feat(s3fs): add disable_batch_delete option for OSS compatibility

Port of PR #1333 from Go version to Rust:

- Add disable_batch_delete config option to S3Client
- When enabled, use sequential single-object deletes instead of DeleteObjects
- This is for S3-compatible services like Alibaba Cloud OSS that require
  Content-MD5 for DeleteObjects but AWS SDK v2 does not send it by default
- Add documentation and config example for OSS

* fix(s3fs): pass disable_batch_delete config from Python to Rust

Add disable_batch_delete to the s3_plugin_config dict in _generate_plugin_config
so that the Python config can properly control the Rust S3FS plugin's behavior.

* reorg: remove third_party/agfs

* reorg: remove third_party/agfs

* change some docs

* change some docs

---------

Co-authored-by: openviking <openviking@example.com>
2026-04-10 15:16:29 +08:00
MaojiaShengandopenviking f0c75842d0 docs: fix docker deployment (#1332)
Co-authored-by: openviking <openviking@example.com>
2026-04-09 16:20:36 +08:00
MaojiaSheng d76f3139cb Revert "fix(resources): implement trailing slash semantics for resource URIs …" (#1322)
This reverts commit dec57bde80.
2026-04-09 12:17:09 +08:00
yepper dec57bde80 fix(resources): implement trailing slash semantics for resource URIs (#1321)
add support for trailing slash rules in resource URIs to control file/directory placement
update CLI, API, and documentation to reflect new URI handling semantics
add comprehensive tests for all URI semantics cases
2026-04-09 12:03:04 +08:00
Jiahui Zhou aaaedfe89b docs: add prompt guides in zh and en (#1292) 2026-04-08 13:03:19 +08:00
Yaoyao 7fa6c383bc update wechat group qrcode (#1282)
replace the old one.
2026-04-08 00:03:44 +08:00
baojun-zhang 8271ef362c fix(security): configurable embedding circuit breaker & log suppression (#1277) 2026-04-07 18:27:48 +08:00
Jiahui Zhou 1a3bd31199 feat(auth): Restrict trusted mode without API key to localhost (#1279) 2026-04-07 18:11:39 +08:00
MaojiaSheng 9d74f9ec32 fix: update main when release, and add docker hub push (#1229) 2026-04-05 21:54:55 +08:00