Repository navigation
lode v1.2.0
Second minor release since v1.1.0. Headline: lode can now run its cloud LLM
calls through providers other than Anthropic (OpenAI via Azure), the Python
dependency set is fully locked and CI-verified, and model provenance is
recorded end-to-end. Plus new corpus-regeneration commands and the restored
multi-agent correctness review.
Support LLM vendors outside Anthropic (OpenAI via Azure) — epic lode-568v
Introduces a vendor-neutral LLMProvider seam and a second implementation, so
the cloud LLM (enrichment + Q&A) is now provider-selectable rather than
hard-wired to Anthropic. Embeddings stay local-only.
- Vendor-neutral LLMProvider seam pinned in the design docs (lode-568v.1)
- LLMProvider seam + Anthropic implementation, behavior-preserving refactor of every cloud-LLM call site (lode-568v.2)
- OpenAI-via-Azure provider behind the seam (lode-568v.3)
- Capture provider identity on enrichment rows for DB provenance (lode-568v.4)
- User-facing docs for selecting the provider (lode-568v.5)
- Provider-aware enrichment staleness in
lode reenrich/lode status(lode-568v.6)
Dependency pinning: lock the Python package set and control updates — epic lode-g274
The runtime dependency set is now hash-locked in requirements.lock, installed
from the lock by default, and checked for currency in CI.
- Hash-verified requirements.lock; install from it, with an --unlocked escape hatch (lode-g274.1)
- Characterization test pinning trafilatura's extraction behavior (lode-g274.3)
- Record and verify the ONNX model revisions used for embedding (lode-g274.4)
- Record the enrichment model identity for DB invalidation (lode-g274.5)
- CI installs from the lock and fails on drift (lode-g274.6)
lode reembed: regenerate the corpus when the embedding model changes (lode-g274.7)
Model provenance: pin, verify, and regenerate — epic lode-crh8
- Decide and document the model-provenance data shape and mismatch behavior: record + detect, never refuse (lode-crh8.1)
Features
lode reenrich: targeted re-enrich of live heads whose AI annotations disagree with the current enrichment LLM (lode-14jr)- Self-heal a schema-mismatched LanceDB vector table (drop + recreate) so recovery needs no manual
rm(lode-t08v) lode status: flag enrichment as stale-vs-current-config, not just mixed-model (lode-o9k3)
Fixes
- Q&A model knobs
qa_llm/qa_think_harder_llmare now actually consumed at runtime (lode-obms) - Regenerate requirements.lock for Python 3.14 so lock-currency CI goes green (lode-gyag)
- Warm the model cache in the all-clear enrichment-footer test to stop a CI flake (lode-0d2i)
Internal / workflow
- Restore the multi-agent correctness review as a Workflow (lode-905v)
- correctness-review: K-round FIND union to reduce stochastic single-pass misses (lode-p5gf)
- correctness-review FIND: independently establish prior behavior instead of trusting a diff's self-claim (lode-eohb)
- Reconcile the correctness-review thread in docs/decisions.md (lode-4zpn)
- scripts/update-deps.sh: controlled dependency updates with gated promote/rollback (lode-fdjr)
- Extract the shared venv-install sequence into one sourced function (lode-02xy)
- Pin ruff to 0.15.22 to unblock repo-wide nox -t fix (lode-umh2)
- Docs: de-Anthropicize the enrichment/Q&A/egress narrative (lode-29id)
- Docs: how to rebuild the vector cache after a schema-mismatch crash (lode-2lu2)
- Docs: drop stale
rm -rf lancedbguidance now that the table self-heals (lode-su17) - Docs (research): local open-weight models feasibility note (worktree-research-local-models)