Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: volcengine/OpenViking
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.2.8
Choose a base ref
...
head repository: volcengine/OpenViking
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.2.9
Choose a head ref
  • 10 commits
  • 32 files changed
  • 12 contributors

Commits on Mar 19, 2026

  1. fix(resource): enforce agent-level watch task isolation (#762)

    * fix(resource): enforce agent-level watch task isolation
    
    * style(tests): format watch manager isolation test
    
    * style(tests): organize resource service watch imports
    lyfmt authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    4c920a6 View commit details
    Browse the repository at this point in the history
  2. feat(embedder): use summary for file embedding in semantic pipeline (#…

    …765)
    
    * feat(embedder): use summary for file embedding in semantic pipeline
    
    When files are processed through the semantic pipeline (SemanticDag),
    use the pre-generated summary (AST skeleton or LLM summary) for
    embedding instead of reading raw file content. This ensures code files,
    markdown, and other text files within a repository are indexed by their
    semantic summary rather than truncated raw content.
    
    - Add use_summary flag to VectorizeTask, _vectorize_single_file, and vectorize_file
    - Set use_summary=True in _file_summary_task when a non-empty summary is available
    - Truncate AST skeleton to max_skeleton_chars (12000 chars, ~3000 tokens) before embedding
    - Add max_skeleton_chars config field to SemanticConfig
    - index_resource and memory paths are unaffected (use_summary defaults to False)
    
    Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
    
    * fix(embedding): only use summary for code repo embedding, not plain text/doc files
    
    Add `is_code_repo` flag to `SemanticMsg` and propagate it through the
    pipeline so that summary-based embedding (AST skeleton) is only applied
    when processing a code repository (`source_format == "repository"`).
    For plain text, markdown, and other non-repo resources, raw file content
    is used for embedding as before.
    
    Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
    
    ---------
    
    Co-authored-by: Claude Sonnet 4.6 <[email protected]>
    yangxinxin-7 and claude authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    59352f8 View commit details
    Browse the repository at this point in the history
  3. Fix/bot readme (#774)

    * 去掉console
    
    Removed OpenSandbox, Docker, and AIO Sandbox backend documentation from README.
    
    * refactor(bot): update READMEs to remove console UI and docker deployment
    
    - Remove console UI references, guide users to configure via ov.conf
    - Keep only direct and srt sandbox backends in docs
    - Remove docker deployment section temporarily
    chenjw authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    21dd20d View commit details
    Browse the repository at this point in the history
  4. feat(vector-store): add L0/L1 vector index movement support (#773)

    Implement functionality to move L0/L1 vector index entries when directories are relocated. This ensures semantic search indexes remain consistent during file operations. The changes include:
    - New _mv_vector_store_l0_l1 method in VikingFS
    - Enhanced _update_vector_store_uris with level filtering
    - Added tests for the new functionality
    myysy authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    b15b23a View commit details
    Browse the repository at this point in the history
  5. fix(plugin): restore bug fixes from #681 and #688 lost during #662 me…

    …rge (#779)
    
    PR #662 renamed the plugin directory and rewrote index.ts from a stale
    branch base, silently dropping two merged bug fixes:
    
    - #681: share pending clientPromise across dual-context registrations
      to prevent before_agent_start hook from hanging forever
    - #688: wrap auto-recall search in withTimeout(5s) to prevent indefinite
      agent hang when OpenViking search API is slow or unresponsive
    qin-ctx authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    e908b6a View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ff751a4 View commit details
    Browse the repository at this point in the history
  7. Update docs (#782)

    * docs(openclaw): refresh plugin 2.0 compatibility notes
    
    * docs(openclaw): clarify 2.0 legacy incompatibility
    
    * docs(openclaw): clarify old openclaw is unsupported
    zhoujh01 authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    06dad3a View commit details
    Browse the repository at this point in the history
  8. feat(ci): add comprehensive Qodo PR-Agent review rules for OpenViking (

    …#780)
    
    - Add .pr_agent.toml with 15 repo-specific review rules derived from real
      bug history (PRs #505, #728, #749, #740/#745, #754, #735, #767)
    - Rules structured as WHEN/THEN/BECAUSE for deterministic enforcement
    - Add 8 custom labels (memory-pipeline, async-change, api-breaking, etc.)
    - Add ignore patterns for lock files, third_party, build artifacts
    - Enable score review, TODO scan, split-PR detection, security audit
    - Configure improve tool with quality threshold and extended mode
    - Configure describe tool with PR diagrams and semantic file types
    - Update workflow: ark-code-latest model, checkout step for .pr_agent.toml,
      move all config from inline YAML to .pr_agent.toml (single source of truth)
    chethanuk authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    1aa2ab3 View commit details
    Browse the repository at this point in the history
  9. [feat](bot):Add mode config, add debug mode, add /remember cmd (#757)

    * Add debuge mode
    
    * 1. add debug mode;
    2. opt ov memory commit;
    
    * auth error msg
    
    * fix cr
    
    * fix cr
    yeshion23333 authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    63c0474 View commit details
    Browse the repository at this point in the history
  10. fix(vectordb): share single adapter across account backends to preven…

    …t RocksDB lock contention (#777)
    
    ## Problem
    
    When using the `local` vectordb backend in multi-tenant mode, every call to
    `_get_backend_for_account()` or `_get_root_backend()` creates a new
    `_SingleAccountBackend`, which in turn calls `create_collection_adapter(config)`.
    
    For the local backend, each adapter creates its own `PersistStore` instance via
    `get_or_create_local_collection()` → `create_store_manager("local", path)` →
    `engine.PersistStore(path)`. Since all account backends use the **same storage
    path**, multiple `PersistStore` instances attempt to acquire an exclusive RocksDB
    lock on the same `LOCK` file at `{path}/store/LOCK`.
    
    The first instance succeeds, but all subsequent instances fail with:
    
        RuntimeError: IO error: lock /app/data/vectordb/context/store/LOCK:
        already held by process
    
    This makes **all vector operations permanently broken** after the second account
    backend is created — search returns zero results, upserts silently fail to
    index, and the error floods the logs on every request.
    
    The bug is triggered in any deployment with more than one account or when both
    a regular account backend and the root backend are accessed (which happens on
    almost every API request).
    
    ## Root cause
    
    `VikingVectorIndexBackend` lazily creates per-account `_SingleAccountBackend`
    instances. Each one independently calls `create_collection_adapter(config)`,
    producing separate `LocalCollectionAdapter` → `PersistStore` instances that all
    point to the same on-disk RocksDB directory. RocksDB enforces single-process
    exclusive locking, so only the first opener succeeds.
    
    ## Fix
    
    Create the adapter **once** in `VikingVectorIndexBackend.__init__()` and pass it
    as a `shared_adapter` to every `_SingleAccountBackend`. The adapter (and its
    underlying `PersistStore` / RocksDB handle) is reused across all account
    backends, eliminating lock contention entirely.
    
    The `_SingleAccountBackend` constructor now accepts an optional `shared_adapter`
    parameter. When provided, it uses the shared instance instead of creating a new
    one. When not provided (e.g. standalone usage), it falls back to the original
    `create_collection_adapter(config)` behavior for backward compatibility.
    
    ## Impact
    
    - Fixes permanent vectordb failure in multi-tenant local backend deployments
    - Search (`ov find`, `ov search`) now returns results
    - Vector upserts during session commit are properly indexed
    - Memory extraction vectorization completes successfully
    - No behavioral change for single-account setups or non-local backends
    ahmedhesham6 authored Mar 19, 2026
    Configuration menu
    Copy the full SHA
    337e51f View commit details
    Browse the repository at this point in the history
Loading