Commit Graph
163 Commits
Author SHA1 Message Date
t0saki 6f10e26361 perf(plugins): batch add-message writes and shared async detach across memory plugins (#3261)
* Batch add-message writes across memory plugins

* fix(plugins): stop batch enqueue at first failure and bump plugin versions

Keep pending-queue entries a contiguous prefix when a mid-stream enqueue
fails: consumers mark the first sent+queued payloads as captured, so a
queued entry after a gap could silently drop the gapped message.

Bump claude-code 0.4.3, codex 0.7.3, opencode 0.2.3, cursor/trae 0.1.2 so
existing installs pick up the batch write path.
2026-07-15 18:20:10 +08:00
huangruitengandhuangruiteng 6de1cd2c6e test(oc2ov): fail fast on empty OpenClaw output (#3250)
Co-authored-by: huangruiteng <huangruiteng@bytedance.com>
2026-07-15 11:02:37 +08:00
Qin Haojie 161fbab22c docs: disclose agent provenance in contribution templates (#3216) 2026-07-13 15:01:30 +08:00
yufeng 91a8f03084 docs: add tabbed API examples (#3185)
* docs: add tabbed API examples

* docs: move llms actions to page header

* docs: make content layout responsive

* docs: split guide navigation sections

* docs: regroup agent and migration guides

* docs: add wide-screen page gutters

* fix: address API docs review findings

* fix: address API docs review findings

* fix: harden API example tabs

* fix: harden tabbed API documentation

* fix(docs): hide unavailable llms actions

* fix(docs): group API examples into tabs

* fix(docs): preserve localized response tabs
2026-07-13 10:00:52 +08:00
yufeng 5bfa9b617e fix: align TypeScript SDK with server contracts (#3159)
* fix: align TypeScript SDK with server contracts

* fix: harden TypeScript SDK contracts

* fix: handle Node image references safely

* fix: make OVPack downloads atomic
2026-07-11 22:24:16 +08:00
LinQiang391 e123bbc0ec ci: restore token-based ClawHub release workflow (#3160) 2026-07-11 18:20:05 +08:00
yufeng 0536e6897b feat: add JavaScript and TypeScript SDK (#3147)
* feat: add JavaScript and TypeScript SDK

* fix: align TypeScript SDK contracts
2026-07-11 16:06:42 +08:00
t0saki 9cf42405a8 fix(installer): avoid silent exit after harness selection (#3128) 2026-07-10 22:57:21 +08:00
Yuanqing ZHAOandYuanqing Zhao 7e6a0515f9 perf(cuvs): optimize filters, rebuilds, concurrency, and memory (#3092)
* perf(cuvs): fast-path cached native filter routes

* perf(cuvs): parallelize auto filter preflight

* perf(cuvs): add search route telemetry

* test(cuvs): use a valid telemetry vector dimension

* perf(cuvs): reuse native filter preflight results

* perf(cuvs): allow concurrent snapshot searches

* perf(cuvs): coalesce optional background rebuilds

* perf(cuvs): coordinate per-GPU build admission

* perf(cuvs): add opt-in float16 search

* build(cuvs): support vector benchmark harnesses

* perf(cuvs): bound concurrent GPU searches

* perf(cuvs): avoid partial background rebuilds

* fix(cuvs): address rebuild and telemetry review feedback

* fix(cuvs): defer rebuild until index initialization

---------

Co-authored-by: Yuanqing Zhao <2604121+yuanqingz@users.noreply.github.com>
2026-07-10 17:22:34 +08:00
yufeng d14dd69665 feat: add Cursor and TRAE memory integrations (#3109)
* feat: add Cursor and TRAE memory integrations

* fix: install Cursor plugin from shared command

* refactor: share Cursor and TRAE integration runtime

* fix: migrate legacy OpenViking MCP entry

* docs: simplify Cursor and TRAE setup guides

* fix: harden Cursor and TRAE memory integrations

* refactor: standardize Cursor and TRAE integrations

* refactor: clarify Cursor and TRAE hook entrypoints

* fix: address Cursor and TRAE integration review
2026-07-10 16:57:19 +08:00
t0saki c43e22d705 ci(release): add controlplane MCP PyPI release workflow (#3117)
Manual-dispatch workflow that builds mcp-server-openviking-controlplane
(MCP server + ov-cp CLI) from an explicit ref of an external source repo
(default volcengine/mcp-server, subdirectory
server/mcp_server_openviking_controlplane) and publishes it to
TestPyPI/PyPI via the existing trusted-publishing environments.

Requires a one-time pending-publisher registration on (Test)PyPI binding
the project name to this repo + workflow file + environment.
2026-07-10 16:53:00 +08:00
t0saki 2a81edc707 Add workspace peer mode for memory plugins (#3099) 2026-07-09 17:53:36 +08:00
t0sakiandZaynJarvis 85b9878be3 feat(pi): add OpenViking context takeover (#3081)
Co-authored-by: ZaynJarvis <31875147+ZaynJarvis@users.noreply.github.com>
2026-07-08 20:15:16 +08:00
t0saki b511d91ee5 feat(plugins): retrofit OpenCode and pi memory integrations (hybrid MCP, shared lib, 4-harness installer) (#3079)
* feat(plugins): align opencode and pi memory integrations

* fix(installer): tolerate missing optional harness CLIs

* fix(installer): install opencode file wrapper

* fix(opencode): import path for logger initialization

* fix(installer): register pi extension after copy

* feat(plugins): use MCP for opencode integration

* docs: move OpenCode and pi integrations to dedicated pages

Promote the OpenCode plugin and pi extension out of the community-plugins
page into their own numbered agent-integrations pages (10-opencode, 11-pi,
en + zh), update the overview routing table, and refresh the OpenCode image
cards to the hybrid MCP architecture (unified installer, openviking_* MCP
tools, ovcli.conf credentials).

* docs: bare TOS installer commands and reference more examples

Drop --harness from TOS-mirror install commands (image cards use the bare
installer URL, matching the claude-code/codex cards); add Open WebUI tool
server and an examples/ pointer to the community-plugins page (en + zh).

* docs: bare TOS installer commands across agent-integration pages

TOS-mirror install commands carry no flags anywhere; the installer wizard
asks for source, harnesses, language, and credentials.
2026-07-08 15:54:37 +08:00
Jiahui Zhou a39b60dcae fix: isolate component release workflows (#2975) 2026-07-08 15:28:05 +08:00
Yuanqing ZHAOandYuanqing Zhao 4d92cd875e ci: add cuVS post-merge regression guards (#3065)
Co-authored-by: Yuanqing Zhao <2604121+yuanqingz@users.noreply.github.com>
2026-07-08 11:20:02 +08:00
t0saki f905562534 feat(plugins): stdio MCP proxy, remote marketplace install, and type-quota recall for memory plugins (#3039)
* feat: add memory plugin mcp harness

* refactor: vendor shared memory plugin modules

* feat: add type quota recall api

* feat: commit codex memory by token threshold

* feat: capture codex tool calls as parts

* feat: add claude skill experience recall

* chore: fix lint in type quota recall server files

* feat: remote marketplace install with unified openviking naming

- Fix root .claude-plugin/marketplace.json git-subdir discriminator key
  ("type" -> "source"); claude plugin validate now passes.
- Unified installer gains --source remote|archive|dev: remote registers a
  synthesized git-subdir marketplace for Claude Code and a git marketplace
  for Codex (no repo clone); archive consumes the slim TOS marketplace zip;
  dev registers the checkout's examples/ directory for both harnesses.
- One marketplace name (openviking) across all modes and harnesses, so the
  plugin id is always openviking-memory@openviking; installer migrates old
  openviking-plugins-local registrations and config.toml sections.
- Restore legacy Claude Code (<2.0) support: claude mcp add (stdio proxy)
  plus node-based hooks merge into ~/.claude/settings.json.
- Restore optional statusline registration (fetches sources on opt-in).
- Checkbox TUI harness selection via /dev/tty with non-tty fallback.
- Add examples/.agents/plugins/marketplace.json so Codex directory installs
  drop the synthetic symlink marketplace.
- Add shared setup wizard (scripts/setup.mjs) for pure-marketplace installs.
- release-tos.yml: upload memory-plugin-shared/install.sh and build/upload
  the memory-plugin-marketplace zip; tos-install.sh prefers it and pins all
  fetches to TOS via OPENVIKING_SHARED_INSTALL_URL.
- CI: bash -n on installer scripts; marketplace contract tests updated.

* fix(installer): register Claude remote marketplace as a directory

File-type marketplaces (bare marketplace.json path) make Claude Code derive
a wrong installLocation and 'marketplace update' fails with EISDIR. Write
the synthesized manifest to <dir>/.claude-plugin/marketplace.json and add
the directory instead; compare registered sources by exact match so the
old file registration migrates cleanly.

* feat(statusline): show model name and native-style context percentage

A custom statusLine replaces Claude Code's native line including its context
indicator, so reproduce it from the statusline stdin payload: 'Fable 5 ·
ctx 42%' right after the health segment, with native color thresholds
(<70% dim, 70-89% yellow, >=90% red). Falls back from used_percentage to
remaining_percentage to token counts, and stays visible in bypass mode
since it describes the CC conversation, not OV. Opt out with
OPENVIKING_STATUSLINE_CTX=off. Line cap raised 80 -> 100 visible chars.

* fix(installer): keep checkout progress off stdout in plugin_dir_on_disk

Callers capture the function's stdout, so ensure_checkout's info lines were
concatenated into the statusline command registered in settings.json.

* fix(installer): re-register codex git marketplace instead of upgrading

Codex doesn't expose which --ref a git marketplace was added with, and
'marketplace upgrade' refreshes the old ref — so a URL match must not skip
re-registration or a ref override installs the wrong snapshot. Also remove
the stale pre-unification plugin cache directory during migration.

* fix(installer): include .agents in codex sparse checkout

A plugin-dir-only sparse checkout omits the repo-root marketplace manifest
and fails with 'marketplace root does not contain a supported manifest'.
Adding --sparse .agents keeps the snapshot slim (~7.5M vs full repo).

* feat(installer): bilingual prompts, dist channel selection, and TOS git marketplace for codex

- Interactive language selection (English/中文, --lang, auto-detected from
  locale); every user-facing prompt is bilingual.
- Download-source selection (--dist github|tos, prompted interactively):
  github keeps the remote marketplaces; tos serves GitHub-blocked regions.
- Credentials step now always shows the current ovcli.conf values (masked
  key) and offers keep-or-reconfigure instead of silently reusing them.
- Codex on TOS installs from a TOS-hosted git repo over dumb HTTP and keeps
  remote updates (codex plugin marketplace upgrade); falls back to the
  archive directory if the repo is unavailable. release-tos.yml builds and
  uploads the single-commit bare repo (repack + update-server-info).
- Claude Code on TOS warns that directory marketplaces cannot auto-update.
- tos-install.sh bootstraps shrink to TOS_BASE + --dist tos.
- Docs (READMEs, agent-integrations pages, image cards, en+zh) now all use
  the single shared installer and drop the deleted wrapper instructions.

* feat(installer): unify all choice prompts on an arrow-key TUI menu

Language, download source, connection mode, keep-or-reconfigure
credentials, statusline enable/replace, and legacy-mode confirmation all
render as the same single-select menu (arrow keys / digit shortcuts /
enter, radio-style highlight) instead of mixed numbered and y/N prompts.
Falls back to numbered input when /dev/tty can't be drawn on and to the
default choice when non-interactive. Free-text fields (URL, API key) stay
line inputs; the harness picker keeps its checkbox multi-select.

* fix(installer): stop piping plugin lists into grep -q under pipefail

grep -q exits on first match and SIGPIPEs the producer, so with pipefail
the 'codex plugin list | grep -q' check read as a miss every time (codex's
list is long; claude's short list masked the bug). Capture the output and
substring-match in bash instead — validation no longer false-warns.

Also: drop the stdio-proxy line from the Done summary; always offer the
install-source menu unless --dist/--source was given (with a checkout the
menu gains a dev option and defaults to it); surface the Claude-on-TOS
no-auto-update warning at source resolution instead of after install.

* fix: unignore examples/memory-plugin-shared/lib and commit the shared modules

The Python build-artifact 'lib/' gitignore rule silently swallowed the
shared plugin module source, so CI checkouts had only the vendored copies
and sync.test.mjs failed with ENOENT on the source directory.

* fix(recall): budget summary/uri fallbacks and sanitize non-finite scores

max_chars is the recall API's contract, but only full fragments counted
toward it — VikingBot's client-side heuristic, faithfully ported, lets
summary and uri fallbacks render far past the budget (repro: max_chars=100
rendered 548 chars). Every fragment now counts; oversized summaries degrade
to uri fragments and entries that can't even fit a uri line are dropped
(reported via stats.dropped). VikingBot itself is intentionally unchanged.

Also run _sanitize_floats over the /recall response like the neighboring
/find and /search routes, so inf/nan scores return 0.0 instead of a 500.
2026-07-07 12:33:59 +08:00
t0saki 1352096b0c feat(docs): add page-view + referrer + search tracking via Viewer-Counter (#2982) 2026-07-03 16:10:25 +08:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> a90e298f2e chore(deps): bump openclaw/clawhub/.github/workflows/package-publish.yml (#2964)
Bumps [openclaw/clawhub/.github/workflows/package-publish.yml](https://github.com/openclaw/clawhub) from 0.12.0 to 0.23.1.
- [Release notes](https://github.com/openclaw/clawhub/releases)
- [Changelog](https://github.com/openclaw/clawhub/blob/main/CHANGELOG.md)
- [Commits](https://github.com/openclaw/clawhub/compare/v0.12.0...v0.23.1)

---
updated-dependencies:
- dependency-name: openclaw/clawhub/.github/workflows/package-publish.yml
  dependency-version: 0.23.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-02 20:15:08 +08:00
Zayn Jarvis 862d35f598 fix(opencode-plugin): allow tokenless npm publish (#2814) 2026-06-25 14:33:56 +08:00
Zayn Jarvis e43a4c5e6e ci(opencode-plugin): publish scoped npm package (#2807)
* fix(opencode-plugin): use js source install wrapper

* ci(opencode-plugin): publish scoped npm package
2026-06-24 21:21:57 +08:00
Zayn Jarvis ad4ccb8a75 feat(ci): drop lint PR check (#2800) 2026-06-24 14:02:36 +08:00
Hao Zhe 5c7c865a0a ci(cli): initialize language before version check (#2787) 2026-06-23 16:30:47 +08:00
Jiahui Zhou 5a433e5a75 docs: add release guide and align SDK tag format (#2765)
* docs: add release guide and align SDK tag format

* fix: restrict main package release tag discovery

* fix: constrain CLI version tag discovery
2026-06-22 17:15:31 +08:00
Jiahui Zhou 02f06488f3 feat: extract standalone python http sdk (#2736)
* feat: extract standalone python http sdk

* fix(python-sdk): restore ovcli.conf compatibility

fix(python-sdk): restore compatibility and lazy-load sdk

fix(python-sdk): restore legacy http client compatibility

docs(python-sdk): add chinese readme
2026-06-22 14:03:05 +08:00
Jiahui Zhou 6240d0220e Security/harden pr review workflow (#2760) 2026-06-22 11:22:35 +08:00
Hao Zhe b1712aab28 fix(docs): localize OpenViking search UI (#2711) 2026-06-18 18:57:20 +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 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 5752ceb8fb docs: add general agent integration guides (#2354)
* docs: add general agent integration guides

* docs: remove ai generated notes from agent guides

* docs: add localized agent integration assets
2026-06-01 15:55:03 +08:00
Zayn Jarvisandlouise 1f0b259ddd fix(build): bundle Studio assets in release wheels (#2320)
* fix(build): require studio assets in release wheels

* fix(build): remove studio build require flag

---------

Co-authored-by: louise <louise@zayn.local>
2026-05-30 15:26:01 +08:00
yufeng c6adb15c31 docs: add cursor agent guide and asset headers (#2310) 2026-05-29 19:45:16 +08:00
yufeng 18897e46d2 docs: add agent integration assets (#2306)
* docs: add agent integration assets

* ci: disable cache for agent assets
2026-05-29 16:33:06 +08:00
kaisongli 7673516f97 fix: stabilize API & CLI integration tests in CI (#2105)
1. Skip find/add_skill tests on 401/500 when embedding unavailable
   - PR CI (fork repos) cannot access VLM/Embedding API keys, causing
     embedding service to return 401/500 with dummy keys
   - test_response_types.py: skip test_find_response_types on 401
   - test_skill_api.py: skip add_skill tests on 500, find tests on 401
   - build_test_helpers.py: skip assert_resource_findable on 401

2. Run CLI tests serially to avoid CONFLICT and timeout
   - CLI tests share session-scoped fixtures (test_dir_uri, test_pack_uri)
   - Concurrent workers cause CONFLICT Resource is busy and timeout errors
   - Remove -n 4 from CLI compatibility and integration test steps

3. Reduce parallelism in effect tests to avoid server overload
   - Lightweight tests: -n 4 -> -n 2
   - Heavy tests: -n 2 -> serial (resource-intensive operations)
2026-05-18 14:03:33 +08:00
kaisongli 59c70bdbf1 feat: add new API test cases and fix memory v2 test reliability (#2097) 2026-05-18 11:28:05 +08:00
yufeng 090b18e459 fix(docs): upload clean URL aliases to TOS (#2055) 2026-05-15 18:12:24 +08:00
kaisongli d7ef4a04a1 feat: add CLI integration tests, deduplicate oc2ov_test, and extend CI pipeline (#2061)
- Add CLI integration tests (10 test files under tests/cli/)
- Extend api_test.yml with CLI install + test steps
- Run filesystem + scenarios/resources_retrieval serially to avoid 409 conflicts
- Other tests parallel with -n 4
- Add release prereleased trigger to api_test.yml and api_test_effect.yml
- Deduplicate oc2ov_test P0 cases (20→12, ~30-55min saved):
  - Delete test_memory_write.py (covered by V2 suite)
  - Remove events/tools from V2 suite (structurally identical to entities/skills)
  - Remove test_memory_read_verify (covered by V2 suite)
  - Remove test_cross_session_recall (overlaps with recall_explicit_search)
- Add ensure_resources_dir fixture to prevent NOT_FOUND on fresh environments
- Add retry logic for 429/500/403 rate-limit in api_client.py
- Add retry for commit when task_id is None in test_memory_v2_full_suite.py
- Add exponential backoff retry for GitHub platform test 5xx errors
2026-05-15 14:05:26 +08:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 2e7a23e06a chore(deps): bump actions/setup-node from 4 to 6 (#2048)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-14 20:11:15 +08:00
Zayn Jarvis 4c014c86b0 chore: use npm trusted publishing for CLI (#1995) 2026-05-12 19:32:55 +08:00
Zayn Jarvis c5426ddfb9 ci(rust-cli): build linux artifacts with musl static linking (#1979) 2026-05-12 13:19:12 +08:00
43086161d2 feat(cli): publish native CLI to npm on tag push (#1944)
Replace GitHub Release with npm publishing for CLI tags (cli@*).
Each tag triggers: build 5 platform binaries → publish platform-specific
@openviking/cli-{os}-{arch} packages → publish @openviking/cli wrapper.

- Add npm/cli/ wrapper package with postinstall help message
- Generate platform packages in CI from build artifacts
- Remove GitHub Release and artifact upload from CLI workflow

Required GitHub secret: NPM_TOKEN

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: MaojiaSheng <shengmaojia@bytedance.com>
2026-05-12 11:24:38 +08:00
yufeng 420669a5ea Set docs TOS cache headers (#1976) 2026-05-12 10:01:31 +08:00
LinQiang391andLinQiang391 72a3cd29f0 feat(openclaw-plugin): support OpenClaw install and ClawHub release flow (#1904)
Squashes OpenClaw plugin install compatibility, setup helper source-build support, built dist output, and ClawHub release workflow updates into one publish commit.

Co-authored-by: LinQiang391 <linqiang391@users.noreply.github.com>
2026-05-08 17:38:04 +08:00
yufeng 9b3b47a593 ci: deploy VitePress docs to TOS (#1897)
* ci: deploy docs to TOS

* ci: avoid listing TOS bucket during docs deploy

* ci: use virtual-hosted TOS uploads
2026-05-08 10:49:01 +08:00
Zayn JarvisandClaude Opus 4.6 8f140fb12a fix(ci): remove duplicate docs deploy from release workflow (#1798)
The deploy-docs job in release.yml triggered on release events, but
github-pages environment protection rules only allow deployments from
the main branch — not from tags like v0.3.13. This is also redundant
since docs.yml already deploys on push to main.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 17:11:54 +08:00
Zayn JarvisandClaude Opus 4.6 523d6c5967 fix(docs): deploy docs on PR merge to main (#1792)
* fix(docs): deploy docs on PR merge to main

The push trigger and deploy job were removed in #1778, leaving docs
unable to auto-deploy when PRs touching docs/ merge to main.

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

* fix(docs): add PR build check alongside deploy on merge

1. PR: run docs build to catch broken markdown before merge
2. Push to main / manual dispatch: build and deploy to GitHub Pages

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

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 15:11:32 +08:00
yufeng 39b124d037 fix(docs): simplify docs workflow (#1778) 2026-04-29 10:55:57 +08:00
yufeng 1507916368 fix docs custom domain asset paths (#1773) 2026-04-28 18:02:48 +08:00
Qin Haojie e3f6db5f42 Revert "build(deps): bump softprops/action-gh-release from 2 to 3 (#1495)" (#1747)
This reverts commit 97c79a7ff5.
2026-04-27 19:20:02 +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