v0.15.0
Close broken feedback loop and harden memory lifecycle
Fixed
- False "accepted" signals when suggested diffs were empty
- Unbounded independent outcome flooding (2800+ noise facts in active repos)
- Community facts silently lost on cross-project saves
- Diff overlap conflating
+fooand-fooas same line _cap_independent_factscallingsave()duringload()- Test suite polluting real
~/.neo/constraints/checksums.json
Added
OutcomeTypeenum (ACCEPTED, MODIFIED, UNVERIFIED, INDEPENDENT)- "Unverified" outcome type for suggestions with no diff comparison
- Rate-limit independent outcomes to 5/session, 50/project
PROTECTED_TAGS— seed, community, synthesized facts protected from pruning- Best-effort merge on global fact save for cross-project safety
Changed
- Independent fact confidence lowered to 0.2 for faster stale pruning
- Diff filter simplified to single list comprehension
- Test fixture converted to generator for proper patch lifetime
See CHANGELOG.md for full details.