v1.1.0-rc2 — Session E (Ollama + cache + candidates scaffolds)
Pre-release
Pre-release
Closes out the code-only tickets in the v1.1.0 scope (Session E).
What's new since v1.1.0-rc1
Added
- #51 —
wiki/candidates/approval workflow. Newllmwiki/candidates.pymodule (list/promote/merge/discard/stale_candidates),/wiki-reviewslash command,llmwiki candidates <action>CLI, 12th lint rule (stale_candidates). Non-destructive discard archives towiki/archive/candidates/<timestamp>/with a.reason.txtaudit file. - #35 — Ollama backend scaffold for local LLM synthesis. New
llmwiki/synth/ollama.py(OllamaSynthesizer+ config + privacy-by-default localhost check).resolve_backend()picks backend fromsynthesis.backendconfig (dummy / ollama). Newllmwiki synthesize [--check | --dry-run | --force | --estimate]CLI subcommand. Stdliburllibonly — no new dependencies. - #50 — Prompt caching + batch API scaffold. New
llmwiki/cache.pymodule withCachedPrompt,make_cached_block,build_messages,estimate_tokens/estimate_cost/MODEL_PRICINGrate card (Sonnet 4.6 / Haiku 4 / Opus 4), and persistentBatchStateformessage_batchestracking.llmwiki synthesize --estimateprints a cached-vs-fresh token + dollar preview without calling any API.
Fixed
- #51 follow-up —
StaleCandidateslint rule. Added missingPathimport so the seeded-wiki lint CI job no longer crashes. Regression test added. - #51 follow-up — Python 3.9 f-string compatibility.
tests/test_candidates.pyhad a nested f-string with a backslash that Python 3.9 rejects; extracted the default body into a local variable.
Stats
- 1524 tests passing, 10 skipped (up from 1431 in rc1).
- 3 feature PRs + 1 fix PR (#232 #236 #230 #233), all GPG-signed.
- No new runtime dependencies. All scaffolds are stdlib-only; the Anthropic backend that consumes
llmwiki/cache.pylands in v1.2 behind a separate PR.