Release Notes Version 1.1
These notes summarize local changes since the last commit.
Highlights
- Added a full async pipeline via
ShinkaEvolveRunnerfor concurrent proposal generation and evaluation. - Introduced prompt co-evolution (system prompt archive, prompt mutation, prompt fitness tracking).
- Expanded island and parent sampling logic, including dynamic island spawning on stagnation.
- Refactored LLM + embedding stack into provider-based modules.
- Major WebUI refresh with dashboard + compare views and new API endpoints.
Cost Budgeting (max_api_costs)
max_api_costsis now a first-class runtime budget guard in evolution runners.- Budget checks use a committed cost model:
- realized DB costs (
api_costs,embed_cost,novelty_cost,meta_cost) - plus estimated cost of in-flight work
- realized DB costs (
- Once the budget is reached, new proposals stop and the runner drains ongoing jobs.
- If
num_generationsis omitted,max_api_costsis required to bound the run.
Added
- Async runtime and helpers:
shinka/core/async_runner.pyshinka/core/async_summarizer.pyshinka/core/async_novelty_judge.pyshinka/database/async_dbase.py
- Prompt evolution system:
shinka/core/prompt_evolver.pyshinka/database/prompt_dbase.pyshinka/prompts/prompts_prompt_evo.py
- Fix-mode prompt path for incorrect-only populations:
shinka/prompts/prompts_fix.py
- Island sampling strategies:
shinka/database/island_sampler.py(uniform,equal,proportional,weighted)
- New plotting modules:
shinka/plots/plot_costs.pyshinka/plots/plot_evals.pyshinka/plots/plot_time.pyshinka/plots/plot_llm.py
- New docs:
docs/async_evolution.mddocs/design/dynamic_evolve_markers.mddocs/design/evaluation_cascades.md
- New example:
examples/game_2048/*
Changed
ShinkaEvolveRunnernow includes:- stronger resume behavior (meta memory + bandit state persistence)
- fix-mode sampling fallback when no correct program exists
- richer metadata and cost accounting
- Database model expanded with:
- dynamic island spawning controls
- island selection strategy config
system_prompt_idlineage field
- LLM/embedding refactor:
shinka/llm/models/*replaced byshinka/llm/providers/*- embeddings moved to
shinka/embed/*
- Evaluation wrapper (
shinka/core/wrap_eval.py) now supports:- per-run process parallelism via
run_workers(with optionalmax_workers_cap) - deterministic result ordering and clearer worker/serialization error surfacing
- early stopping (
bayesian,ci,hybrid)- early stopping remains sequential-only (
run_workers=1)
- early stopping remains sequential-only (
- optional plot artifact generation
- NaN/Inf score guards
- per-run process parallelism via
- WebUI backend and frontend expanded:
- new endpoints for summary/count/details/prompts/stats/plots
- improved WAL retry behavior under active writes
- added
shinka/webui/index.htmlandshinka/webui/compare.html
Packaging and Dependencies
pyproject.tomlupdates:google-generativeai->google-genai- added
psutil - pinned
httpx==0.27 - setuptools packaging config updated
Tests Added
tests/test_async_complexity_1000.pytests/test_bandit_persistence.pytests/test_dynamic_islands.pytests/test_island_sampler.pytests/test_prompt_evolution.pytests/test_wrap_eval_parallel.py
