Skip to content

Commit c10c8c3

Browse files
matte1782claude
andcommitted
feat(w45): edgevec-langchain v0.2.0 + PQ research + API audit
- D1: 15 FilterExpression edge case tests (149 total langchain tests) - D2: Filter usage guide, CHANGELOG, README enhanced, v0.2.0 bump - D3: PQ literature review — LEAN GO, 6 GO/NO-GO criteria for W46 - D4: PQ benchmark plan (8 benchmarks), API surface inventory (338 APIs), API stability audit (30 candidates) - D5: 5 hostile reviews all GO, CHANGELOG dates + ADC threshold fixes - D6: Full regression green (980+ lib, 149 langchain, 0 clippy warnings) Hostile review: 5 tasks reviewed, 5 sweep checks passed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 1982a22 commit c10c8c3

15 files changed

Lines changed: 3708 additions & 12 deletions

CHANGELOG.md

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,37 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
> **Note:** This project extends Keep a Changelog with `Research`, `Internal`, `Documentation`, and `Performance` headings as project-specific conventions.
11+
1012
### Added
1113
- **FilterExpression object support** in `edgevec-langchain``similaritySearchVectorWithScore` now accepts both DSL strings and `FilterExpression` objects (`Filter.eq()`, `Filter.and()`, etc.)
1214
- Re-exported `Filter` and `FilterExpression` from `edgevec-langchain` for convenience
13-
- 6 new FilterExpression tests in `pkg/langchain/tests/store.test.ts` (134 total, up from 128)
15+
- 6 new FilterExpression tests in `pkg/langchain/tests/store.test.ts` (W44, 134 total)
16+
- 15 FilterExpression edge case tests (W45 Day 1) — edge cases, real-world patterns, type safety, null/undefined/empty filter handling (149 total LangChain tests)
17+
- **Filter usage guide** (`pkg/langchain/docs/FILTER_GUIDE.md`) — 4 real-world examples: e-commerce, RAG, multi-tenant, time-bounded
18+
- **edgevec-langchain CHANGELOG** (`pkg/langchain/CHANGELOG.md`) — v0.2.0 + v0.1.0 entries
19+
- Filter API quick reference table (25 rows) in `pkg/langchain/README.md`
1420

1521
### Changed
1622
- **ROADMAP.md** updated to v7.0: marked v0.9.0/W42-43 as DONE, added Milestone 10.0 (W44 research spikes)
23+
- **ROADMAP.md** updated to v7.1: Milestone 10.4 PQ Phase 1 pulled forward to W45
1724
- `pkg/langchain/README.md`: documented both filter forms (DSL strings + FilterExpression), removed "Coming Next" section
25+
- `pkg/langchain/package.json` and `index.ts`: version bumped to 0.2.0
1826

1927
### Research
20-
- **WebGPU Acceleration Spike** (`docs/research/WEBGPU_SPIKE.md`) — **NO-GO** for v0.10.0. GPU-CPU transfer overhead dominates at EdgeVec's operating scale; no crossover under 500K vectors for single queries.
21-
- **WASM Relaxed SIMD Spike** (`docs/research/RELAXED_SIMD_SPIKE.md`) — **NO-GO** for v0.10.0. Safari still behind flag; dual WASM bundles not justified for 1.5x ARM speedup alone.
28+
- **WebGPU Acceleration Spike** (`docs/research/WEBGPU_SPIKE.md`) — **NO-GO** for v0.10.0 (W44)
29+
- **WASM Relaxed SIMD Spike** (`docs/research/RELAXED_SIMD_SPIKE.md`) — **NO-GO** for v0.10.0 (W44)
30+
- **Product Quantization Literature Review** (`docs/research/PRODUCT_QUANTIZATION_LITERATURE.md`) — LEAN GO, MEDIUM confidence. 4 systems analyzed, 3 research questions, WASM feasibility, 6 GO/NO-GO criteria (W45 Day 3)
31+
- **PQ Benchmark Plan** (`docs/research/PQ_BENCHMARK_PLAN.md`) — 8 benchmarks with reproducible methodology, GO/NO-GO decision matrix (W45 Day 4)
32+
33+
### Internal
34+
- **API Surface Inventory** (`docs/audits/API_SURFACE_INVENTORY.md`) — 338 public APIs catalogued across Rust, WASM, TypeScript, LangChain (W45 Day 4)
35+
- **API Stability Audit** (`docs/audits/API_STABILITY_AUDIT.md`) — 30 breaking change candidates, deprecation plan, v1.0 freeze timeline (W45 Day 4)
36+
- 5 hostile reviews passed (W44 Day 5, W45 Days 1-4), all with GO verdict after fixes
2237

