* docs(config): document encryption.api_key_hashing.enabled in EN reference
* docs(config): document encryption.api_key_hashing.enabled in ZH reference
* 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.
* 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>
* 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.
* 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>
* 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.
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.
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.
* 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>
* 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>
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