Commit Graph
539 Commits
Author SHA1 Message Date
Qin Haojie 43a93d7ad9 feat(resource): 支持飞书用户 token 导入 (#2549)
* feat(resource): 支持飞书用户 token 导入

* feat(resource): 支持飞书用户 token watch

* fix(feishu): allow one-time user token imports

* test(feishu): trim redundant token coverage
2026-06-15 16:34:27 +08:00
t0saki aca58bf3b9 feat: TOS release upload + GitHub-free install path for memory plugins (#2575)
* ci: upload source zip and plugin installers to TOS on release

Add a standalone workflow (20. Release TOS Upload) that runs on release
publish (or manual dispatch with a tag for backfill) and uploads:

- the source archive to releases/<tag>/ and releases/latest/
- both memory-plugin install.sh scripts to versioned paths and to
  stable root paths for a China-reachable one-liner URL

Reuses the existing TOS secrets (AK/SK/region/endpoint) with a new
TOS_RELEASE_BUCKET secret so release artifacts stay out of the docs
bucket. Missing secrets skip gracefully (fork-friendly); real upload
failures fail the workflow.

* ci: server-side copy for the latest source zip

* feat(plugins): GitHub-free TOS install path for memory plugins

Domestic users can't reach github.com / raw.githubusercontent.com, so the
existing one-liner installers stall at their step-3 `git clone`. Add a
GitHub-free path that sources everything from Volcengine TOS:

- Both install.sh learn OPENVIKING_REPO_ARCHIVE_URL: when set, fetch the
  source from a zip (curl + unzip) instead of git clone. A
  .openviking-archive-source marker makes re-runs idempotent and refuses
  to clobber a git checkout or unrelated data at REPO_DIR.
- New setup-helper/tos-install.sh bootstrap per plugin: sets the TOS
  archive URL, downloads the real install.sh from TOS to a temp file
  (kept off the stdin pipe so prompts stay interactive), and delegates.
- release-tos.yml uploads both tos-install.sh alongside install.sh.

One-liner for users behind the GFW:
  bash <(curl -fsSL https://ovrelease.tos-cn-beijing.volces.com/claude-code-memory-plugin/tos-install.sh)

The GitHub default path is unchanged; archive mode only activates when
OPENVIKING_REPO_ARCHIVE_URL is set.

* docs: document the TOS (GitHub-free) install path for memory plugins

Main agent-integration docs (zh/en, claude-code + codex) keep the GitHub
one-liner and add the TOS equivalent for regions where GitHub is hard to
reach. The CDN integration cards switch their install one-liner to the TOS
bootstrap only, since that gallery is served where GitHub raw is unreliable.

* docs: trim the TOS install note to one line
2026-06-15 14:20:09 +08:00
Qin Haojie 058cd1f5ea feat(migration): add legacy user-peer migration (#2610)
* feat(migration): add legacy user-peer migration

* test(migration): trim redundant migration tests
2026-06-15 13:21:33 +08:00
Qin Haojie 49e4d76913 feat(core): add actor peer filesystem view (#2594)
* feat(core): enforce actor scoped retrieval

* fix(core): narrow actor peer filtering to retrieval

* fix(core): enforce actor peer filesystem view
2026-06-13 15:49:34 +08:00
Qin Haojie 775e3f1193 feat(search): add context type filter support (#2583) 2026-06-13 11:41:20 +08:00
Qin Haojie fff86058ac feat(core): 支持用户和 peer 级内容目标 (#2564)
* feat(core): support user-scoped content targets

* fix(core): handle scoped skill updates

* fix(core): keep skills user scoped

* chore: drop incidental formatting changes

* fix(storage): revert shared parent existence helper

* docs: update user content target docs

* fix(resource): canonicalize watch cancellation targets
2026-06-12 17:52:44 +08:00
Evo d0bf22c34a docs(cli-setup): document the ov language gate and exit code 2 (EN+ZH) (#2450) 2026-06-11 18:06:06 +08:00
Qin Haojie e06671b351 feat(session): 将 session 存储到 user 命名空间 (#2556)
* feat(session): store sessions in user namespace

* fix(session): tolerate legacy commit body fields
2026-06-11 14:33:00 +08:00
Jiahui Zhou 27e90ad9cd Feature/search telemetry relations control (#2547)
* Add search retrieval telemetry breakdown

* Fix pyagfs helper annotation imports

* docs: document search relation controls and telemetry fields

Document the new include_relations request parameter and the search telemetry summary fields so the API docs stay aligned with the latest retrieval changes.

* refactor(search): drop relation enrichment and trim telemetry

Remove relation fetching from the retrieval path and delete low-value search telemetry fields so retrieval stays simpler and the telemetry summary focuses on actionable diagnostics.
2026-06-10 20:00:47 +08:00
Qin Haojie a6fc0424bc fix(session): apply memory type policy whitelist (#2530)
* fix(session): apply memory type policy whitelist

Restore top-level memory_types filtering for session memory extraction and validate it against enabled registry schemas. Ensure initialization and peer-aware smoke coverage honor the whitelist.

* fix(session): scope session skills to execution memory policy

* refactor(session): remove per-commit memory policy
2026-06-10 14:54:24 +08:00
Mingjian Que 74102b78f0 fix(openclaw): use user namespace for experience recall (#2537) 2026-06-10 14:13:53 +08:00
t0saki 8a3bfb68ff chore(oauth): remove dead push-OTP, repurpose footer to cross-device verify (#2538)
The push-OTP feature (mint an OTP in Studio to hand to an MCP client) was never
wired to a consumer: consume_otp had zero production callers and no endpoint or
grant ever redeemed an OTP. The 'full happy path' test actually exercised the
display_code flow, not OTP. So the sidebar footer's 'OAuth setup' entry minted a
code with nowhere to use it — dead, confusing UX.

Remove it end-to-end and repurpose the footer slot into an entry for the
cross-device verify page (enter the 6-char display_code), which previously had no
discoverable entry point in Studio.

Frontend:
- delete oauth-setup-dialog.tsx + /oauth/setup route (+ routeTree, i18n)
- extract CrossDeviceVerifyForm from verify.tsx; add CrossDeviceVerifyDialog
- footer 'OAuth verify' entry opens the verify dialog (desktop) / page (mobile)

Backend:
- drop issue_otp route + OTPRequest/OTPResponse, storage insert_otp/consume_otp,
  oauth_config.otp_ttl_seconds, and the OTP-specific tests
- keep otp.py generate_otp (cross-device display_code) + hash_secret, the shared
  _atomic_consume_code, and the oauth_codes.kind column
- convert the race/expiry/revoke/GC storage tests to auth-code rows

Docs: update 11-oauth, 06-mcp-integration, and the design doc to reflect removal.
2026-06-10 12:52:54 +08:00
Mingjian Que 790daaf885 feat(openclaw): inject agent experience memories (#2281) 2026-06-10 10:43:41 +08:00
Evo c4589a3c58 docs(api): document memory_policy (self/peer memory isolation) on create_session & commit (#2236) (#2479)
* docs(api): document memory_policy (self/peer memory isolation) on create_session & commit (#2236)

* docs(api): document memory_policy (self/peer memory isolation) on create_session & commit (#2236)
2026-06-09 14:29:10 +08:00
Evo a9b72351df docs(config): document allow_private_networks and code-hosting domain allowlist (#2483) 2026-06-08 20:33:49 +08:00
Lumos088 3e59e5c703 Add files via upload (#2510) 2026-06-08 17:25:18 +08:00
1c0bbcdf0e feat(cli): add query planner setup to init wizard (#2485)
* feat(cli): add query planner setup to init wizard

Let `openviking-server init` configure the optional lightweight
query_planner model. The wizard pulls the chosen Ollama model and writes
the query_planner config; the IntentAnalyzer selects the matching prompt
at retrieval time via a model->prompt-id mapping, so no prompt files are
copied and no prompts.templates_dir override is needed.

- intent_analyzer: QUERY_PLANNER_PROMPT_BY_MODEL maps the fine-tuned SFT
  models to their bundled prompt id; unmapped models keep the default
  retrieval.intent_analysis prompt.
- bundle retrieval/ov_intent_analysis_sft_v4.yaml (loaded by its own id).
- ollama detection + doctor now recognize query_planner Ollama usage.
- docs: describe the init flow and runtime prompt selection.

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

* feat(cli): offer query planner on all paths, recommend it with an Ollama VLM

The init wizard offers the lightweight query planner after model setup. When the
chosen setup already uses an Ollama VLM (`ollama_running` is not None) the
planner rides on that running Ollama at near-zero extra cost, so the enable
prompt is tagged "(recommended)" and defaults to yes. For cloud / non-Ollama VLM
setups it is still offered, but defaults to no and drops the recommendation;
opting in there runs the Ollama install flow.

The Ollama state established during model setup is threaded through the wizard so
the planner reuses it instead of re-running the install dialog:

- `_wizard_ollama` / `_wizard_llamacpp` return `(config, ollama_running)`.
- `run_init` forwards that state to `_wizard_query_planner`.

Docs (zh/en) and tests updated accordingly.

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

---------

Co-authored-by: guoxuter <j7azwflq4h@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 17:12:05 +08:00
Lumos088 30fe67b747 Add files via upload (#2506) 2026-06-08 15:57:46 +08:00
Lumos088 31b489b948 Create .gitkeep (#2502) 2026-06-08 14:12:35 +08:00
Lumos088 56e532f453 Create .gitkeep (#2501) 2026-06-08 14:12:23 +08:00
baojun-zhang 7ee1481e1d feature(storage): support multi write storage (#2466)
* feature(storage): support multi write storage

* refactor(storage): simplify multiwrite logic and consolidate test helpers

* refactor(storage): extract multibackend and shape modules and tighten multi-write wrapper boundaries

* refactor(storage): refactor write pipeline
2026-06-08 11:12:15 +08:00
Lumos088 c4aa8aec35 Add files via upload (#2474) 2026-06-06 13:34:58 +08:00
t0saki 7237ac611c fix(plugins): skip shell aliases when wrapping extra launch commands (#2471)
Adding a shell-alias name (e.g. `cc` from `alias cc=claude`) to
OPENVIKING_CC_WRAP_EXTRA / OPENVIKING_CODEX_WRAP_EXTRA broke the wrapper:
bash expands the alias mid-eval and clobbers the base `claude`/`codex`
function (so `command cc` ends up running the C compiler), while zsh
aborts with a parse error on every shell start. Guard the wrapper-defining
loop to skip names that are already shell aliases — an alias already
routes through the base wrapper once it expands, so it needs no function.
Also reject heads starting with `-`, which `alias`/`command` would
otherwise misparse as an option.

Also document the custom-launch-command feature and the alias guidance:
- 8 agent-integration docs (en/zh main + CDN cards): brief install note,
  plus two troubleshooting rows (wrapper-not-sourced, alias gap)
- claude/codex plugin READMEs (+ README_CN, which was missing the section
  entirely): wrap the real target command, never the alias name
2026-06-06 12:40:14 +08:00
Evo 863f68db97 docs(openclaw): document autoRecallTimeoutMs config in integration guide (#2391) (#2472)
* docs(openclaw): document autoRecallTimeoutMs config in integration guide (#2391)

* docs(openclaw): document autoRecallTimeoutMs config in integration guide (#2391)
2026-06-06 10:17:44 +08:00
yufeng 5a526322e9 docs: fix claude code image doc anchors (#2470) 2026-06-05 20:42:58 +08:00
Guoxuterandguoxuter 827d74db4d docs: recommend ov_intent_analysis_sft v4_q8 for query_planner (#2467)
Co-authored-by: guoxuter <j7azwflq4h@gmail.com>
2026-06-05 19:24:44 +08:00
Hao Zhe ed2e5483c5 feat(cli): rename config providers (#2463)
* feat: rename ov config providers

* fix: align config provider JSON labels
2026-06-05 18:24:41 +08:00
Zayn Jarvis 6b3d261b61 docs: remove stale agent header references (#2462) 2026-06-05 17:27:07 +08:00
t0saki 0f6160edaf docs: refresh Claude Code & Codex memory plugin integration docs (#2457)
* docs: refresh Claude Code & Codex memory plugin integration docs

- Fix dead anchor #1-wrap-claude-to-inject-env-from-ovcliconf -> #configuring-mcp
  in the Claude Code manual setup (zh/en agent-integrations + CDN cards)
- Add the post-install wrapper activation step (source .../wrapper.sh) to the
  Claude Code docs, and make Codex's activation shell-agnostic
  (source ~/.zshrc -> source .../codex-memory-plugin/setup-helper/wrapper.sh)
- Rewrite Claude Code manual step 1 to the guarded `source wrapper.sh` form
- Convert Claude Code "How it works" into a lifecycle bullet list
- Language polish pass across all eight Claude Code / Codex docs
- Sync docs/images/agents/zh/index.json summaries with the refreshed intros

* docs: foolproof the verify step against an inactive wrapper

Add a guard note to the Verify section of every Claude Code / Codex doc:
if `type claude` / `type codex` prints a path instead of "shell function",
the wrapper isn't active, so re-source it (or open a new terminal) before
launching — otherwise Claude Code silently connects to 127.0.0.1 with no
auth, and Codex starts without OPENVIKING_API_KEY and reports
"MCP server is not logged in". For Claude Code, also state explicitly to
launch `claude` from the terminal where the wrapper is active.

Applies to all eight surfaces (zh/en, agent-integrations guides + CDN cards).
2026-06-05 15:52:39 +08:00
Zayn Jarvis c7f82cceaa docs: fix dead external links (#2458) 2026-06-05 15:50:10 +08:00
Qin Haojie 34682c8aae fix(resources): avoid remote preflight for non-git imports (#2459)
Keep full background add-resource tasks limited to Git repositories so anti-crawler HTTP pages are parsed by the normal importer instead of failing during early source validation.
2026-06-05 15:37:48 +08:00
Hao Zhe 167215aff1 docs(cli): improve CLI agent setup flow (#2451)
* docs: improve CLI agent setup flow

* docs: clarify CLI setup placeholders

* docs: add CLI stdin and language verify notes

* docs: clarify CLI language setup check
2026-06-05 14:27:47 +08:00
Lilimamama 5913120e5c Update agent-cli.md (#2447) 2026-06-05 11:31:49 +08:00
Qin Haojie ff258768c2 feat(memory): 引入 User/Peer 记忆隔离模型 (#2236)
* feat(memory): introduce user and peer memory isolation

Unify agent-scoped memory behavior into user-owned memory spaces, add peer_id compatibility for session and retrieval paths, and wire memory_policy through session commit flows.

* feat(memory): align session identity around peer IDs

* feat(search): pass peer id through retrieval

* refactor(memory): remove agent identity from integrations

* fix(memory): isolate peer identity from self extraction

* fix(tau2): provision benchmark user configs

* fix(auth): allow admin keys to access data APIs

* fix(openclaw): enable peer memory policy for peer roles

* fix(openclaw): resolve sender for peer recall

* refactor(session): simplify memory extraction routing

* refactor(ov-cli): reduce formatting-only diff

* refactor(message): remove unused message helpers

* refactor(retrieval): simplify peer target resolution

* refactor(namespace): remove deprecated agent namespace policy

* fix(agent): propagate peer id through integrations

* fix(auth): align integration clients with api-key mode
2026-06-05 10:55:48 +08:00
yufeng f627a09662 docs: fix Claude agent documentation links (#2443) 2026-06-04 21:36:52 +08:00
Jiahui Zhou 226ce46539 Skip process lock (#2442)
* feat: add config to skip process lock

* docs: clarify multi-instance deployment config
2026-06-04 20:39:22 +08:00
Qin Haojie 72ec6f9287 feat(resources): persist async add-resource tasks (#2433)
* feat(resources): persist async add-resource tasks

* fix(cli): surface add-resource API errors

* fix(resources): fail async task on queue errors
2026-06-04 20:14:09 +08:00
Hao Zheandhaozhelee 7c0f8b7157 docs(cli): add CLI setup guide for manual and agent-assisted config (#2304)
* docs: add OpenViking CLI setup guide

* docs(cli): expand CLI setup guide for agents

* docs(cli): document config automation contract

* docs(cli): clarify config list JSON output

* docs(cli): clarify VolcEngine cloud endpoint

* docs(cli): improve VolcEngine API key guidance

* docs(cli): prefer stdin for agent-held keys

---------

Co-authored-by: haozhelee <haozhelee@bytedance.com>
2026-06-04 19:59:11 +08:00
Evo bebfa7d837 docs(roadmap): fix dead Contributing link (404) in EN+ZH roadmap (#2322)
Retarget [Contributing](contributing.md) -> root CONTRIBUTING.md / CONTRIBUTING_CN.md GitHub blob URL; the docs/{en,zh}/about/contributing.md target does not exist.
2026-06-04 18:02:43 +08:00
Evo 89bdcabcd1 docs(api): document keep_recent_count param on commit() (#2284) (#2315)
* docs(api): document keep_recent_count param on commit() (#2284)

* docs(api): 文档化 commit() 的 keep_recent_count 参数 (#2284)
2026-06-04 17:59:40 +08:00
Evo 7c898855a7 docs(changelog): add v0.3.20-v0.3.23 entries (EN+ZH) (#2316)
* docs(changelog): add v0.3.20 and v0.3.21 entries (EN+ZH)

* docs(changelog): add v0.3.20 and v0.3.21 entries (EN+ZH)

* docs(changelog): add v0.3.22 and v0.3.23 entries (EN+ZH)

Extends this PR to the current Latest release. v0.3.22 (2026-05-29) and v0.3.23 (2026-06-03) both shipped after v0.3.21, but the canonical changelog stopped at v0.3.19 before this series. Entries mirror the existing Highlights / Upgrade Notes / Full Changelog format, condensed from the official release notes.
2026-06-04 17:59:13 +08:00
yufeng b779a5d3ea docs: remove broken agent doc links (#2436) 2026-06-04 17:47:20 +08:00
Evo 53aa0ca1ca docs(api): add cached_tokens/reasoning_tokens to get_session() llm_token_usage example (#2328)
* docs(api): add cached_tokens/reasoning_tokens to get_session() llm_token_usage example

* docs(api): add cached_tokens/reasoning_tokens to get_session() llm_token_usage example
2026-06-04 17:44:32 +08:00
baojun-zhang 7e43428f04 refactor(storage): deprecated and remove agfs http mode client (#2425)
* refactor(storage): delete agfs http mode client

* refactor(storage): refactor protocol to support diff return type

* refactor(storage): refactor code format from lint
2026-06-04 17:36:43 +08:00
Lilimamama 925cbcfcfa docs(agents): sync latest zh follow-ups and fix agent-cli rendering (#2432)
* Update agent-cli.md

优化文档 cli agent内容

* Update cli.md

优化文档内容

* Update hermes.md

优化 API Key 展示

* docs(agents): sync latest zh guide follow-ups to en
2026-06-04 16:06:51 +08:00
Lilimamama fe4dfa0bce docs(agents): sync en agent guides with current zh docs (#2423)
* docs(mcp): remove bearer note and sync en page

Remove the Bearer-prefix note from the zh MCP page and update the en MCP page to match the current zh structure and health-check example.

* docs(agents): sync remaining en guides with zh

* docs(trae): fold rollback into en sync PR

* docs(cursor): remove faq divider in zh and en

* docs(agents): remove claude and mcp page titles
2026-06-03 20:38:29 +08:00
Lilimamama 02fc47a51d docs(agents): rebase latest unsubmitted fork follow-ups (#2419)
Reapply the cli, mcp, and trae guide follow-up edits on top of the latest upstream main to resolve merge conflicts in PR #2419.
2026-06-03 19:42:07 +08:00
Lilimamama 18fe003fc3 docs(agents): consolidate all unsubmitted zh fork edits (#2416)
Combine the unsubmitted fork edits from patch-6, patch-12, patch-13, patch-14, patch-16, patch-17, and patch-18 into a single PR. The hermes update from patch-15 is already subsumed by patch-6.
2026-06-03 18:19:34 +08:00
Lilimamama e05216e5db docs(agents): batch update zh setup guides (#2413)
Combine the documentation updates from PRs #2397, #2398, #2399, #2400, #2401, #2402, #2403, #2404, and #2406 into a single PR.
2026-06-03 17:04:43 +08:00
Evo 547492bd57 docs(quickstart): note /studio is served by pip/pipx server installs since v0.3.21 (#2407) 2026-06-03 16:14:56 +08:00