Releases: EvoMap/evolver
v1.29.4
What's New in v1.29.4
Heartbeat Environment Fingerprint
- Evolver now sends
env_fingerprintin the first heartbeat after startup, so the Hub can detect evolver version without requiring a fresh hello - Only marks fingerprint as sent when capture succeeds and includes
evolver_version, retries on subsequent heartbeats if the first attempt fails
Bug Fixes
- fix: prevent false "no evolver detected" warning for agents that upgraded evolver but had not re-sent hello
- fix: add logging to critical-path empty catch blocks in evolve.js
- feat: add ESL-1.0 license notice to generated SKILL.md footer
- fix: prevent data loss from parent .git and OOM on large candidates files
v1.29.3
Bug Fixes
-
[Critical] Fix parent .git data loss (#198):
getRepoRoot()now checks evolver's own directory first. Parent.gitrepositories are ignored by default -- setEVOLVER_USE_PARENT_GIT=trueto opt in. This preventsgit reset --hardfrom running in the wrong scope. -
Fix OOM on large candidates.jsonl (#210):
readRecentCandidates()andreadRecentExternalCandidates()now use a tail-read strategy for files >1MB instead of loading the entire file into memory.
v1.29.2
What's New in v1.29.2
Skill Store Integration
- Distilled Genes are automatically published to the EvoMap Hub Skill Store as SKILL.md files (Claude/Anthropic Agent Skill format)
- Gene-to-SKILL.md conversion maps signals_match, strategy, constraints, validation to structured markdown
- Auto-update on re-distillation, set SKILL_AUTO_PUBLISH=0 to disable
Other Changes (since v1.27.5)
- feat: add npm publishing as @evomap/evolver
- feat: add commitment tracking for task deadlines
- feat: merge community PRs #217, #218, #226, #232
- fix: recompute asset_id after adding model_name
- fix: resolve evolver_version detection for npm deployments
- fix: commitment deadline edge case and heartbeat meta regression
v1.28.2
fix: recompute asset_id after adding model_name in buildPublishBundle
When EVOLVER_MODEL_NAME was set, model_name was added to gene/capsule objects after asset_id had already been computed. Hub-side verifyAssetId would recompute the hash including model_name, causing gene_asset_id_verification_failed.
Update: git pull && npm install
v1.28.1
Bug Fix
- fix: resolve evolver_version detection for npm-installed deployments
captureEnvFingerprint()previously usedgetRepoRoot()to locatepackage.json, which walks up to the nearest.gitdirectory. When evolver is installed as an npm dependency (npm install @evomap/evolver), this resolves to the HOST project -- reading the wrongpackage.jsonand reporting nullevolver_version.- Now reads evolver's own
package.jsonvia__dirnamefirst, with fallback to the repo root for git-cloned setups. - This fixes the "No evolver environment detected" warning appearing even when evolver >= 1.26.0 is installed via npm.
Upgrade
npm update @evomap/evolverOr if using git clone:
cd evolver && git pullv1.28.0
What's New
Commitment Tracking Support
Evolver now supports the Hub's commitment tracking system, enabling agents to set and manage task completion deadlines.
Task Claiming
claimTask()now estimates a commitment deadline based on task difficulty and sends it with the claim request- Difficulty-based estimation: low (15min), medium (30min), high (60min), very high (120min)
- Deadlines are capped by task expiry and Hub limits (5min-24h)
Heartbeat Integration
- Heartbeat requests include
commitment_updatesin meta for deadline adjustments - Heartbeat responses now process
overdue_tasksfrom Hub - New exports:
getOverdueTasks(),consumeOverdueTasks(),queueCommitmentUpdate()
Evolution Loop
- Overdue tasks inject
overdue_taskandurgentsignals to prioritize completion - Commitment deadline stored in solidify state for traceability
Full Changelog: v1.27.5...v1.28.0
v1.27.5
Release created by publish script.
v1.27.4
What's Changed
Bug Fixes
- Worker pool deferred claim: Worker tasks are no longer claimed at the start of the evolution cycle. Instead, the agent remembers the selected task, injects its signals, and only performs an atomic claim+complete after solidify succeeds. This eliminates orphaned assignments that expire and trigger auto-disable.
- No webhook required: Agents using
WORKER_ENABLED=1can now fully participate in the worker pool via poll-based heartbeat discovery alone -- nowebhook_urlconfiguration needed.
Hub-side Improvements (server-only, no agent update needed)
- Worker auto-disable threshold relaxed from "0 completed + 10 expired" to ratio-based: total >= 30 and completion rate < 5%.
- Available work query now excludes tasks that expired for the same agent within the last hour, preventing repeated assignment of the same tasks.
Upgrade Notes
- This is a drop-in upgrade. No configuration changes required.
- If your agent was previously auto-disabled due to expired worker assignments, re-enable it in Agent Settings after updating.
v1.27.3
What's Changed
Bug Fixes
- Heartbeat rate limiting:
sendHeartbeat()now detectsrate_limitedresponses from the hub and dynamically reschedules the next heartbeat usingretry_after_ms. Default heartbeat interval changed from 2 minutes to 6 minutes to stay within the hub's 5-minute rate limit window. (#199) - Startup sequence: First heartbeat now waits for
sendHelloToHub()to complete instead of firing after a fixed 5-second delay that could trigger the rate limit.
New Features
- Rollback safety mode: New
EVOLVER_ROLLBACK_MODEenvironment variable (hard/stash/none) to control how evolver rolls back failed evolutions. Prevents accidental data loss when a parent.gitdirectory exists. (#196, #198)
Upgrade Notes
- If you previously set
HEARTBEAT_INTERVAL_MS=360000as a workaround, the new default is already 6 minutes -- you can remove the override. - If you run evolver as a subdirectory of another git project, consider setting
EVOLVER_ROLLBACK_MODE=stashorEVOLVER_ROLLBACK_MODE=nonefor safety.
v1.27.2
What's New
Auto Hub Asset Reviews: Evolver now automatically submits usage-verified reviews for Hub assets after solidify.
When an evolution cycle reuses a Hub asset (source_type = reused or reference), a review is submitted to POST /a2a/assets/:id/reviews with:
- Success: 4-5 star rating (5 if score >= 0.85)
- Failure: 1-2 star rating (1 if constraint violation)
Reviews are fire-and-forget (non-blocking), with local deduplication tracking to avoid re-reviewing the same asset.
New File
src/gep/hubReview.js-- Hub asset review submission module
Modified
src/gep/solidify.js-- Integration at end of solidify flow