Skip to content

lode v1.2.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 17:06
· 1615 commits to trunk since this release

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_llm are 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 lancedb guidance now that the table self-heals (lode-su17)
  • Docs (research): local open-weight models feasibility note (worktree-research-local-models)