v1.39.0
What's Changed
- docs(tears): post-v1.38.0 release notes by @jamie8johnson in #1486
- test(context): TC-HAP-V1.36-4 + 7 builder tests (refs #1458) by @jamie8johnson in #1487
- test(pipeline): TC-HAP-V1.36-8 prepare_for_embedding tests (refs #1458) by @jamie8johnson in #1489
- test(watch+train): TC-HAP-V1.36-9 + 10 daemon GC and train-data tests (refs #1458) by @jamie8johnson in #1488
- fix(cli): tasklist UTF-16 BOM blind-spot in process_exists (P4-10 / refs #1463) by @jamie8johnson in #1490
- fix(splade): .bak rollback for save (DS-V1.36-5 / P4-13 / refs #1463) by @jamie8johnson in #1491
- fix(cagra): .bak rollback for save (DS-V1.36-2 / P4-12 / refs #1463) by @jamie8johnson in #1492
- fix(index): drop never-emitted IndexBackendError variants (API-V1.36-6 / refs #1459) by @jamie8johnson in #1493
- docs(tears): post-v1.38.0 autopilot wave by @jamie8johnson in #1494
- refactor(cli): #[derive(CqsCommands)] proc-macro replaces for_each_command! registry (closes #1366) by @jamie8johnson in #1495
- docs(tears): wave-final state — all 9 PRs landed, #1366 closed by @jamie8johnson in #1496
- perf(index): skip first-pass embed when --llm-summaries (closes #1452) by @jamie8johnson in #1497
- docs(tears): wave-final — all 11 PRs landed, #1452 + #1366 + #1458 closed by @jamie8johnson in #1498
- fix(store): embedding_base = NULL for skip-first-pass chunks (post-#1497) by @jamie8johnson in #1499
- refactor(cli): proc-macro DX (#1495 follow-ups: validate dispatch shim + cqs --help regression guard) by @jamie8johnson in #1500
- refactor(index): drop IndexBackendError wrapper, return StoreError directly (post-#1493) by @jamie8johnson in #1501
- perf(hnsw,cagra): id_map: Vec → Vec<Box> (P4-11 / refs #1463) by @jamie8johnson in #1502
- perf(reranker): scale batch size by max_length (SHL-V1.36-6 / refs #1463) by @jamie8johnson in #1503
- fix(cli): cmd_model_swap bails on metadata read error (P1-18 / #1456) by @jamie8johnson in #1504
- feat(cli): cqs index --model parity + drift detection (#1459 item 5a) by @jamie8johnson in #1505
- feat(cli): cqs ref reindex LLM/HyDE flag parity (#1459 item 3) by @jamie8johnson in #1506
- feat(cli): cqs project search inherits top-level filter knobs (#1459 item 1) by @jamie8johnson in #1507
- refactor(cli): exhaustive match on OutputFormat at 16 render sites (P4-3) by @jamie8johnson in #1508
- refactor(search): try_classify_* chain replaces 9-arm priority returns (P4-4) by @jamie8johnson in #1509
- refactor(llm): build_prompt_with_envelope helper dedupes 4 prompt builders (P4-5) by @jamie8johnson in #1510
- chore(audit): archive v1.36.2 findings/triage before fresh v1.38.0 audit by @jamie8johnson in #1513
- feat(config): [index.policy] surfaces backend selection knobs (P4-6) by @jamie8johnson in #1511
- fix(store, batch): close needs_embedding wiring gaps + slot-aware staleness (Cluster A / #1463) by @jamie8johnson in #1514
- audit(v1.38.0): aggregated findings + P1/P2/P3/P4 triage by @jamie8johnson in #1515
- fix(cli): finish stored_model_name lossy-caller migration (Cluster C / #1463) by @jamie8johnson in #1517
- fix(search, hnsw, cagra): algorithm correctness sweep — total_cmp adoption + saturating math (Cluster F / #1463) by @jamie8johnson in #1518
- sec: redact api_base userinfo, drop Anthropic error.message echo, atomic patch write, ref-update symlink-redirect notice (Cluster I / #1463) by @jamie8johnson in #1519
- docs: stop lying about --improve-docs, fix CONTRIBUTING + SECURITY drift, backfill CHANGELOG (Cluster B / #1463) by @jamie8johnson in #1516
- perf: cache test-pattern registry, SPLADE id_map Box, hoist redundant joins (Cluster E / #1463) by @jamie8johnson in #1520
- test: TC-ADV regression-test backfill for shipped fixes (Cluster D / #1463) by @jamie8johnson in #1521
- fix(robustness): cap commondir read, replace daemon panic with bail, saturating UMAP capacity (Cluster H / #1463) by @jamie8johnson in #1523
- fix: SPLADE α slot resolver warns, ref-update entry span, drift detection structured warn (Cluster J / #1463) by @jamie8johnson in #1524
- fix(rm): cap subprocess output for UMAP + export-model (Cluster G / #1463) by @jamie8johnson in #1522
- fix(splade): replace 10 production .unwrap() with .expect() invariant comments (RB-V1.38-3 / #1463) by @jamie8johnson in #1525
- fix(error-handling): tensor cascade error preservation, %e for tree-sitter, warn on malformed env (Cluster L / #1463) by @jamie8johnson in #1526
- docs(tears): post-v1.38 audit cycle state by @jamie8johnson in #1527
- fix: cluster M — P3 mechanical sweep (10 findings, #1463) by @jamie8johnson in #1528
- fix: cluster N — P2 pending (5 findings, #1463) by @jamie8johnson in #1529
- fix: cluster O — P2 robustness sweep (5 findings, #1463) by @jamie8johnson in #1530
- test(model-swap): replace mtime equality with content hash to fix CI flake by @jamie8johnson in #1531
- fix: cluster P — scaling configurability + SPLADE reliability surface (4 findings, #1463) by @jamie8johnson in #1532
- fix: cluster Q — security sweep (6 findings, #1463) by @jamie8johnson in #1533
- fix: cluster R — resource management sweep (2 findings, #1463) by @jamie8johnson in #1534
- fix: cluster S — extensibility sweep (2 findings, #1463) by @jamie8johnson in #1535
- fix: cluster T — SHL env-override sweep (5 findings, #1463) by @jamie8johnson in #1536
- fix: cluster U — API design tightening (2 findings, #1463) by @jamie8johnson in #1537
- test: cluster V — TC-ADV regression backfill (4 findings, #1463) by @jamie8johnson in #1538
- fix: cluster W — TC-ADV finish + AC negation gate (4 findings, #1463) by @jamie8johnson in #1539
- fix: cluster X — API-V1.38-1: ModelCommand/HookCommand → TextJsonArgs (#1463) by @jamie8johnson in #1540
- fix: cluster Y — gitignore + slot-lock contract (2 findings, #1463) by @jamie8johnson in #1541
- test: cluster Z — TC-ADV-V1.38-{5,7} regression backfill (#1463) by @jamie8johnson in #1542
- docs(tears): post-audit-cycle-continuation snapshot by @jamie8johnson in #1543
- fix: cluster BB — API-V1.38-10: reject --limit 0 at parse time (#1463) by @jamie8johnson in #1544
- fix: cluster CC — SHL-V1.38-9 summary_queue env knobs (#1463) by @jamie8johnson in #1545
- fix: cluster DD — PL-V1.38-4: WSL DrvFS detector unification (#1463) by @jamie8johnson in #1546
- fix: cluster EE — EX-V1.38-2: test_markers + endpoint_markers consolidation (#1463) by @jamie8johnson in #1547
- fix: cluster FF — EX-V1.38-3: Reranker batch + max_length to [reranker] TOML (#1463) by @jamie8johnson in #1548
- fix: cluster GG — EX-V1.38-6: Markdown call extraction → trait field (#1463) by @jamie8johnson in #1549
- docs(tears): v1.38 audit cycle final — 23 cluster PRs, ~58 findings closed by @jamie8johnson in #1550
- fix: cluster HH — EX-V1.38-3 finish: rerank pool_max + over_retrieval to TOML (#1463) by @jamie8johnson in #1551
- fix: cluster JJ — CQ-V1.38-1/2: delete confirmed dead code (#1463) by @jamie8johnson in #1552
- docs(triage): pin canonical closure list to #1463 umbrella comment by @jamie8johnson in #1553
- fix: cluster KK — API-V1.38-4: LocalProvider validates model up front (#1463) by @jamie8johnson in #1554
- fix: cluster LL — PF-V1.38-4: cache splade env vars via OnceLock (#1463) by @jamie8johnson in #1555
- test: cluster MM — TC-HAP-V1.38-7: cmd_install + cmd_status end-to-end (#1463) by @jamie8johnson in #1556
- test(cli): TC-HAP-V1.38-5 end-to-end test for cqs dead (#1463) by @jamie8johnson in #1557
- test(cli): TC-HAP-V1.38-6 end-to-end test for cqs explain (#1463) by @jamie8johnson in #1558
- test(reranker): TC-HAP-V1.38-9 strengthen test_reranker_new + max_length precedence (#1463) by @jamie8johnson in #1559
- test(cli): TC-HAP-V1.38-4 end-to-end test for cqs index --model drift detection (#1463) by @jamie8johnson in #1560
- test(project): TC-HAP-V1.38-10 align perms test gate with production cfg (#1463) by @jamie8johnson in #1561
- test(project): TC-HAP-V1.38-1 behavioral coverage for project search filter (#1463) by @jamie8johnson in #1562
- test(cli): TC-HAP-V1.38-2 end-to-end test for ref reindex LLM/HyDE flag validation (#1463) by @jamie8johnson in #1563
- fix(cross-project): TC-HAP-V1.38-8 trace --cross-project test + slot-aware DB resolution (#1463) by @jamie8johnson in #1564
- docs(tears): TC-HAP-V1.38 sweep #1556-#1564 (8 cluster PRs) by @jamie8johnson in #1565
- perf(pipeline): SHL-V1.38-6 halve parse_channel_depth default to 256 (#1463) by @jamie8johnson in #1566
- refactor(embedder): API-V1.38-9 rename HfHub variant to ModelDownload (#1463) by @jamie8johnson in #1567
- docs(tears): add VV+WW cluster updates (#1566, #1567) by @jamie8johnson in #1568
- refactor(cli): API-V1.38-10 LimitArg fan-out across 8 sister args (#1463) by @jamie8johnson in #1569
- fix(hnsw): DS-V1.38-4 close TOCTOU window in load_with_dim existence check (#1463) by @jamie8johnson in #1570
- docs(tears): cluster XX (#1569) + YY (#1570) landings + triage flips by @jamie8johnson in #1571
- fix(dead): tier-1 noise filter — drop Property chunks + doc/asset extensions by @jamie8johnson in #1572
- fix(watch): #1574 atomic per-file function_calls + chunks reindex by @jamie8johnson in #1575
- fix(embedder): #1576 auto-skip TensorRT for Gemma-family models by @jamie8johnson in #1577
- chore: Release v1.39.0 by @jamie8johnson in #1578
Full Changelog: v1.38.0...v1.39.0