Skip to content

Releases: ntholm86/evo-releases

evo v0.70.0

Choose a tag to compare

@ntholm86 ntholm86 released this 17 Apr 18:16

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 to rev audit).
  • AutonomyConfig — new Pydantic config section with target_score, audit_interval, max_cycles, dimensions, and auditor fields 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 invokes rev audit <path> --format json as 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 observatory CLI command — starts uvicorn on 127.0.0.1:8420. Requires pip install evo[observatory].
  • observatory optional dependency groupstarlette, 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 run command — detects autonomy: config block and invokes kaizen mode before the standard run loop.

evo v0.69.0

Choose a tag to compare

@ntholm86 ntholm86 released this 16 Apr 15:23

Added

  • Configurable fitness — define custom metrics with regex extraction in .evo.yaml. Each metric key gets a direction (higher or lower) and feeds into the Pareto gate with the same statistical rigor as built-in metrics.
  • Goal fieldgoal: in .evo.yaml injects a high-level objective into ANALYZE and PROPOSE prompts, steering the LLM toward feature implementation rather than generic weakness-finding.
  • feature_development strategy — new built-in strategy with feature, test_addition, and bug_fix categories. 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 (only test_addition is restricted to test files).
  • Dynamic Pareto keysget_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_high so 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 when test_addition is 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 hardcoded test_addition. LLM failure fallback follows the same rule.

evo v0.68.15

Choose a tag to compare

@ntholm86 ntholm86 released this 15 Apr 03:06

Fixed

  • Font loading performance — moved Google Fonts from render-blocking CSS @import to non-blocking <link> with preconnect hints and display=swap; eliminates flash of invisible text.
  • XSS hardening_esc() now escapes single quotes ('&#x27;) 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 print rules give white background, dark text, and hidden live badge for readable printouts.

evo v0.68.14

Choose a tag to compare

@ntholm86 ntholm86 released this 14 Apr 17:24

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 → ledger entry_hash.
  • Iteration summary events excluded — empty-model summary records no longer counted as LLM calls in cost aggregation.

evo v0.68.13

Choose a tag to compare

@ntholm86 ntholm86 released this 14 Apr 16:26

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-xs through --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

Choose a tag to compare

@ntholm86 ntholm86 released this 14 Apr 15:01

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 · proof c9c02c25119c80dc · cost $0.51

evo v0.68.11

Choose a tag to compare

@ntholm86 ntholm86 released this 14 Apr 14:58

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 · proof f0c1950c639757bc · cost $0.47

evo v0.68.10

Choose a tag to compare

@ntholm86 ntholm86 released this 14 Apr 14:55

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 · proof f7dd869c3f2fbf9f · cost $0.46

evo v0.68.9

Choose a tag to compare

@ntholm86 ntholm86 released this 14 Apr 14:51

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 · proof 81940ef9dd3319db · cost $0.45

evo v0.68.7

Choose a tag to compare

@ntholm86 ntholm86 released this 14 Apr 13:57

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