Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
943 commits
Select commit Hold shift + click to select a range
846299e
feat: dict → Pydantic migration complete — normalize_memory_card retu…
KhrulkovV Apr 2, 2026
6d9144f
Merge pull request #152 from KhrulkovV/refactor/ideas-tracker-cleanup
KhrulkovV Apr 2, 2026
be0a430
Merge pull request #153 from KhrulkovV/refactor/memory-pydantic
KhrulkovV Apr 2, 2026
4460321
1.26.0
Apr 2, 2026
2115be2
feat: add gigaevo.memory public API exports
KhrulkovV Apr 2, 2026
d6b87b4
fix: lint import sorting in A_mem + GAM_root (pre-existing)
KhrulkovV Apr 2, 2026
cf856bf
fix(memory): address chaos-hacker findings on public API
KhrulkovV Apr 2, 2026
dc565eb
Merge pull request #154 from KhrulkovV/refactor/memory-public-api
KhrulkovV Apr 2, 2026
8ff7243
refactor(memory): consolidate 20 test files into tests/memory/
KhrulkovV Apr 2, 2026
29df034
Merge pull request #155 from KhrulkovV/refactor/memory-test-consolida…
KhrulkovV Apr 2, 2026
866e567
refactor(memory): add future annotations, reduce hasattr/getattr usage
KhrulkovV Apr 2, 2026
f4767a4
fix(memory): correct concept_to_card return type annotation
KhrulkovV Apr 2, 2026
e1def9b
Merge pull request #156 from KhrulkovV/refactor/memory-quality
KhrulkovV Apr 2, 2026
f32e6be
refactor: replace 50 print() with loguru in A_mem + GAM_root
KhrulkovV Apr 2, 2026
9eaebd8
fix: format card_conversion.py
KhrulkovV Apr 2, 2026
4ffad6b
Merge pull request #157 from KhrulkovV/refactor/agentic-quality
KhrulkovV Apr 2, 2026
2a86efe
1.27.0
Apr 2, 2026
21fe62f
merge main into exp/hover-no-deep-retrieval (resolve plot conflict)
KhrulkovV Apr 2, 2026
22a514f
Merge pull request #150 from KhrulkovV/exp/hover-no-deep-retrieval
KhrulkovV Apr 2, 2026
95143e1
refactor: rename memory test files to describe what they test
KhrulkovV Apr 2, 2026
b488828
Merge pull request #160 from KhrulkovV/refactor/test-rename
KhrulkovV Apr 2, 2026
5f4cfb5
refactor: remove all 27 type: ignore comments from codebase
KhrulkovV Apr 3, 2026
4a040d6
Merge pull request #162 from KhrulkovV/refactor/remove-type-ignores
KhrulkovV Apr 3, 2026
e27e8b9
preregister: hover/memory — Memory-Augmented Evolution on HoVer 7-Ste…
KhrulkovV Apr 2, 2026
d140696
fix: flatten ideas_tracker aliases (list[dict]) to MemoryCard (list[s…
KhrulkovV Apr 3, 2026
93267bf
fix: MemoryCard.aliases type list[str] → list[Any]
KhrulkovV Apr 3, 2026
a7adb31
test: integration test for ideas_tracker dict aliases (Bug #2, PR #161)
KhrulkovV Apr 3, 2026
d710812
fix: eliminate ~76k test warnings (0 remaining)
KhrulkovV Apr 3, 2026
c221945
style: ruff format
KhrulkovV Apr 3, 2026
8d1354d
1.28.0
Apr 3, 2026
3e84611
fix: resolve all mypy errors across the codebase (316 → 0)
KhrulkovV Apr 2, 2026
3f2b6a8
fix: reduce type: ignore comments and enable mypy config
KhrulkovV Apr 3, 2026
70a8c59
fix: reduce type: ignore from 93 to 46 with real code improvements
KhrulkovV Apr 3, 2026
f2cf530
fix: _card_type Pydantic crash + E2E pipeline tests (Bug #3, PR #161)
KhrulkovV Apr 3, 2026
2d5f33c
fix: _card_type Pydantic crash + E2E pipeline tests (Bug #3, PR #161)
KhrulkovV Apr 3, 2026
af751dc
Merge branch 'fix/mypy-errors'
KhrulkovV Apr 3, 2026
6010fc1
fix: lint errors from mypy merge (yaml import alias, missing warnings…
KhrulkovV Apr 3, 2026
474b689
fix: second Pydantic .get() crash in memory_write_example.py line 656
KhrulkovV Apr 3, 2026
babfd74
fix: 4 test failures + 1 mypy error on main
KhrulkovV Apr 3, 2026
f7d76f8
refactor: IdeaTracker → PostRunHook, Program-native memory pipeline
KhrulkovV Apr 3, 2026
c2811b3
Merge pull request #163 from KhrulkovV/refactor/post-run-hook-wiring
KhrulkovV Apr 3, 2026
a2e05f0
fix: flatten ideas_tracker aliases (list[dict]) to MemoryCard (list[s…
KhrulkovV Apr 3, 2026
fc98de3
fix: MemoryCard.aliases type list[str] → list[Any]
KhrulkovV Apr 3, 2026
f2d85e5
test: E2E pipeline test for ideas_tracker → memory write (comprehensi…
KhrulkovV Apr 3, 2026
2ad1942
fix: _card_type crashes on Pydantic models (Bug #3, PR #161)
KhrulkovV Apr 3, 2026
e5d5e16
watchdog: update plots (hour 3)
KhrulkovV Apr 3, 2026
32b8a12
fix: MemorySelectorAgent accepts checkpoint_dir/namespace/use_api ove…
KhrulkovV Apr 3, 2026
e70b879
cleanup: remove old memory_selector code from LLMMutationOperator
KhrulkovV Apr 3, 2026
bf5b46e
improve: add logging to MemoryContextStage and SelectorMemoryProvider
KhrulkovV Apr 3, 2026
27dac4d
fix: wire memory_provider from Hydra config into EvolutionContext
KhrulkovV Apr 3, 2026
8eecc4b
Merge pull request #161 from KhrulkovV/exp/hover-memory
KhrulkovV Apr 5, 2026
61f211f
perf: batch _persist_index calls in memory system, eliminate double-w…
KhrulkovV Apr 5, 2026
8ed9396
perf: eliminate double memory_system.read() in _upsert_local_note_fast
KhrulkovV Apr 5, 2026
85b4c51
perf: quick wins — set diff, shared serialization in rebuild
KhrulkovV Apr 5, 2026
ffb5be7
refactor: extract search and synthesis pure functions to card_conversion
KhrulkovV Apr 5, 2026
1a35dcb
docs: update MEMORY_ARCHITECTURE.md with final line counts
KhrulkovV Apr 5, 2026
03afe6f
refactor: move entity mapping management to CardStore
KhrulkovV Apr 5, 2026
7c85fd3
refactor: convert all dataclasses to Pydantic, enforce kwargs-only
KhrulkovV Apr 5, 2026
90dd463
refactor: migrate 14 test files to MemoryConfig via make_test_memory …
KhrulkovV Apr 5, 2026
6bd929a
fix: correct import sort order in test_mutation_operator.py and forma…
KhrulkovV Apr 5, 2026
6dab2a6
refactor: remove legacy kwargs from AmemGamMemory, clean MemoryConfig
KhrulkovV Apr 5, 2026
57c407c
refactor: remove backward-compat attrs, read config directly
KhrulkovV Apr 5, 2026
61ffabc
refactor: extract LLM/storage factories, slim memory.py to 487 lines
KhrulkovV Apr 5, 2026
f0b92c5
fix: replace missed _synthesize_results reference in _search_local_cards
KhrulkovV Apr 5, 2026
77198c3
fix: route entity-map mutations through CardStore methods
KhrulkovV Apr 5, 2026
d7f4e9a
style: format api_sync.py
KhrulkovV Apr 5, 2026
cb590e1
test: migrate test_memory_backend_agentic.py to constructor-time DI
KhrulkovV Apr 5, 2026
0a44c9e
docs: enhance deprecation note for inject_fakes_into_memory
KhrulkovV Apr 5, 2026
9e0e9c4
refactor: slim memory.py to 481 lines, eliminate deprecated functions
KhrulkovV Apr 5, 2026
2564b56
docs: add comprehensive MEMORY_ARCHITECTURE.md + fix import ordering
KhrulkovV Apr 5, 2026
a2efa10
refactor: push path derivations + API save/delete into collaborators
KhrulkovV Apr 5, 2026
cecc816
refactor: add _has_agentic property, TYPE_CHECKING imports, compact w…
KhrulkovV Apr 5, 2026
3f15ec4
refactor: remove backward-compat properties, migrate 39 test refs to …
KhrulkovV Apr 5, 2026
0df4398
chore: update stale test comments to match refactored API names
KhrulkovV Apr 5, 2026
23695c4
feat: add adversarial tests for memory system (36 tests)
KhrulkovV Apr 5, 2026
328b9c8
fix: resolve 5 confirmed memory system bugs exposed by adversarial tests
KhrulkovV Apr 5, 2026
12f4395
fix: resolve 6 chaos-hacker findings (X1, X2, X4, X7/X11, X9)
KhrulkovV Apr 5, 2026
005ffcf
Merge pull request #165 from KhrulkovV/worktree-memory-optimize
KhrulkovV Apr 5, 2026
955ad84
fix: resolve bugs X3 and X5 in memory orchestrator
KhrulkovV Apr 5, 2026
d240df9
refactor: extract save_card decision logic into CardDedup.process_inc…
KhrulkovV Apr 5, 2026
4068841
chore: remove unused DedupDecision import from memory.py
KhrulkovV Apr 5, 2026
8e74431
Merge pull request #166 from KhrulkovV/worktree-memory-optimize
KhrulkovV Apr 5, 2026
4fb899e
refactor(memory): directory reorg — vendor moves, example scripts, do…
KhrulkovV Apr 6, 2026
ca62aae
Merge pull request #167 from KhrulkovV/worktree-memory-optimize
KhrulkovV Apr 6, 2026
10c9dce
refactor(memory): deduplicate code and delete dead paths
KhrulkovV Apr 6, 2026
381e63b
Merge pull request #168 from KhrulkovV/refactor/memory-deduplicate
KhrulkovV Apr 6, 2026
98db023
refactor(memory): replace from_mapping() with Pydantic model_validate()
KhrulkovV Apr 6, 2026
a6968cf
Merge pull request #170 from KhrulkovV/refactor/memory-pydantic-config
KhrulkovV Apr 6, 2026
8cec14b
refactor(memory): rename write pipeline and analysis files
KhrulkovV Apr 6, 2026
1ae530a
Merge pull request #171 from KhrulkovV/refactor/memory-rename-relocate
KhrulkovV Apr 6, 2026
1e29119
refactor(memory): split card_conversion.py into focused modules
KhrulkovV Apr 6, 2026
37a486e
Merge pull request #172 from KhrulkovV/refactor/memory-split-narrow
KhrulkovV Apr 6, 2026
92c09ca
refactor(memory): add custom exception hierarchy and narrow catches
KhrulkovV Apr 6, 2026
e8c60d6
Merge pull request #173 from KhrulkovV/refactor/memory-exceptions
KhrulkovV Apr 6, 2026
bee3973
refactor(memory): replace RuntimeError with custom exceptions, conver…
KhrulkovV Apr 6, 2026
407b757
Merge pull request #174 from KhrulkovV/refactor/memory-exception-conf…
KhrulkovV Apr 6, 2026
2264e09
fix: handle Pydantic models in memory_platform normalize_memory_card
KhrulkovV Apr 6, 2026
64e76f9
test: add memory_platform normalize_memory_card serialization tests
KhrulkovV Apr 6, 2026
bd7343a
chore: add gigaevo-memory as proper dependency, remove sys.path hacks
KhrulkovV Apr 6, 2026
d072a69
test: add full-flow memory_platform serialization tests
KhrulkovV Apr 6, 2026
d221e0d
refactor(memory): add docstrings, type annotations, and named constants
KhrulkovV Apr 6, 2026
b99e221
fix: lint errors in memory_platform test (unused import, sort)
KhrulkovV Apr 6, 2026
4f249d3
Merge pull request #175 from KhrulkovV/refactor/memory-mypy-docs
KhrulkovV Apr 6, 2026
98bd0ab
Update pyproject.toml
KhrulkovV Apr 7, 2026
054df39
Update run.py
KhrulkovV Apr 7, 2026
3aa8bc3
fix(hydra-bleed): delete eval/merge/len resolvers; drop tracker singl…
GrigoryEvko May 16, 2026
55cba97
fix(hydra-bleed): strict ChatOpenAI factory; OPENAI_API_KEY env defau…
GrigoryEvko May 16, 2026
c91dfaa
fix(hydra-bleed): drop dead migration_rate; unify ${ref:X}; add expli…
GrigoryEvko May 16, 2026
286795c
fix(hydra-bleed): thread exec-pool through run_experiment; M3/M4 life…
GrigoryEvko May 17, 2026
f0079a3
feat(config): Pydantic schema scaffold with RedisConfig + LLMConfig
GrigoryEvko May 17, 2026
98b965b
fix(config): tighten schema invariants and add router build() symmetry
GrigoryEvko May 17, 2026
9e0231f
feat(config): algorithm schemas with discriminated selector unions
GrigoryEvko May 17, 2026
db80c93
fix(config): algorithm build() methods + behavior_keys property
GrigoryEvko May 17, 2026
2efa4bd
feat(config): engine schemas with parent-selector and acceptor unions
GrigoryEvko May 17, 2026
8ca9770
fix(config): acceptor required keys stored as set, expose validity_key
GrigoryEvko May 17, 2026
8b5e28f
feat(config): pipeline schemas with builder discriminated union
GrigoryEvko May 17, 2026
30dcb16
fix(config): pipeline empty-path guard + discriminator uniqueness
GrigoryEvko May 17, 2026
c80c4b7
feat(config): ExperimentConfig root with cross-field validators
GrigoryEvko May 17, 2026
cfbe335
fix(config): experiment root output_dir guard + json validator coverage
GrigoryEvko May 17, 2026
d5546db
feat(cli): typed entry point + experiment_loader importlib helper
GrigoryEvko May 17, 2026
095dca1
fix(cli): clean argparse plumbing + exercise tyro override path
GrigoryEvko May 17, 2026
25784c7
feat(config): build_object_graph adapter + run_with_config
GrigoryEvko May 17, 2026
ac2d2bb
fix(config): object_graph zero-exit on partial wiring + bandit path
GrigoryEvko May 17, 2026
aa834cd
feat(experiments): reference HotpotQA steady-state experiment
GrigoryEvko May 17, 2026
6502abb
fix(experiments): document model_copy variants + pin object-graph build
GrigoryEvko May 17, 2026
cf9771f
feat(parity): cross-path harness with structured ParityReport
GrigoryEvko May 17, 2026
71a4134
fix(parity): typed self-parity + instantiate inside hydra context
GrigoryEvko May 17, 2026
dc540e7
feat(config): typed module-level constants replacing config/constants
GrigoryEvko May 17, 2026
6eaf190
feat(config): scheduling schemas with predictor discriminated union
GrigoryEvko May 17, 2026
4abd9bb
fix(config): discriminator uniqueness across nested scheduling unions
GrigoryEvko May 17, 2026
4819007
feat(config): prompt_fetcher schemas covering fixed-dir + coevolved
GrigoryEvko May 17, 2026
7f6f534
fix(config): prompt-fetcher empty-path guard + runtime parameter prop…
GrigoryEvko May 17, 2026
52df940
feat(config): logging schemas with composable tracker list
GrigoryEvko May 17, 2026
b9f479c
fix(config): logging schema requires non-empty trackers, adds SUCCESS…
GrigoryEvko May 17, 2026
5c45cf0
feat(config): migration-bus schemas with topology discriminated union
GrigoryEvko May 17, 2026
df47a78
fix(config): BusedEngineConfig variant activates the bus invariant
GrigoryEvko May 17, 2026
0e6500c
feat(config): LLM preset builders replacing config/llm/*.yaml
GrigoryEvko May 17, 2026
faae57d
fix(config): correct gemini-3.1-pro slug, max_tokens default, add ope…
GrigoryEvko May 17, 2026
e769531
feat(config): problem-directory preset builders
GrigoryEvko May 17, 2026
8831a1f
fix(config): cover optimization / dashboard / alphaevolve problem dirs
GrigoryEvko May 17, 2026
885606b
feat(config): algorithm preset builders covering 9 shipped YAMLs
GrigoryEvko May 17, 2026
077b6c8
fix(config): correct multi_island preset against the YAML
GrigoryEvko May 17, 2026
7d7f88f
feat(config): evolution-engine preset builders
GrigoryEvko May 17, 2026
314a8aa
fix(config): bus + ring engine presets matching migration_bus YAMLs
GrigoryEvko May 17, 2026
fe1d01c
feat(config): pipeline preset builders + ProblemSpecific schema variant
GrigoryEvko May 17, 2026
6b45de5
fix(config): verify problem-specific builder paths import cleanly
GrigoryEvko May 17, 2026
23d48e3
feat(config): DAG runner schema + preset matching runner/default.yaml
GrigoryEvko May 17, 2026
e4c37bb
fix(config): wire DAGRunnerConfig into ExperimentConfig + object_graph
GrigoryEvko May 17, 2026
1f4a0f5
feat(experiments): 8 typed experiment files migrating config/experime…
GrigoryEvko May 17, 2026
3614304
fix(config): wire PromptFetcherConfig through ExperimentConfig + buil…
GrigoryEvko May 17, 2026
786874f
feat(ci): smoke-test typed CLI on every shipped experiment
GrigoryEvko May 17, 2026
05ebfe5
fix(ci): per-experiment timeout + GitHub Actions error annotation
GrigoryEvko May 17, 2026
68fa13f
feat(config): delete gigaevo/config/resolvers.py and cascade dependents
GrigoryEvko May 17, 2026
a8dacf9
feat(config): delete gigaevo/config/helpers.py + clear __init__ re-ex…
GrigoryEvko May 17, 2026
749a476
feat(utils): delete gigaevo/utils/experiment.py
GrigoryEvko May 17, 2026
71399e2
feat(cli): rename gigaevo/cli.py -> run.py, retire legacy Hydra entry…
GrigoryEvko May 17, 2026
d7dfb08
chore(lint): drop stale ruff E402 ignores; isort run.py imports
GrigoryEvko May 17, 2026
1630fb8
feat(config): delete config/ tree (79 Hydra YAMLs)
GrigoryEvko May 17, 2026
0938524
deps: drop hydra-core + omegaconf from project dependencies
GrigoryEvko May 17, 2026
09748c9
test: delete tests/integration/parity/ harness
GrigoryEvko May 17, 2026
cd7243e
docs: rewrite README + USAGE + QUICKSTART for the typed entry point
GrigoryEvko May 17, 2026
feccd72
docs: complete cutover sweep across remaining design and how-to docs
GrigoryEvko May 17, 2026
38ec619
chore: final invariant pass on the typed cutover
GrigoryEvko May 17, 2026
e6850da
feat(sweep): add gigaevo/sweep.py subprocess-isolated sweep runner
GrigoryEvko May 17, 2026
7fe5fcb
feat(sweep): ship two example sweep files under sweeps/
GrigoryEvko May 17, 2026
7cce3ed
test(sweep): regression suite for subprocess isolation in gigaevo/swe…
GrigoryEvko May 17, 2026
1c5a4a9
docs: drop Hydra label from README link, add experiment-file step to …
GrigoryEvko May 18, 2026
0486209
chore(config/schemas): drop archeology from docstrings and tests
GrigoryEvko May 18, 2026
03318c8
chore(config): drop dead preset-side defaults
GrigoryEvko May 18, 2026
fbee1ee
fix(config/schemas): align DAGRunnerConfig.poll_interval lower bound
GrigoryEvko May 18, 2026
0859156
docs: rewrite Hydra config sections in design docs for typed schemas
GrigoryEvko May 18, 2026
697fa81
chore(config): tighten preset docstrings and drop archeology
GrigoryEvko May 18, 2026
694b176
refactor(config/schemas): centralise empty/cwd path rejection helper
GrigoryEvko May 18, 2026
932692e
docs: replace Hydra YAML examples in OPTUNA/load-balancer/steady-state
GrigoryEvko May 18, 2026
5544ab1
chore(config/schemas): mark experiment key-prefix template as Final
GrigoryEvko May 18, 2026
d8c3530
perf(config/schemas): defer langchain_openai and redis runtime imports
GrigoryEvko May 18, 2026
c272adc
test(config): strip archeology and reorder preset tests
GrigoryEvko May 18, 2026
b970b8f
feat(sweep): typed loader errors, fast experiment validation, edge cases
GrigoryEvko May 18, 2026
e7cafed
feat(config): wrap experiment-import exceptions in typed error
GrigoryEvko May 18, 2026
de69b2c
docs(memory): rewrite Hydra group references for provider-class wiring
GrigoryEvko May 18, 2026
4d8e4a2
fix(tools/flush): accept tyro space-separated --redis.db override
GrigoryEvko May 18, 2026
55d357c
test(config): expose ProblemSpecificPipelineBuilderConfig publicly
GrigoryEvko May 18, 2026
3c6b6ea
docs: rewrite memory READMEs for typed CLI; drop private path leaks
GrigoryEvko May 18, 2026
660fd89
fix(schemas): give discriminated-union list fields a default_factory
GrigoryEvko May 18, 2026
1eb80db
docs(usage): document the tyro subcommand syntax for union overrides
GrigoryEvko May 18, 2026
7a2a813
deps: drop unused rank-bm25 from project and mypy overrides
GrigoryEvko May 18, 2026
7db2b9b
docs: rewrite Hydra references in runtime docstrings/comments
GrigoryEvko May 18, 2026
46a56eb
fix(memory/runtime_config): drop dead default settings path
GrigoryEvko May 18, 2026
ae3762f
fix(config/schemas): align schema defaults with preset constants
GrigoryEvko May 18, 2026
b56fadd
fix(config/schemas): validate list defaults to close direct-ctor footgun
GrigoryEvko May 18, 2026
a378a3e
docs(config): explain magic defaults and experiment_id path semantics
GrigoryEvko May 18, 2026
98fd1dc
docs(experiments): correct model_copy update semantics in reference e…
GrigoryEvko May 18, 2026
b710291
docs: drop archeology framing from runtime docstrings and comments
GrigoryEvko May 18, 2026
8a52339
test: drop archeology framing from test docstrings and section headers
GrigoryEvko May 18, 2026
8bd7c1e
test: add pythonpath to pytest.ini so `from tests.x` imports resolve
GrigoryEvko May 18, 2026
8ced5d6
test: drop bug-history archeology from test docstrings
GrigoryEvko May 18, 2026
1c6a3b6
test: drop before-the-fix narration from test docstrings
GrigoryEvko May 18, 2026
2a07bb2
test: drop PR/Bug-N cross-references from test docstrings
GrigoryEvko May 18, 2026
f81c280
test: tighten weak duration/uptime assertions
GrigoryEvko May 18, 2026
059120b
schema(pipeline): scope stage_timeout to variants whose runtime accep…
GrigoryEvko May 18, 2026
c5acdad
fix(sweep): catch OSError from subprocess spawn to keep pool alive
GrigoryEvko May 18, 2026
4056caf
docs: drop YAML archeology from config schema and experiment docstrings
GrigoryEvko May 18, 2026
76129c7
schema(llm): exclude api_key from dump, repr, and config.json
GrigoryEvko May 18, 2026
4d2f315
test: drop deprecated asyncio.get_event_loop() from helpers
GrigoryEvko May 18, 2026
0082115
test: strip archeology and audit-finding labels from test docstrings
GrigoryEvko May 18, 2026
a8431c5
experiments(steady_state_bus): align module docstring with body
GrigoryEvko May 18, 2026
277e476
test: replace remaining audit-finding labels with neutral descriptions
GrigoryEvko May 18, 2026
1462694
fix(memory): bind default-factory fields in RecordCardExtended.__init__
GrigoryEvko May 18, 2026
80e2de3
chore(memory, tools): drop archeology and phase labels from comments
GrigoryEvko May 18, 2026
9116033
fix(tools): close redis clients and write CSV exports atomically
GrigoryEvko May 18, 2026
9248ef9
chore: strip archeology from engine and metrics tracker docs
GrigoryEvko May 18, 2026
ff72ecb
refactor(strategies): drop dead branches and audit-finding markers
GrigoryEvko May 18, 2026
5497002
refactor(stages): drop dead TypeVars and unused common alias
GrigoryEvko May 18, 2026
efc6cf7
refactor(multi_island): reference shared metadata constant during mig…
GrigoryEvko May 18, 2026
8f282f2
perf(scheduling): collapse duplicate dependency regex pass in chain e…
GrigoryEvko May 18, 2026
375e029
docs: drop change-history phrasing from scheduling intro and base tests
GrigoryEvko May 18, 2026
f0d5c33
experiments(steady_state_bus): use build_bus_engine instead of inline…
GrigoryEvko May 19, 2026
32bc075
fix(tools/lineage): guard against cycles when walking parent chains
GrigoryEvko May 19, 2026
54ace17
experiments(prompt_coevolution): derive main_redis_db from RedisConfig
GrigoryEvko May 19, 2026
7f9c9b7
docs: update top-level READMEs to current memory config location and …
GrigoryEvko May 19, 2026
b9a334d
test: rewrite regression docstrings to describe present-tense invariants
GrigoryEvko May 19, 2026
a474d24
fix(chains/musique): load OpenRouter key from env instead of hardcoding
GrigoryEvko May 19, 2026
17a3230
test(brittleness): drop archeology and line-number pins from class do…
GrigoryEvko May 19, 2026
6a87c25
chore: drop dead pydantic JIT-configure block from package init
GrigoryEvko May 19, 2026
c9b8481
fix(tools/lineage): guard None fitness in sort and drop unused metric…
GrigoryEvko May 19, 2026
76912f4
perf(strategies/pareto): cache fitness vectors before pairwise domina…
GrigoryEvko May 19, 2026
ac49de6
test(toy_example): guard module spec against None before exec_module
GrigoryEvko May 19, 2026
5606cd1
fix(evolution/strategies): guard RoundRobinIslandSelector counter wit…
GrigoryEvko May 19, 2026
a441a7d
fix(evolution/scheduling): release predictor lock before feature extr…
GrigoryEvko May 19, 2026
5bf9d2a
perf(collector): cache per-iteration stats once per snapshot epoch
GrigoryEvko May 19, 2026
d780d01
fix(chains/stepwise): thread sample dict into $-reference resolution
GrigoryEvko May 19, 2026
a5de7a1
docs(schemas): add Field descriptions so tyro --help renders inline help
GrigoryEvko May 19, 2026
74ee1a8
fix(prompts/utils): aggregate retry CallLogs instead of indexing [0]
GrigoryEvko May 19, 2026
9343f3c
fix(math-extract): make remove_boxed return None on malformed input
GrigoryEvko May 19, 2026
7cfc728
docs(experiments,runner_presets): tighten module docstrings
GrigoryEvko May 19, 2026
b3a646b
chore(entrypoint): drop empty TYPE_CHECKING block in evolution_context
GrigoryEvko May 19, 2026
9d1669d
chore(tools): prefix unused loop variables with underscore
GrigoryEvko May 19, 2026
fbf97ef
chore(exceptions): drop redundant pass after docstring
GrigoryEvko May 19, 2026
70085ea
fix(chains/validate): align tuple-returning validator annotations
GrigoryEvko May 19, 2026
30ceaf2
fix(prompts/ifbench): stop mutating dataset row inside validate loop
GrigoryEvko May 19, 2026
f4d63ce
fix(prompts/jigsaw_community_rules): return 0.0 fitness when no rule …
GrigoryEvko May 19, 2026
1f3da26
fix(run): drop unreachable return after tyro --help SystemExits
GrigoryEvko May 19, 2026
736c6a5
chore(metrics,tools): collapse identical branches and drop covered noqa
GrigoryEvko May 19, 2026
afa031c
chore(utils,tools): prefix unused tuple components with underscore
GrigoryEvko May 19, 2026
04c4a93
fix(tools/fitness-vs-time): cast sync redis returns to pin pyright
GrigoryEvko May 19, 2026
2621ce3
fix(tools/comparison): asarray smoothed before boolean-indexed NaN fill
GrigoryEvko May 19, 2026
03dc16a
test(evolution/island-selector): silence MagicMock __class__ rebind w…
GrigoryEvko May 19, 2026
7b8e6a8
fix(config/defaults): tighten DEFAULT_BINNING_TYPE to the BinningType…
GrigoryEvko May 19, 2026
505d97f
fix(config/schemas/logging): return CompositeLogger from build_writer
GrigoryEvko May 19, 2026
fc83833
chore: empty commit to refresh PR mergeability after main history rew…
GrigoryEvko May 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
92 changes: 88 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,19 @@ on:
- main

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pip install ruff
- name: Ruff check
run: ruff check .
- name: Ruff format
run: ruff format --check .

build:
runs-on: ubuntu-latest
steps:
Expand All @@ -23,33 +36,104 @@ jobs:
- name: build
run: pip wheel --no-deps -w dist .

test:
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: pip install -e ".[test]"
- name: Run tests with coverage
run: python -m pytest -m "not benchmark" --timeout=60 --cov=gigaevo --cov-report=term-missing --cov-report=xml:coverage.xml tests/
- name: Smoke-test typed CLI on every shipped experiment
env:
OPENAI_API_KEY: test-key-for-ci-dry-run
run: |
set -eo pipefail
for exp in experiments/*.py; do
echo "--- smoke: $exp"
if ! timeout 30s python run.py "$exp" --dry-run; then
echo "::error file=$exp::dry-run failed or exceeded 30s timeout"
exit 1
fi
done
echo "All experiments validated successfully."
- name: Upload coverage report
if: always()
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: coverage.xml
- name: Extract coverage percentage
if: always()
id: coverage
run: |
TOTAL=$(python -c "
import xml.etree.ElementTree as ET
tree = ET.parse('coverage.xml')
print(round(float(tree.getroot().attrib['line-rate']) * 100))
")
echo "total=$TOTAL" >> "$GITHUB_OUTPUT"
echo "Coverage: $TOTAL%"
- name: Update coverage badge in README
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
run: |
TOTAL=${{ steps.coverage.outputs.total }}
if [ "$TOTAL" -ge 80 ]; then COLOR="brightgreen"
elif [ "$TOTAL" -ge 60 ]; then COLOR="yellow"
elif [ "$TOTAL" -ge 40 ]; then COLOR="orange"
else COLOR="red"; fi
ENCODED_PCT="${TOTAL}%25"
sed -i "s|!\[Coverage\](https://img.shields.io/badge/coverage-[^)]*)|![Coverage](https://img.shields.io/badge/coverage-${ENCODED_PCT}-${COLOR})|" README.md
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add README.md
git diff --cached --quiet && exit 0
git commit -m "chore: update coverage badge to ${TOTAL}% [skip ci]"
git push origin HEAD:main

release:
needs: build
needs: [lint, build, test]
permissions:
contents: write
id-token: write
if: github.event_name == 'push' && github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, 'chore(release):')
if: github.event_name == 'push' && github.ref == 'refs/heads/main' && !startsWith(github.event.head_commit.message, 'Automatically generated by python-semantic-release')
runs-on: ubuntu-latest
concurrency: release
steps:
# Checkout on the actual branch (not detached HEAD) so that
# python-semantic-release can push the version commit back to main.
# Fetch the latest origin/main (which may include the coverage badge
# commit pushed by the test job) so semantic-release doesn't fail
# with an "upstream has changed" error.
- uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
fetch-depth: 0
- name: Sync with latest origin/main
run: |
git fetch origin main
git reset --hard origin/main
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: pip install build
- name: Semantic Release
id: release
uses: python-semantic-release/python-semantic-release@v10.4.1
uses: python-semantic-release/python-semantic-release@v10.5.3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Build package
run: python -m build
if: steps.release.outputs.released == 'true'
- name: Publish package distributions to GitHub Releases
uses: python-semantic-release/publish-action@main
uses: python-semantic-release/publish-action@v10.5.3
if: steps.release.outputs.released == 'true'
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
84 changes: 81 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# GigaEvo .gitignore
# Comprehensive ignore patterns for evolutionary computation project

# MkDocs build output
site/

# =============================================================================
# Python
# =============================================================================
Expand All @@ -11,7 +14,7 @@ __pycache__/
*$py.class

# C extensions
*.so
# *.so

# Distribution / packaging
.Python
Expand All @@ -32,13 +35,14 @@ share/python-wheels/
.installed.cfg
*.egg
MANIFEST

*top_programs
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

*results*
!experiments/**/05_results.md
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
Expand Down Expand Up @@ -339,6 +343,16 @@ outputs
ehthumbs.db
Thumbs.db

# =============================================================================
# Memory
# =============================================================================

evo_memory_agent/evo_test/
evo_memory_agent/memory_usage_store/
insights_appearence/
selected_ideas/
redis_commands.txt

# =============================================================================
# Development and Testing
# =============================================================================
Expand All @@ -364,11 +378,13 @@ coverage.xml
# Large data files
*.csv
*.json
*.jsonl
*.pickle
*.pkl
*.h5
*.hdf5
*.parquet
.nltk_data/

# Model files
*.model
Expand Down Expand Up @@ -459,6 +475,7 @@ benchmark
# Program archives
program_archive/
archive_*/
archives/

# Fitness data
fitness_*.csv
Expand Down Expand Up @@ -578,3 +595,64 @@ problems/*/*.json
!docs/**/*.txt
!tools/**/*.ipynb
!demos/**/*.svg

# Runtime data directories (binary artifacts, not for VCS)
data/
outcmaes/
wandb/
runs/
tb_logs/
tensorboard/

# Numpy compressed arrays
*.npz

# Experiment runtime artifacts (plots, test evals, archives, pids, cfg dumps)
experiments/**/plots/
experiments/**/test_evals/
experiments/**/archives/
experiments/**/*.yaml.tmp
experiments/**/*.yaml.lock
experiments/**/pids.txt
experiments/**/cfg_run_*.txt

# Dataset indexes (large binary files — rebuild locally with build_*_index.py)
problems/chains/hotpotqa/dataset/bm25s_index/
problems/chains/hotpotqa/dataset/colbert_index/

# LiteLLM proxy (generated config, DB, logs, pidfile)
tools/.litellm_config.yaml
tools/.litellm.db
tools/.litellm.log
tools/.litellm.pid

# Claude Code (machine-specific memory and indexes — not for sharing)
.claude/projects/
.claude/agent-memory/
.claude/perf-sprint-*.md
AGENTS.md
snapshots/

# Large dataset files (downloaded by dataset scripts)
problems/chains/hover/dataset/*.gz
problems/chains/hover/dataset/*.pkl
problems/chains/hover/dataset/*.tar.bz2
problems/chains/hover/dataset/bm25s_index/
problems/chains/hover/dataset/*.jsonl
gigaevo/llm/ideas_tracker/utils/it_logger_description.md

gigaevo.memory/
mut_dmp/
.codex
evo_memory_agent/
insights_appearence/
selected_ideas/
redis_commands.txt
gigaevo/memory/memory_usage_store/
bm25s_index/
wiki17_abstracts.jsonl.gz
task_bm25s_index
check_openrouter_key.py
experiments.txt
AlgoTune-main/
.env
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
exclude: '^problems/'
default_stages: [pre-push]

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
Expand Down
Loading