|
| 1 | +# Week 45 — Day 2 Tasks (Tuesday, Mar 25) |
| 2 | + |
| 3 | +**Date:** 2026-03-25 |
| 4 | +**Focus:** LangChain.js Documentation + v0.2.0 Release Prep |
| 5 | +**Agent:** DOCWRITER + WASM_SPECIALIST |
| 6 | +**Status:** PENDING |
| 7 | + |
| 8 | +--- |
| 9 | + |
| 10 | +## Day Objective |
| 11 | + |
| 12 | +Create comprehensive FilterExpression usage documentation with real-world examples. Prepare the edgevec-langchain package for v0.2.0 publish. Update CHANGELOG and verify build output. |
| 13 | + |
| 14 | +**Success Criteria:** |
| 15 | +- Usage guide with 3+ real-world examples complete |
| 16 | +- README updated with expanded code examples |
| 17 | +- package.json bumped to 0.2.0 |
| 18 | +- Backward compatibility verified (existing `string` filter code compiles against v0.2.0 types) |
| 19 | +- Build output verified (ESM + CJS, size under 10KB each) |
| 20 | +- CHANGELOG v0.2.0 entry drafted |
| 21 | +- ROADMAP.md updated to reflect PQ research pulled forward to W45 |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +## Tasks |
| 26 | + |
| 27 | +### W45.2a: FilterExpression Usage Guide (2h) |
| 28 | + |
| 29 | +**Description:** Write a comprehensive guide showing how to use FilterExpression with edgevec-langchain for common retrieval patterns. |
| 30 | + |
| 31 | +**Content Structure:** |
| 32 | +1. **Introduction** — Why FilterExpression vs DSL strings |
| 33 | +2. **Basic Usage** — Simple equality, comparison filters |
| 34 | +3. **Combining Filters** — AND, OR, NOT composition |
| 35 | +4. **Real-World Examples:** |
| 36 | + - Semantic search with metadata constraints (e-commerce product search) |
| 37 | + - RAG pipeline with document type filtering |
| 38 | + - Multi-tenant vector store with tenant isolation |
| 39 | + - Time-bounded search (recent documents only) |
| 40 | +5. **Migration from DSL Strings** — Side-by-side comparison |
| 41 | +6. **TypeScript Types Reference** — Key interfaces and methods |
| 42 | + |
| 43 | +**Files:** |
| 44 | +- `pkg/langchain/docs/FILTER_GUIDE.md` (new file) |
| 45 | + |
| 46 | +**Acceptance:** |
| 47 | +- [ ] 3+ real-world examples with complete, runnable code |
| 48 | +- [ ] Each example explains the use case and expected behavior |
| 49 | +- [ ] Migration section shows DSL string equivalent for each FilterExpression example |
| 50 | + |
| 51 | +### W45.2b: README Code Examples Update (1h) |
| 52 | + |
| 53 | +**Description:** Enhance the main edgevec-langchain README with more practical code examples demonstrating the full workflow. |
| 54 | + |
| 55 | +**Updates:** |
| 56 | +1. **Quick Start** — Expand with FilterExpression example alongside DSL string |
| 57 | +2. **Advanced Usage** — Add section showing LangChain retriever chain with filters |
| 58 | +3. **API Quick Reference** — Add concise table of all Filter factory methods with one-liner examples |
| 59 | + |
| 60 | +**Files:** |
| 61 | +- `pkg/langchain/README.md` |
| 62 | + |
| 63 | +**Acceptance:** |
| 64 | +- [ ] Quick Start includes both filter forms |
| 65 | +- [ ] Advanced usage shows a realistic retriever chain |
| 66 | +- [ ] All Filter factory methods listed with examples |
| 67 | + |
| 68 | +### W45.2c: CHANGELOG v0.2.0 Entry (0.5h) |
| 69 | + |
| 70 | +**Description:** Draft the CHANGELOG entry for edgevec-langchain@0.2.0. |
| 71 | + |
| 72 | +**Content:** |
| 73 | +- FilterExpression object support (from W44) |
| 74 | +- New edge case tests |
| 75 | +- Usage guide and documentation |
| 76 | +- Filter re-exports from package root |
| 77 | + |
| 78 | +**Files:** |
| 79 | +- `pkg/langchain/CHANGELOG.md` (new file, or update existing) |
| 80 | + |
| 81 | +**Acceptance:** |
| 82 | +- [ ] Follows Keep a Changelog format |
| 83 | +- [ ] Lists all user-facing changes |
| 84 | + |
| 85 | +### W45.2d: Version Bump to 0.2.0 (0.5h) |
| 86 | + |
| 87 | +**Description:** Update package.json version, verify peer dependencies, update any version references. |
| 88 | + |
| 89 | +**Changes:** |
| 90 | +1. `pkg/langchain/package.json` — `"version": "0.1.0"` → `"version": "0.2.0"` |
| 91 | +2. `pkg/langchain/src/index.ts` — `@version 0.1.0` → `@version 0.2.0` |
| 92 | +3. Verify `@langchain/core` peer dependency range still valid |
| 93 | + |
| 94 | +**Files:** |
| 95 | +- `pkg/langchain/package.json` |
| 96 | +- `pkg/langchain/src/index.ts` |
| 97 | + |
| 98 | +**Backward Compatibility Verification:** |
| 99 | +The `FilterType` widening from `string` to `string | FilterExpression` is additive at the value level. Verify that existing user code compiles without changes: |
| 100 | +```typescript |
| 101 | +// This must still compile without errors: |
| 102 | +const store = new EdgeVecStore(...); |
| 103 | +const results = await store.similaritySearchVectorWithScore(query, k, "category = 'docs'"); |
| 104 | +``` |
| 105 | +Document the type widening as a known non-breaking change in the CHANGELOG. |
| 106 | + |
| 107 | +**Acceptance:** |
| 108 | +- [ ] Version is 0.2.0 in package.json |
| 109 | +- [ ] Version comment updated in index.ts |
| 110 | +- [ ] Peer dependency range unchanged (no breaking changes in @langchain/core) |
| 111 | +- [ ] Existing `string` filter usage compiles against v0.2.0 types (verified via typecheck) |
| 112 | + |
| 113 | +### W45.2e: Build Output Verification (0.5h) |
| 114 | + |
| 115 | +**Description:** Build the package and verify output sizes and correctness. |
| 116 | + |
| 117 | +**Commands:** |
| 118 | +```bash |
| 119 | +cd pkg/langchain |
| 120 | +npm run build # tsup build |
| 121 | +ls -la dist/ # Check output files |
| 122 | +``` |
| 123 | + |
| 124 | +**Checks:** |
| 125 | +1. `dist/index.js` (ESM) exists and < 10KB |
| 126 | +2. `dist/index.cjs` (CJS) exists and < 10KB |
| 127 | +3. `dist/index.d.ts` type declarations include FilterExpression |
| 128 | +4. No unexpected files in dist/ |
| 129 | + |
| 130 | +**Acceptance:** |
| 131 | +- [ ] ESM output < 10KB |
| 132 | +- [ ] CJS output < 10KB |
| 133 | +- [ ] Type declarations include Filter and FilterExpression exports |
| 134 | +- [ ] `npm pack --dry-run` shows expected file list |
| 135 | + |
| 136 | +### W45.2f: Update ROADMAP.md — PQ Schedule Pull-Forward (0.5h) |
| 137 | + |
| 138 | +**Description:** Update ROADMAP.md Milestone 10.4 to reflect that PQ Phase 1 (literature review) was pulled forward from W46 to W45. This prevents the document drift pattern caught in W44 Round 2. |
| 139 | + |
| 140 | +**Changes:** |
| 141 | +1. `docs/planning/ROADMAP.md` line 458: Change "Phase 1: Research (8h, Week 46)" to "Phase 1: Research (8h, Week 45 — pulled forward)" |
| 142 | +2. Update Milestone 10.4 status from "RESEARCH" to "IN PROGRESS (Phase 1: W45 literature review)" |
| 143 | +3. Add note explaining the pull-forward rationale (W44 NO-GO freed capacity) |
| 144 | + |
| 145 | +**Acceptance:** |
| 146 | +- [ ] ROADMAP Milestone 10.4 reflects W45 schedule |
| 147 | +- [ ] Rationale for pull-forward documented |
| 148 | +- [ ] No other ROADMAP sections affected |
| 149 | + |
| 150 | +--- |
| 151 | + |
| 152 | +## Day 2 Totals |
| 153 | + |
| 154 | +| Metric | Target | |
| 155 | +|:-------|:-------| |
| 156 | +| Hours | ~5h | |
| 157 | +| New files | 1 (FILTER_GUIDE.md) | |
| 158 | +| Modified files | 4 (README.md, package.json, index.ts, ROADMAP.md) | |
| 159 | +| v0.2.0 ready for review | YES | |
| 160 | + |
| 161 | +--- |
| 162 | + |
| 163 | +## Handoff |
| 164 | + |
| 165 | +After Day 2 completion: |
| 166 | +- **Status:** PENDING_HOSTILE_REVIEW (bundled with Day 5 review) |
| 167 | +- **Next:** Day 3 — Product Quantization Literature Review |
| 168 | +- **Artifacts:** `FILTER_GUIDE.md`, updated README, v0.2.0 package ready |
| 169 | + |
| 170 | +--- |
| 171 | + |
| 172 | +**END OF DAY 2 TASKS** |
0 commit comments