Skip to content

v0.10.9

Choose a tag to compare

@GlitterKill GlitterKill released this 27 Apr 18:01
· 170 commits to main since this release

Highlights

Chat-aware retrieval ranking actually ships, plus a substantial cut to embedding-phase wall time and a sweep of internal module splits to lower per-file surface area.

Added

  • Chat-aware Personalized PageRank re-ranking on sdl.symbol.search and sdl.context. Pass chatMentions: string[] (plus optional chatMentionWeights, pprDirection, pprWeight) to bias ranking toward symbols structurally close to what the user just talked about. Andersen-Chung-Lang forward-push PPR over DEPENDS_ON, multiplicative boost on the fused RRF list, native Rust impl via compute_personalized_pagerank napi export with a JS push fallback (parity within 1e-3). Per-call cap 2× score, stack cap 4× over the original RRF score when composed with feedback boost.

Changed

  • sdl.symbol.search defaults to hybrid retrieval (FTS + vector + RRF) unless the caller explicitly passes semantic: false. Previously semantic: undefined skipped the hybrid path; now only an explicit opt-out bypasses it, matching sdl.context's default-on behavior since v0.10.7.
  • Internal module splits to reduce per-file surface area (no behavior change):
    • src/graph/slice.ts (~700 LoC) split into slice/{beam-search-engine,card-hydrator,detail-level,edge-projector,types}.ts.
    • src/agent/executor.ts identifier-extraction helpers extracted to src/agent/identifier-extraction.ts.
    • src/retrieval/orchestrator.ts fusion math extracted to src/retrieval/fusion.ts.
    • Refactor scripts under scripts/refactor-extract-*.mjs are reproducible.

Performance

  • Embedding refresh: batched DB writes per model batch. Previously each symbol got its own withWriteConn → setSymbolEmbeddingOnNode call (~8K lock acquisitions per model on a full index). New setSymbolEmbeddingBatchOnNode processes the whole batch inside one write connection. Cuts write-lock acquisitions ~97% (N → N/32 at batch size 32); expected ~60–70% reduction in embedding-phase wall time.

Notes

  • The chat-aware PPR feature was documented under v0.10.8 in earlier CHANGELOG.md revisions; the code actually shipped in this release.

Full Changelog: v0.10.8...v0.10.9