Skip to content

v0.15.4

Choose a tag to compare

@mliotta mliotta released this 14 Apr 21:29
· 143 commits to main since this release
113a71e

Fixed

Raise the bar above the base LM by closing four reasoning gaps that caused Neo to collapse to "LLM + logging":

  • Objective early-exit gate: require self-confidence >0.8 AND static checks actually ran clean AND simulation traces agree (>=2 matching outputs), instead of trusting self-reported confidence alone. Prior gate bailed without verification in 47.7% of sessions.
  • Outcome learning reaches retrieval ranking: shared success_bonus(n) between FactStore.retrieve_relevant and ContextAssembler._score_facts via memory.models. Bonus capped at 0.2 so a narrow historical winner can't dominate cosine similarity.
  • Constraint verification wired into main path: ConstraintVerifier.extract_constraints now runs at prompt time; typed constraints threaded as parameters (no instance state); marker dict keyed by ConstraintType enum; comments and string literals stripped before substring match.
  • Community-facts fallback: prompts always carry some memory-derived context when FactStore retrieval returns empty.

Changed

  • Single NeoEngine._finalize_output exit point for both early-exit and full-pipeline paths (eliminates duplicated save/log/telemetry blocks).
  • Narrowed silent except Exception in community fallback to (OSError, json.JSONDecodeError).

Removed

  • Unsafe ConstraintVerifier.verify_code subprocess path (executed arbitrary generated code via exec; never called).