2338
---
2439

25-
## [0.9.0] - 2026-03-07 — Sparse Vectors, Hybrid Search, FlatIndex, BinaryFlatIndex
40+
## [0.9.0] - 2026-02-27 — Sparse Vectors, Hybrid Search, FlatIndex, BinaryFlatIndex
2641

2742
### Added (v0.9.0) — Sparse Vectors (RFC-007)
2843

@@ -670,7 +685,7 @@ npm install edgevec@0.4.1
670685

671686
---
672687

673-
## [0.4.0] - 2025-12-20 — Documentation & Quality Sprint
688+
## [0.4.0] - 2025-12-16 — Documentation & Quality Sprint
674689

675690
**Focus:** Production readiness — comprehensive documentation, P99 tracking, and quality hardening.
676691

@@ -1001,7 +1016,7 @@ This version was internal only, not published to crates.io or npm.
10011016

10021017
| Version | Date | Highlights |
10031018
|:--------|:-----|:-----------|
1004-
| 0.9.0 | 2026-03-07 | **FlatIndex**, **BinaryFlatIndex** (PR #7), **Sparse Vectors** (RFC-007), **RRF Hybrid Search** |
1019+
| 0.9.0 | 2026-02-27 | **FlatIndex**, **BinaryFlatIndex** (PR #7), **Sparse Vectors** (RFC-007), **RRF Hybrid Search** |
10051020
| 0.8.0 | 2026-02-02 | **Vue 3 Composables**, **Filter Functions**, **SIMD Euclidean**, Tech Debt |
10061021
| 0.7.0 | 2025-12-27 | **SIMD Acceleration** (2x+), **First Community Contribution** (@jsonMartin — 8.75x Hamming) |
10071022
| 0.6.0 | 2025-12-22 | **RFC-002:** Binary Quantization (32x memory), Metadata Storage, Memory Pressure |

docs/audits/API_STABILITY_AUDIT.md

Lines changed: 311 additions & 0 deletions
Large diffs are not rendered by default.

docs/audits/API_SURFACE_INVENTORY.md

Lines changed: 604 additions & 0 deletions
Large diffs are not rendered by default.

docs/planning/ROADMAP.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -452,18 +452,20 @@ v0.10.0 explores next-generation browser capabilities (WebGPU, WASM Relaxed SIMD
452452

453453
### Milestone 10.4: Product Quantization Research + Implementation (Weeks 46-47, 16h)
454454

455-
**Status:** RESEARCH (moved from v0.9.0 with proper exit criteria)
455+
**Status:** IN PROGRESS (Phase 1 literature review pulled forward to W45)
456456
**Source:** Industry trends (64x compression, 97% memory reduction)
457457

458-
**Phase 1: Research (8h, Week 46)**
458+
**Phase 1: Research (8h, Week 45 — pulled forward)**
459+
460+
> **Schedule Note:** Phase 1 was pulled forward from W46 to W45 after W44 WebGPU and Relaxed SIMD spikes both resulted in NO-GO decisions, freeing ~12h of implementation capacity. This gives W46 more implementation time if Phase 1 results in GO.
459461
460462
Research Questions (must answer ALL):
461463
1. Is 64x compression worth complexity vs BQ's 32x?
462464
2. Can we achieve <100ns lookup overhead in WASM?
463465
3. How does recall compare: PQ vs BQ at same memory budget?
464466

465467
**Exit Criteria for Go Decision:**
466-
- [ ] Research document: `docs/research/PRODUCT_QUANTIZATION_ANALYSIS.md`
468+
- [ ] Research document: `docs/research/PRODUCT_QUANTIZATION_LITERATURE.md`
467469
- [ ] Benchmark data comparing PQ vs BQ
468470
- [ ] Clear recommendation: IMPLEMENT or DEFER
469471

@@ -694,6 +696,7 @@ v1.0 signals production readiness. Focus on stability, security, performance gua
694696
| v6.0 | 2026-01-04 | Post-v0.7.0 strategic plan with community/industry analysis |
695697
| v6.1 | 2026-01-08 | v0.8.0 RELEASED; v0.9.0 de-risked (HOSTILE_REVIEWER reorder) |
696698
| v7.0 | 2026-03-17 | v0.9.0 RELEASED; W42-43 actuals; Milestone 10.0 (W44 research spikes) |
699+
| v7.1 | 2026-03-25 | Milestone 10.4 PQ Phase 1 pulled forward to W45; added Milestone 10.5 LangChain.js v0.2.0 |
697700

698701
---
699702

0 commit comments

Comments
 (0)