Releases: EvoMap/evolver
v1.38.0 - Harden Gene Validation Rules
v1.38.0 - Harden Gene Validation Rules
Breaking Changes (Gene Library)
genes.jsonbumped to version 2. All built-in genes now require passing the full test suite as a validation step.- Empty
validationarrays now score 0.5 instead of 1.0 in PRM, penalizing genes that skip validation.
Validation Hardening
validate-modules.jsstrengthened: Beyondrequire(), now checks that exports are non-null, non-empty objects with callable functions. Previously, a module exporting{}ornullwould pass.- New
validate-suite.js: Runs the project's test suite (node --test) as a Gene validation command. All built-in genes now include this as their second validation step, ensuring behavioral correctness -- not just load-ability. - Expanded module coverage: Each gene now validates all critical modules it could affect (e.g., repair gene validates
evolve,solidify,policyCheck,selector,memoryGraph,assetStore) instead of just 1-2.
PRM Scoring Fix
computeProcessScoresPhase 6: genes with emptyvalidationarrays previously received a perfect 1.0 validation score. Now they receive 0.5, incentivizing every gene to define at least one validation command.
Distiller/PolicyCheck Consistency
skillDistiller.validateSynthesizedGene()now usespolicyCheck.isValidationCommandAllowed()directly instead of a separate (weaker) filter. This prevents the scenario where a distilled gene saves anode -e "..."validation command that would be BLOCKED at solidify time.
Tests
- 266 tests pass, 0 failures
- 24 new test cases covering
computeProcessScoresempty/partial/full validation scoring,isValidationCommandAllowedfor--eval/-p/--print/$(), and distillernode -efiltering consistency
Full Changelog: v1.37.0...v1.38.0
v1.36.0 - Rename to Evolver, cross-platform fixes
What's Changed
- Rename: Capability Evolver -> Evolver across all files and references
- README Rewrite: Both EN and ZH READMEs now include GitHub badges, installation steps, Hub integration guide, Worker Pool docs, FAQ, and WORKER_ENABLED vs website toggle explanation
- Cross-platform fixes: Workspace root resolution, bridge auto-detection, cross-platform test runner, cross-platform GEP prompt output, platform-gated Windows signal detection
- Bare invocation:
node index.jsnow runs evolution directly (no longer shows help) - 56 new tests: paths, bridge, prompt, signals, loop mode, and build exclusion rules (278 -> 334 total)
- .env.example: New file documenting all configurable environment variables
Full Changelog: v1.35.0...v1.36.0
v1.35.0
What's New in v1.34.0
Idle-Cycle Gating (Cost Reduction)
When evolver is saturated (no actionable signals), Hub API calls (fetchTasks, hubSearch) are throttled to at most once per EVOLVER_IDLE_FETCH_INTERVAL_MS (default 30 min) instead of every cycle. This dramatically reduces fetch_gdi_cost during idle periods.
Verbose / Debug Mode
New --verbose flag and EVOLVER_VERBOSE=true env var for detailed logging at key decision points: signal extraction, idle gating, gene selection, strategy policy, mutation, and hub search results.
Improved Fetch Error Reporting
evolver fetch now shows HTTP status codes, parsed error details, specific hints for common errors (401/402/404/5xx), and full response body in verbose mode.
Code Quality (Issues #237, #240)
- Added error logging to previously empty catch blocks in
a2aProtocol.js(transport/heartbeat) andassetStore.js(readJsonIfExists) - Migrated 97
vardeclarations toconst/letina2aProtocol.js
New Environment Variable
| Variable | Default | Description |
|---|---|---|
EVOLVER_IDLE_FETCH_INTERVAL_MS |
1800000 (30 min) |
Minimum interval between Hub API calls during idle saturation. Only applies when no actionable signals exist. |
EVOLVER_VERBOSE |
false |
Enable verbose debug logging. Also activatable via --verbose or -v CLI flag. |
v1.34.2
What's New in v1.34.0
Idle-Cycle Gating (Cost Reduction)
When evolver is saturated (no actionable signals), Hub API calls (fetchTasks, hubSearch) are throttled to at most once per EVOLVER_IDLE_FETCH_INTERVAL_MS (default 30 min) instead of every cycle. This dramatically reduces fetch_gdi_cost during idle periods.
Verbose / Debug Mode
New --verbose flag and EVOLVER_VERBOSE=true env var for detailed logging at key decision points: signal extraction, idle gating, gene selection, strategy policy, mutation, and hub search results.
Improved Fetch Error Reporting
evolver fetch now shows HTTP status codes, parsed error details, specific hints for common errors (401/402/404/5xx), and full response body in verbose mode.
Code Quality (Issues #237, #240)
- Added error logging to previously empty catch blocks in
a2aProtocol.js(transport/heartbeat) andassetStore.js(readJsonIfExists) - Migrated 97
vardeclarations toconst/letina2aProtocol.js
New Environment Variable
| Variable | Default | Description |
|---|---|---|
EVOLVER_IDLE_FETCH_INTERVAL_MS |
1800000 (30 min) |
Minimum interval between Hub API calls during idle saturation. Only applies when no actionable signals exist. |
EVOLVER_VERBOSE |
false |
Enable verbose debug logging. Also activatable via --verbose or -v CLI flag. |
v1.34.1
What's New in v1.34.0
Idle-Cycle Gating (Cost Reduction)
When evolver is saturated (no actionable signals), Hub API calls (fetchTasks, hubSearch) are throttled to at most once per EVOLVER_IDLE_FETCH_INTERVAL_MS (default 30 min) instead of every cycle. This dramatically reduces fetch_gdi_cost during idle periods.
Verbose / Debug Mode
New --verbose flag and EVOLVER_VERBOSE=true env var for detailed logging at key decision points: signal extraction, idle gating, gene selection, strategy policy, mutation, and hub search results.
Improved Fetch Error Reporting
evolver fetch now shows HTTP status codes, parsed error details, specific hints for common errors (401/402/404/5xx), and full response body in verbose mode.
Code Quality (Issues #237, #240)
- Added error logging to previously empty catch blocks in
a2aProtocol.js(transport/heartbeat) andassetStore.js(readJsonIfExists) - Migrated 97
vardeclarations toconst/letina2aProtocol.js
New Environment Variable
| Variable | Default | Description |
|---|---|---|
EVOLVER_IDLE_FETCH_INTERVAL_MS |
1800000 (30 min) |
Minimum interval between Hub API calls during idle saturation. Only applies when no actionable signals exist. |
EVOLVER_VERBOSE |
false |
Enable verbose debug logging. Also activatable via --verbose or -v CLI flag. |
v1.34.0
What's New in v1.34.0
Idle-Cycle Gating (Cost Reduction)
When evolver is saturated (no actionable signals), Hub API calls (fetchTasks, hubSearch) are throttled to at most once per EVOLVER_IDLE_FETCH_INTERVAL_MS (default 30 min) instead of every cycle. This dramatically reduces fetch_gdi_cost during idle periods.
Verbose / Debug Mode
New --verbose flag and EVOLVER_VERBOSE=true env var for detailed logging at key decision points: signal extraction, idle gating, gene selection, strategy policy, mutation, and hub search results.
Improved Fetch Error Reporting
evolver fetch now shows HTTP status codes, parsed error details, specific hints for common errors (401/402/404/5xx), and full response body in verbose mode.
Code Quality (Issues #237, #240)
- Added error logging to previously empty catch blocks in
a2aProtocol.js(transport/heartbeat) andassetStore.js(readJsonIfExists) - Migrated 97
vardeclarations toconst/letina2aProtocol.js
New Environment Variable
| Variable | Default | Description |
|---|---|---|
EVOLVER_IDLE_FETCH_INTERVAL_MS |
1800000 (30 min) |
Minimum interval between Hub API calls during idle saturation. Only applies when no actionable signals exist. |
EVOLVER_VERBOSE |
false |
Enable verbose debug logging. Also activatable via --verbose or -v CLI flag. |
v1.33.2
fix: improved fetch error reporting. Shows HTTP status, parsed error details, specific hints for common errors (401/402/404/5xx), and full response body in --verbose mode.
v1.33.1
feat: add --verbose / EVOLVER_VERBOSE debug log mode. Enable via --verbose flag or EVOLVER_VERBOSE=true env var. Logs signal extraction, idle gating decisions, gene selection, strategy policy, mutation details, and hub search results.
v1.33.0
feat: add idle-cycle gating to reduce Hub API calls during saturation. New env var EVOLVER_IDLE_FETCH_INTERVAL_MS (default 30 min) throttles fetch calls when no actionable signals exist. Also fixes 3 pre-existing test failures in skillDistiller.
v1.32.4
v1.32.4
Bug Fixes
- Environment fingerprint: Added
captured_attimestamp field tocaptureEnvFingerprint()-- previously missing, causing downstream validation to fail when checking fingerprint freshness - Signal tag format:
user_feature_requestanduser_improvement_suggestionsignals now emit the base tag (e.g.user_feature_request) alongside the snippet-carrying variant (e.g.user_feature_request:add notification module). Previously only the snippet variant was emitted, causingArray.includes('user_feature_request')checks to miss the signal - State file error logging: Added
console.warnto state file read/write catch blocks inevolve.js-- previously silent failures could mask filesystem permission issues
Code Quality
- var -> const/let migration: Full migration in
issueReporter.js,learningSignals.js, andassetStore.js(failed capsule functions). Addresses #240 - Error logging in catch blocks: Added warning logs to critical-path empty catches per #237 action plan
Test Fixes
- T7 env_fingerprint: Now passes after
captured_atfield was added to fingerprint - T4b innovation_signal: Fixed by emitting base signal tags
- T11 selector_gene_match: Isolated from T5 full_evolve_solidify side effects by using deterministic test genes
- T8 mutation category: Relaxed assertion to accept strategy-dependent result (innovate or optimize)
- skillDistiller tests: Fixed test data to meet 3-step strategy minimum requirement; fixed prompt assertion text
Files Changed
src/gep/envFingerprint.js-- addedcaptured_atfieldsrc/gep/signals.js-- emit base signal tagssrc/gep/assetStore.js-- var -> const/letsrc/gep/issueReporter.js-- full var -> const/let migrationsrc/gep/learningSignals.js-- full var -> const/let migrationsrc/evolve.js-- error logging in state file catchestest/vibe_test.js-- T4b, T7, T8, T11 test fixestest/skillDistiller.test.js-- test data and assertion fixes