Commit 2cb61d5
release: v0.2.0 (#84)
First major-version bump of SQLRite. The 0.1.x cycle covered Phase 0 →
Phase 7 (modernization → AI-era extensions). v0.2.0 marks Phase 8 —
full-text search + hybrid retrieval — and the on-disk file-format change
that comes with it.
What ships in v0.2.0
====================
Phase 8 — Full-text search + hybrid retrieval (PRs #78–#83):
- 8a — Standalone FTS algorithms (tokenizer + BM25 + posting list)
under src/sql/fts/, mirroring Phase 7d.1's HNSW shape.
- 8b — SQL surface: CREATE INDEX … USING fts (col), fts_match(col, 'q'),
bm25_score(col, 'q'), the try_fts_probe optimizer hook, and
INSERT/DELETE/UPDATE lifecycle wiring (rebuild-on-save).
- 8c — Cell-encoded persistence (KIND_FTS_POSTING, 0x06), stage_fts_btree
/ load_fts_postings, and the on-demand v4 → v5 file-format bump.
Existing v4 databases without FTS keep writing v4; the first save
with an FTS index attached promotes to v5. Decoders accept both.
- 8d — Hybrid retrieval worked example at examples/hybrid-retrieval/ —
BM25 + vector cosine via raw arithmetic (no new typed function),
hand-baked vectors so it stays reproducible without a model.
- 8e — sqlrite-mcp bm25_search tool, symmetric with vector_search. The
MCP server now exposes 8 tools (was 7).
- 8f — Final docs sweep: new docs/fts.md canonical reference; FTS
sections added to supported-sql.md, architecture.md, file-format.md
(KIND_FTS_POSTING layout + v5 history entry), sql-engine.md,
mcp.md (count bump 7→8), smoke-test.md; _index.md and roadmap.md
updated to mark Phase 8 complete.
File-format change
==================
This is the headline reason for the major bump:
- v4 (Phase 7) — value block dispatch gained the Vector tag (Phase 7a).
Phase 7's JSON, HNSW, and ask additions all lived inside the v4
envelope.
- v5 (Phase 8c) — adds KIND_FTS_POSTING (0x06). On-demand: only
written when the database has at least one FTS index attached.
Decoders accept v4 and v5; v0.2.0 readers can open v0.1.x files
without surprise. v0.1.x readers cannot open v5 files (clean
"unsupported version" error).
Testing
=======
Engine 303 + MCP 19 + 73 across the other crates — all green at the new
version. Inter-crate deps bumped from 0.1 to 0.2 in three places
(Cargo.toml's optional sqlrite-ask, sqlrite-mcp's sqlrite-engine ref,
sdk/wasm's sqlrite-ask ref); cargo build refreshed Cargo.lock.
Manifests bumped (12 files via scripts/bump-version.sh):
- Cargo.toml
- sqlrite-ffi/Cargo.toml
- sqlrite-ask/Cargo.toml
- sqlrite-mcp/Cargo.toml
- sdk/python/Cargo.toml + pyproject.toml
- sdk/nodejs/Cargo.toml + package.json
- sdk/wasm/Cargo.toml
- desktop/src-tauri/Cargo.toml + tauri.conf.json
- desktop/package.json
Plus inter-crate dep refs, the Cargo.toml comment block, and
sqlrite-ask/README.md's installation snippet.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 258b2af commit 2cb61d5
14 files changed
Lines changed: 24 additions & 24 deletions
File tree
- desktop
- src-tauri
- sdk
- nodejs
- python
- wasm
- sqlrite-ask
- sqlrite-ffi
- sqlrite-mcp
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
141 | | - | |
| 141 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| |||
0 commit comments