Releases: ntholm86/evo-releases
Releases · ntholm86/evo-releases
Release list
evo v0.70.0
Added
- Kaizen mode — autonomous outer loop (
autonomy:config block) that audits → prioritizes → steers the inner pipeline → re-audits until the target score is reached or convergence is detected. Supports two auditors: simple (single LLM) and rev (subprocess call torev audit). AutonomyConfig— new Pydantic config section withtarget_score,audit_interval,max_cycles,dimensions, andauditorfields in.evo.yaml.audit_simple()— single-LLM auditor that scores the codebase on configurable dimensions (security, testing, architecture, etc.) and returns prioritized findings.audit_rev()— adversarial auditor that invokesrev audit <path> --format jsonas a subprocess and parses the quality scorecard. Graceful fallback to simple auditor if rev is not installed.- Convergence detection —
_check_convergence()stops kaizen when scores plateau or the target is met. - Priority extraction —
_prioritize_findings()ranks audit findings by severity and generates focused goals for the inner loop via_findings_to_goal(). - Kaizen audit recording —
_record_audit()appends each audit cycle to.evo/kaizen-audits.jsonl. - Observatory — read-only web dashboard (
evo observatory) for exploring the proof ledger, kaizen scorecards, rev transcripts, and trends. Built with Starlette + Jinja2 + HTMX + SSE. Zero build toolchain.- Proof ledger explorer with verdicts, metrics, hash chain, and one-click verification
- Kaizen scorecard with dimension bars, score history, and convergence tracking
- Trends view with cost, merge rate, and iteration stats
- Rev transcript viewer (HTMX-loaded list + detail)
- SSE live stream for real-time pipeline updates
- Dark theme with GitHub-inspired design
evo observatoryCLI command — starts uvicorn on127.0.0.1:8420. Requirespip install evo[observatory].observatoryoptional dependency group —starlette,uvicorn,jinja2,sse-starlette.- 61 new tests — 35 for kaizen (audit, convergence, priority, subprocess mocking) + 26 for observatory (readers, HTTP routes, chain verification, path traversal protection).
Changed
- CLI
runcommand — detectsautonomy:config block and invokes kaizen mode before the standard run loop.
evo v0.69.0
Added
- Configurable fitness — define custom metrics with regex extraction in
.evo.yaml. Each metric key gets a direction (higherorlower) and feeds into the Pareto gate with the same statistical rigor as built-in metrics. - Goal field —
goal:in.evo.yamlinjects a high-level objective into ANALYZE and PROPOSE prompts, steering the LLM toward feature implementation rather than generic weakness-finding. feature_developmentstrategy — new built-in strategy withfeature,test_addition, andbug_fixcategories. Focuses ANALYZE on missing functionality and implementation tasks instead of test gaps.Category.FEATURE— new proposal category for implementing new functionality. Passes through the enforcement gate automatically (onlytest_additionis restricted to test files).- Dynamic Pareto keys —
get_pareto_keys()unions built-in metric sets with custom keys from config. The DECIDE phase evaluates user-defined metrics with Welch's t-test + Holm-Bonferroni, same as standard metrics. - Fitness floor for custom metrics — when only custom metrics are configured (no standard test suite), passing commands floor the fitness score at
tier_highso the DECIDE phase has signal to work with. - Custom metric values in prompts — ANALYZE and PROPOSE now render custom metric values alongside standard metrics, giving the LLM full visibility into what it's optimizing.
Changed
- Strategy-aware propose phase —
_format_metrics_hint()no longer hardcodes "Prefer test_addition" when the strategy supports feature development. Coverage-safe guard only activates whentest_additionis in the strategy's categories. - Strategy-aware analyze phase — coverage gap injection is conditional on strategy; feature-focused strategies skip the coverage lens to avoid drowning out the goal signal.
- Default proposal category from strategy —
_parse_proposal()defaults to the strategy's first category instead of hardcodedtest_addition. LLM failure fallback follows the same rule.
evo v0.68.15
Fixed
- Font loading performance — moved Google Fonts from render-blocking CSS
@importto non-blocking<link>withpreconnecthints anddisplay=swap; eliminates flash of invisible text. - XSS hardening —
_esc()now escapes single quotes ('→') for defense-in-depth. - Hash overflow — entry header and proof chain now show truncated hashes (10 chars) with full hash on hover, preventing horizontal scroll on narrow screens.
Added
- Viewport meta tag — report now scales correctly on mobile devices.
- Print styles —
@media printrules give white background, dark text, and hidden live badge for readable printouts.
evo v0.68.14
Fixed
- Cost-by-phase breakdown — multi-iteration runs now correctly split transcript events per entry instead of attributing the entire run’s costs to each entry. Matching uses proposal + cost_usd to bridge summary
proof_hash→ ledgerentry_hash. - Iteration summary events excluded — empty-model summary records no longer counted as LLM calls in cost aggregation.
evo v0.68.13
Added
- GitHub commit diff links — merge hash in each ledger entry now links to the commit diff on GitHub.
- GitHub release link detection — detects cross-repo releases from GitHub Actions workflows (e.g.
evo-releases).
Changed
- Report fonts — Inter (body) + JetBrains Mono (code/hashes) loaded via Google Fonts.
- CSS type scale — normalized to Major Third (1.250) with named design tokens (
--text-xsthrough--text-3xl); spacing and radius tokens standardized. - Timeline redesign — two-row layout (proposal + delta chip on primary line, date/cost on secondary) replaces single wrapped row; only test count delta shown at glance level.
- Palette brightened — bg
#0d1117→#111820, bg2#161b22→#1c2128, border#30363d→#373e47, text/muted lifted for better contrast while staying dark mode.
evo v0.68.12
Added
- Add tests for _metrics_saturated edge cases · tests 0 → 0 (+0), tests 1986 → 2008 (+22)
evo release r20 · iteration 5 · branch
evo/260414-145900-005-metrics-saturated-edge-cases· proofc9c02c25119c80dc· cost $0.51
evo v0.68.11
Added
- Add tests for format_gene_hints edge cases · tests 0 → 0 (+0), tests 1964 → 1986 (+22)
evo release r19 · iteration 4 · branch
evo/260414-145551-004-format-gene-hints-edge-cases· prooff0c1950c639757bc· cost $0.47
evo v0.68.10
Added
- Add tests for _compress_error edge cases · tests 0 → 0 (+0), tests 1950 → 1964 (+14)
evo release r18 · iteration 3 · branch
evo/260414-145240-003-compress-error-edge-cases· prooff7dd869c3f2fbf9f· cost $0.46
evo v0.68.9
Added
- Add tests for _derive_autofix_cmd flag preservation · tests 0 → 0 (+0), tests 1932 → 1950 (+18)
evo release r17 · iteration 2 · branch
evo/260414-144942-002-derive-autofix-cmd-flag-preservation· proof81940ef9dd3319db· cost $0.45
evo v0.68.7
Fixed
- Version detection now skips nested sub-projects (directories with their own pyproject.toml), preventing false "Version mismatch" warnings for demo packages during RELEASE phase