Skip to content

feat(index): add SeekDB derived-index backend - #449

Open
knqiufan wants to merge 1 commit into
EverMind-AI:mainfrom
knqiufan:codex/feat-seekdb-index-backend
Open

knqiufan wants to merge 1 commit into
EverMind-AI:mainfrom
knqiufan:codex/feat-seekdb-index-backend

Conversation

@knqiufan

Copy link
Copy Markdown

Summary

Adds SeekDB as a third rebuildable derived-index backend while preserving
LanceDB as the default and keeping Markdown as the source of truth.

  • route all seven typed index repositories and lifecycle operations through a
    new SeekDB adapter;
  • support embedded SeekDB on Linux/macOS and remote seekdb Server or OceanBase
    connections, with optional dependency extras and validated configuration;
  • map portable schemas to typed scalar, JSON, whitespace-tokenized full-text,
    and cosine HNSW vector columns/indexes;
  • provide safe SQL rendering, exact UTC epoch-millisecond conversion, batched
    writes, native pagination, BM25 search, vector search, and strict column/index
    drift diagnostics;
  • guard embedded directory ownership and recover remote sessions after
    disconnects without logging SQL or credentials;
  • integrate cascade rebuild, configuration examples, architecture/storage
    docs, changelog, unit/contract/integration/e2e fixtures, and both embedded and
    latest remote SeekDB CI jobs.

Closes #448.

Area

  • Architecture method
  • Benchmark
  • Use case
  • Documentation
  • Developer experience
  • CI, build, or release

Verification

83 passed
  pytest: SeekDB unit tests, derived-index contracts, configuration

144 passed
  pytest: SeekDB + Milvus regression, routing, configuration, cascade CLI

81 passed, 4 skipped; 81.07% branch coverage
  SeekDB package coverage (real-engine cases skip locally without an endpoint)

Passed
  ruff check + format check
  all four import-linter architecture contracts
  repository asset and file-size gates
  deprecated-name and contributor-doc gates
  datetime-discipline and OpenAPI drift gates
  documentation links and issue-template YAML
  uv lock --check
  sdist/wheel build, top-level import smoke test, and wheel-content check
  pyseekdb 1.4.0.post1 runtime API/signature inspection

The PR adds Linux CI coverage for the locked embedded 1.4 runtime and a
separate oceanbase/seekdb:latest service job for the remote adapter. Both run
the repository/port contracts and tiered API suites.

Checklist

  • I kept the change scoped to the relevant area.
  • I am opening this from a separate branch, not pushing directly to main.
  • I updated docs, examples, or setup notes when behavior changed.
  • I added or updated tests when the change affects behavior.
  • I did not commit secrets, .env files, dependency folders, or generated output.
  • Active relative links in Markdown files resolve.

Notes for Reviewers

The adapter isolates the SQL-oriented pyseekdb 1.4.x client surface in one
connection manager and pins the optional dependency below 1.5 so future client
surface changes cannot silently alter the contract. Schema drift is fail-fast
because every physical table is disposable and rebuilt from Markdown with
everos cascade rebuild.

The default install and default [index] backend = "lancedb" behavior are
unchanged.

By submitting this pull request, I agree that my contribution is licensed under
the Apache License 2.0.

@knqiufan

Copy link
Copy Markdown
Author

CI, Docs, and Commit lint are currently awaiting the repository's required maintainer approval for workflows from a fork. Once approved, I will monitor the runs and address any failures on this branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Add SeekDB as an optional derived-index backend

1 participant