v0.15.5
Fixed
Revive the learning feedback loop. Three breaks were keeping confidence scores meaningless — 99.7% of facts had success_count=0 because the outcome pipeline was structurally dead:
- Synthesize
unified_difffromcode_blockwhen the LM returns an empty diff for a real file path. Empty diffs collapsed every outcome toUNVERIFIED, andsuccess_countonly grows onACCEPTED/ linked-UNVERIFIED. - Tighten the code-generation prompt:
diffandcode_blockare now REQUIRED for real file paths; empty is only permitted whenfile_path="/". Closes the escape hatch that made ~34% of suggestions signal-less. - Run pruning on every
FactStore.initialize(), not just when outcomes fire (prune_stale_facts/demote_unhelpful/purge_dead). Inactive projects were accumulating review facts indefinitely. Also shortened the staleness window forINDEPENDENT-tagged facts to 7 days since they're 0.2-confidence noise by construction.