Releases: Timwood0x10/ARES
Releases · Timwood0x10/ARES
Release list
v0.2.7
[0.2.7] - 2026-07-13
This is a major milestone release — 270 commits, 99 features, 27 fixes, 74 refactors since v0.2.5.
Four big themes: all pipelines connected, all modules closed-loop, GA evolved again, dynamic workflow.
Theme 1: All Pipelines Connected
- Phase 3-6 WiredEvolutionSystem Integration:
genome_wiring_system.gounifies all evolution phases into a singleWiredEvolutionSystemwithReflector,HypothesisGen,MetaCtrl(Phase 3-5),DiffReg,Coordinator,GenomeReg(Phase 6).RunIdleEvolution()Phase 6 generates diff patches asPatchProposalwithSourceGAandPriority 6. Full reflection loop and diff engine integration. - Service Bridge:
service_bridge.goprovides bidirectional conversion between API and internal strategy representations:toAPIStrategy(),toInternalStrategy(),cloneParams(),cloneDimensionScores(). Enables the evolution system to integrate with the HTTP API layer without exposing internal types. - Memory Pipeline Complete: End-to-end memory pipeline with
ReportGenerator,PushService, and report formatting for human-readable evolution summaries. Full cycle: evaluation → distillation → report → push. - Internal Evolution Module (
internal/evolution/): New standalone evolution runtime withcoordinator,diff,genome,patchsub-packages. 4 Differs (Workflow, Scheduler, Knowledge, Recovery), 5 Executors (Graph, Recovery, Knowledge, Memory + StrategyStore), 6 Genomes (Workflow, Scheduler, Knowledge, Recovery, Planner, Memory). - Internal Evidence Module (
internal/evidence/): Evidence data primitives + MemoryStore. Feeds evolution decisions with structured execution evidence. - Internal Knowledge Module (
internal/knowledge/): Full AKF Knowledge Fabric with linker, compiler, pipeline, retriever, runtime, provider (code, evolution, memory, mysql, vector), store (memory, postgres, sqlite), MCP integration, and workflow orchestration.
Theme 2: All Modules Closed-Loop
- Memory Evolution Genome:
MemoryGenomeConfigwith configurable parameters:MaxHistory[3–50],MaxSessions[20–500],MaxDistilledTasks[500–20000],UseStructuredCleaning. ImplementsMutate(),Crossover(),Fitness()with heuristic fitness based on evidence quality. Works alongside the strategy genome in the evolution pipeline. - Planner Evolution Genome:
PlannerGenomeConfigwith strategy selection:balanced,architecture-first,memory-first. ConfigurableMaxSources[3–30] andMinRelevance[0.1–0.9]. Heuristic fitness assessment based on evidence coverage and consistency. Evolves planning behavior alongside strategy parameters. - Memory Patcher:
RuntimeComponentimplementation withSnapshot(),Apply(),CanApply()lifecycle. SupportsPatchChangePlanner,PatchChangeBudget,PatchChangeReducerfor controlled memory system changes. Enables the evolution system to propose and apply memory configuration patches. - Agent Age Eviction:
AgentMaxAgeconfig limits strategy lifespan;GenerationCreatedtracking ensures agents survive exactlyAgentMaxAgegenerations. Legacy strategies (GenerationCreated==0) exempted. - Confidence Calculation: Added sample-based confidence to
AggregateEvidenceCrossTask, enabling evidence quality scoring in cross-task aggregation. - Truncate Utility Consolidation: Unified
internal/ares_memory/internal/truncatepackage for reusable truncation logic across memory and LLM modules.
Theme 3: GA Evolution v2
- NSGA-II Multi-Objective Selection: Pareto-based multi-objective optimization for strategy evolution.
NondominatedSortingSelectionwith non-dominated sorting, crowding distance computation, and Pareto front ranking. Four default optimization dimensions:success_rate(maximize, 0.40 weight),quality(maximize, 0.25),cost(minimize, 0.20),latency(minimize, 0.15). Direction-aware Pareto dominance ensures proper handling of minimize vs maximize objectives. Configurable viaWithSelectionStrategy("nsga2")orWithSelectionStrategy("nondominated"). - Split Canonical/Selection Score:
Scorefield represents canonical fitness (never modified by GA internals),SelectionScorefield is adjusted by fitness sharing per epoch.effectiveScore()falls back toScorewhenSelectionScoreis zero, enabling backward compatibility with existing scoring pipelines. - Fitness Sharing with 3 Strategies: Diversity-preserving fitness sharing with three automatic scaling strategies: full O(n²) pairwise for small populations (< 100), reservoir sampling for medium populations, spatial grid index for large populations (> 500).
shareSigma = 0.3,FitnessNicheRadius = 0.15. Elites are exempt from sharing penalty. Configurable viaWithFitnessSharing(true). - Steady-State GA:
EvolveSteadyState()method replaces onlymax(1, int(float64(p.Size) * replaceRate))worst individuals per generation (default 30%). Enables online learning — population persists across generations, only bottom performers are replaced by new candidates. Ideal for production deployments where the system learns continuously without full generation resets. Configurable viaWithSteadyState(true)andWithReplaceRate(rate). - Experience-Guided Mutation System: Three-tier evolution experience pipeline:
ToolCallRecord → RawExperience → NormalizedExperience → EvolutionHint.GuidanceProviderinterface provides directional hints for mutation.ToolCallExperienceCollectorcaptures tool call outcomes.MemoryExperienceStorewith dictionary-based indexing stores and retrieves evolution hints.AggregateEvidencecomputes success rate, p50/p95 latency, and confidence scores for cross-task evidence aggregation.
Theme 4: Dynamic Workflow Engine
- MutableDAG: Thread-safe mutation (add/remove nodes and edges at runtime). Incremental cycle detection on edge insertion.
- DynamicExecutor:
ApplyModefor hot-reload without stopping execution. - GraphPatchExecutor: Insert, remove, or replace nodes at runtime — DAG topology evolution.
- ExecuteFromCheckpoint: Lightweight workflow resume from checkpoint via
Graph.ExecuteFromCheckpoint(). Checkpoint integration via PluginBus hooks. - LoopPlugin: Controlled execution loops with configurable iteration limits.
- RouterPlugin Auto-Wiring: Automatic plugin registration based on declared capabilities.
Documentation
- Architecture Diagram Overhaul: Updated README architecture diagram to 6-layer model (added Evolution Engine layer), with GA engine details (7 selectors, 3 crossover, 6 mutation, 6 genomes), runtime evolution pipeline, and data flow sequence diagram.
- GA Deep-Dive Articles: Updated
docs/articles/en/autonomous-evolution-deep-dive.mdanddocs/articles/zh/autonomous-evolution-deep-dive.mdwith 6 new subsections (9.11-9.16) covering NSGA-II, steady-state GA, split score, experience system, memory evolution, and Phase 3-6 integration. - GA-in-the-Trenches: Updated
docs/articles/en/ga-in-the-trenches.mdanddocs/articles/zh/ga-in-the-trenches.mdwith steady-state GA, NSGA-II, split score lessons, and new Lesson 6 on experience systems. - Overview Update: Updated
docs/articles/zh/autonomous-evolution-overview.mdwith service bridge, memory evolution, and experience hints coverage. - Feature Doc Update: Updated
docs/en/features/autonomous-evolution.mdanddocs/zh/features/autonomous-evolution.mdwith all new GA features. - Analysis Plan Sync: Updated
GA_ANALYSIS.mdandGA_DEVELOPMENT_PLAN.mdto reflect completed implementation status.
Integrated Examples & Infrastructure Fixes
- Knowledge Base Example (
examples/11-knowledge-import/): Complete structure-aware markdown knowledge base with CLI import/query, multi-agent team import, and dialog-based chat. Integrates parser (6 BlockTypes), section-first chunker, PostgreSQL + pgvector embedding, batch transactions, and retry with exponential backoff. - AKG Knowledge Graph Builder (
examples/11-knowledge-import/akg/): Builds working knowledge graphs from the knowledge base viaKnowledgeRuntime.Execute(). 147 nodes, 27K edges, 73ms build. Uses the existing PGProvider (tag column bug fixed), planner, linkers (DecisionLinker, ArchitectureLinker, TimelineLinker, SimilarityLinker), and reducer — zero custom infrastructure. - LLM Failover:
FailoverClientwired through SDK'sWithFallbackLLM()option. Automatic 30s timeout → cooldown → fallback. Verified with ollama chain. - GA Evolution Integration:
--evolveCLI command callsRuntime.Evolve()with population (10 agents × 3 generations).executeAndScorebug fixed (nil pointer onruntimefield). Best strategy scored 99.5/100. - Event Store Tool Chain Recording:
Agent.Run()now emitsEventToolCallStarted/EventToolCallCompletedevents toares_events.EventStorefor every tool call, capturing tool name, arguments, result, and success status. - Chaos Engineering + Resurrection:
ToolWrapperwith fault injection (failure rate, latency, kill-after-N-calls) andAgentSupervisorfor health monitoring.--chaos-fail/--chaos-latency/--chaos-killflags. - SDK AKG Context Injection:
buildMessages()queriesKnowledgeRuntimebefore each agent run and injects compiled knowledge graph context into the system prompt. Enabled viaWithEvolution()+WithKnowledge(). - DeepSeek ReasoningContent Support: Added
ReasoningContentfield toMessageandAssistantMsgstructs, wired throughtoMap()for proper round-trip serialization of DeepSeek thinking mode responses. - PGProvider Bug Fix:
scanRow()scanned the tag column via SQL but never assigned it toobj.Tags. Fixed — tag column data now properly populatesKnowledgeObject.Tags. - 14 Lint Fixes: errcheck, noctx, gosec G114, goconst, staticcheck SA9003/QF1012, unused dead code —...
v0.2.6
[0.2.6] - 2026-07-07
New Features
- Unified SDK Package (
sdk/): New top-level APIsdk.MustNew()/sdk.New()with functional options (WithOpenAI,WithOllama,WithAnthropic,WithDefaultMemory,WithEvolution,WithMCP,WithHumanInput, etc.). Single entry point for LLM, tools, memory, evolution, and MCP. - Agent Runtime:
agent.Run(ctx, input)ReAct loop with tool calling, memory context injection, token tracking, and result metadata. - Streaming Support:
agent.Stream(ctx, input)returns<-chan StreamChunkfor async response streaming. - Multi-Agent Teams:
rt.NewTeam(name, leader, members)withteam.Run()for leader/member orchestration. - Human-in-the-Loop:
WithHumanInput()callback for tool call approval before execution. - MCP Integration:
WithMCP()connects to MCP servers via stdio, auto-registers their tools. - Strategy Evolution:
rt.Evolve(ctx, agent, task)evolves agent instructions via LLM.WithEvolution()enables the evolution system. - CLI Tools (
cmd/ares/):ares init(scaffold project),ares run(run agent from config, auto-detectsares.yaml),ares bench(benchmark with JSON/Markdown output),ares doctor(diagnose environment),ares version. - Config-Driven Setup:
sdk.LoadConfigFile(path)reads YAML config,cfg.ToOptions()converts to SDK options.ares runauto-discoversares.yamlorconfig/ares.yaml. - Evaluation Framework (
evaluation/):evaluation.New(),Register(),RunScenario(),RunAll()with structuredMetrics,Report,Aggregate. Report output viaToMarkdown()/ToJSON(). Built-in scenarios: basic-chat, tool-calling, multi-agent, resilience, evolution.
Examples
- 9 New SDK Examples: Numbered
01-quickstartthrough09-full-app, each withares.yamlconfig.01-quickstart: Minimal agent in 20 lines02-tool-calling: Multi-tool registration03-dag-workflow: MutableDAG + conditional branching04-multi-agent: Leader/member team orchestration05-evolution-demo: Instruction evolution before/after comparison06-chaos-resilience: 9 failure modes (file, timeout, network, MCP, LLM, memory, graceful degradation)07-human-in-loop: Tool call approval withWithHumanInput08-mcp-integration: MCP server connection viaWithMCP09-full-app: Web UI + Agent + Tools + Memory + Stats dashboard
- Evaluation Example (
examples/eval/): Runs all 5 capability scenarios with scoring.
Documentation
- README Rewrite: Reduced from 774 to 214 lines. SDK Quick Start at the top. English (
README.md) and Chinese (README_CN.md) versions. - GitHub Pages Website:
docs/index.htmlwith dark theme, marked.js inline Markdown rendering, all articles browsable. - Architecture Diagram: Mermaid diagram covering SDK, LLM providers, Tools, Memory, Evolution, CLI, Examples.
- 7 Cookbook Recipes:
docs/cookbook/with Chat, Tool Calling, Multi-Agent, Memory, Coding Agent, Code Review, GitHub Agent. - CI Docs Deployment: GitHub Actions workflow (
docs.yml) auto-deploysdocs/to Pages.
Code Quality
- SDK Test Coverage: 54%+ with 20+ tests covering Runtime, Agent, Team, Config, Evolution, Streaming, MCP, HumanInput, Benchmarks. All pass with
go test -short ./.... - Lint Clean:
golangci-lint0 issues across SDK, CLI, evaluation, and examples. - English Comments: All code comments in English per
code_rules.md. - Binary Rename: CLI binary
ARES→ares(lowercase).
Infrastructure
- Docker Compose:
docker-compose.yml+Dockerfile.demofor one-command demo deployment (Ollama + full-app). - Makefile: Added
quickstart,examples,install-cli,test-evaltargets. - Example Cleanup: Removed 20+ stale/duplicate examples; kept 9 curated SDK examples + advanced ones in git history.
- Chaos Arena YAML: Restored
examples/arena/leader_assassination.yamlandcascading_storm.yamlwith all built-in action types.
Performance
- GA Diversity Sampling: Added
DiversitySampleSizeconfig (default 200) to estimate numeric diversity via random neighbor sampling instead of O(n²) exact computation. Stats(pop=1000) latency dropped 38% (69.5ms → 43.3ms). Configurable perPopulationConfig.DiversitySampleSize. - Fitness Sharing Optimization: Replaced per-agent Fisher-Yates full permutation with Reservoir Sampling in
applyFitnessSharingSampled. Allocation reduced 44% for all population sizes (pop=100: 185→106 allocs, pop=500: 905→506 allocs). GC pressure halved in large evolution runs. - Subscribe Allocation Reduction: Replaced UUID subscription IDs with
atomic.Int64counter and removed*sync.Onceper subscriber. Allocs reduced 33% (900→600 per 100 subscribers). Channel buffer increased from 1→64 to reduce burst drops. - Benchmark Report: Comprehensive benchmark report across all modules (events, GA genome/evaluation, memory distillation, tools core, handlers, errors) with full platform config (Apple M3 Max, Go 1.26, 3-run average).
New Features
- Memory Pipeline Complete: End-to-end memory pipeline with
ReportGenerator,PushService, and report formatting for human-readable evolution summaries. Full cycle: evaluation → distillation → report → push. - Agent Age Eviction:
AgentMaxAgeconfig limits strategy lifespan;GenerationCreatedtracking ensures agents survive exactlyAgentMaxAgegenerations. Legacy strategies (GenerationCreated==0) exempted. - Confidence Calculation: Added sample-based confidence to
AggregateEvidenceCrossTask, enabling evidence quality scoring in cross-task aggregation.
Refactors
- Truncate Utility Consolidation: Unified
internal/ares_memory/internal/truncatepackage for reusable truncation logic across memory and LLM modules. - Evidence Logic Cleanup:
AggregateEvidencerefactored for clarity; cross-task evidence aggregation now filters mixed-task noise withAggregateEvidenceCrossTask. - FIXME Cleanup (22 files): Removed stale FIXME comments in
internal/ares_quant/,internal/api_impl/,api/client/,internal/ares_events/,internal/storage/postgres/services/. All had already been implemented but comments were not updated. - Promotion Logic: Tightened statistical bands (5-20x → 6-18x) in
selection_extra_test.goand reduced low-scorer threshold (5% → 0.2%) for more deterministic selection verification.
Bug Fixes
- Ignored json.Marshal Errors: Fixed 4 ignored
json.Marshalcalls ininternal/ares_events/summary_repository.go— previously would silently producenullDB values on serialization failure. Now errors propagate withfmt.Errorf("marshal %s: %w", ...). - Errgroup Context Propagation: In
internal/api_impl/service.go,errgroup.WithContext(ctx)returned a derived context cancelled on sibling errors — but it was discarded with_. Fix:s.g, s.ctx = errgroup.WithContext(ctx)to enable proper error propagation. - SSE Health Probe: Implemented real SSE health check via
ConnectSSEinstead of hardcoded assumed healthy. - Generation Logging: Fixed generation=0 in logs by using absolute
Population.Generationin callback_gen. - GenerationCreated Off-by-One: Use Generation+1 so agents survive exactly
AgentMaxAgegenerations. - Guardrail Config Default: Inverted
PromptDiversityGuardEnabled→DisablePromptDiversityGuard(default enabled).
v0.2.5
[0.2.5] - 2026-07-02
Performance
- GA Diversity Sampling: Added
DiversitySampleSizeconfig (default 200) to estimate numeric diversity via random neighbor sampling instead of O(n²) exact computation. Stats(pop=1000) latency dropped 38% (69.5ms → 43.3ms). Configurable perPopulationConfig.DiversitySampleSize. - Fitness Sharing Optimization: Replaced per-agent Fisher-Yates full permutation with Reservoir Sampling in
applyFitnessSharingSampled. Allocation reduced 44% for all population sizes (pop=100: 185→106 allocs, pop=500: 905→506 allocs). GC pressure halved in large evolution runs. - Subscribe Allocation Reduction: Replaced UUID subscription IDs with
atomic.Int64counter and removed*sync.Onceper subscriber. Allocs reduced 33% (900→600 per 100 subscribers). Channel buffer increased from 1→64 to reduce burst drops. - Benchmark Report: Comprehensive benchmark report across all modules (events, GA genome/evaluation, memory distillation, tools core, handlers, errors) with full platform config (Apple M3 Max, Go 1.26, 3-run average).
New Features
- Memory Pipeline Complete: End-to-end memory pipeline with
ReportGenerator,PushService, and report formatting for human-readable evolution summaries. Full cycle: evaluation → distillation → report → push. - Agent Age Eviction:
AgentMaxAgeconfig limits strategy lifespan;GenerationCreatedtracking ensures agents survive exactlyAgentMaxAgegenerations. Legacy strategies (GenerationCreated==0) exempted. - Confidence Calculation: Added sample-based confidence to
AggregateEvidenceCrossTask, enabling evidence quality scoring in cross-task aggregation.
Refactors
- Truncate Utility Consolidation: Unified
internal/ares_memory/internal/truncatepackage for reusable truncation logic across memory and LLM modules. - Evidence Logic Cleanup:
AggregateEvidencerefactored for clarity; cross-task evidence aggregation now filters mixed-task noise withAggregateEvidenceCrossTask. - FIXME Cleanup (22 files): Removed stale FIXME comments in
internal/ares_quant/,internal/api_impl/,api/client/,internal/ares_events/,internal/storage/postgres/services/. All had already been implemented but comments were not updated. - Promotion Logic: Tightened statistical bands (5-20x → 6-18x) in
selection_extra_test.goand reduced low-scorer threshold (5% → 0.2%) for more deterministic selection verification.
Bug Fixes
- Ignored json.Marshal Errors: Fixed 4 ignored
json.Marshalcalls ininternal/ares_events/summary_repository.go— previously would silently producenullDB values on serialization failure. Now errors propagate withfmt.Errorf("marshal %s: %w", ...). - Errgroup Context Propagation: In
internal/api_impl/service.go,errgroup.WithContext(ctx)returned a derived context cancelled on sibling errors — but it was discarded with_. Fix:s.g, s.ctx = errgroup.WithContext(ctx)to enable proper error propagation. - SSE Health Probe: Implemented real SSE health check via
ConnectSSEinstead of hardcoded assumed healthy. - Generation Logging: Fixed generation=0 in logs by using absolute
Population.Generationin callback_gen. - GenerationCreated Off-by-One: Use Generation+1 so agents survive exactly
AgentMaxAgegenerations. - Guardrail Config Default: Inverted
PromptDiversityGuardEnabled→DisablePromptDiversityGuard(default enabled).
Code Quality
- Unit Test Coverage (service.go): Added
internal/ares_evolution/service/service_test.go(383 lines, 23 test cases). Coverage ofservice.goincreased 16.3% → 47.2%. Key functions:NewService93.3%,Evolve80.4%,toAPIStrategy/toInternalStrategy/cloneDimensionScoresall 100%. - LLM Scorer Tests: Added pure-logic tests for
extractScoreFromText,fallbackScore,buildPrompt,parseScore(35 table-driven test cases). No LLM required. - Task Planner Tests: Consolidated 10 repetitive test functions into 2 table-driven tests with meaningful
result.Errorcontent assertions.TestFormatToolsListconverted to table-driven. - Test Weakness Assessment: Sampled 20+ non-testify test files — confirmed they have meaningful multi-field assertions (not perfunctory). Postgres integration tests properly isolated behind
//go:build integration. - Docker Compose Update: Added Ollama service for local LLM fallback in development stack. Updated benchmark links in both EN and CN README.
What's Changed
- 0.2.5 by @Timwood0x10 in #36
Full Changelog: v0.2.4...v0.2.5
v0.2.4
[0.2.4] - 2026-06-28
New Features
- Plugin System Architecture: Full plugin system with
PluginBus,RuntimePlugininterface,WorkflowHookinterface, and capability-based plugin discovery. 10 built-in plugins: ObserverPlugin, CheckpointPlugin, ToolPlugin, ExpressionRouter, MemoryRouter, EvolutionRouter, LoopPlugin, RecoveryPlugin, InterruptPlugin, ArenaPlugin. - Genetic Algorithm Evolution System (Beta): Complete GA package with
Population,Crossover(Inherit/HalfSplit/Uniform),TournamentSelection, strategy mutation engine, diversity tracking with fitness sharing, adaptive survival rates, and deterministic reproduction via seed control. - Autonomous Evolution (Dream Mode v1): Closed-loop evolution orchestration with Dream Cycle (trigger → mutate → evaluate → adopt → record lineage). Arena regression testing with Welch's t-test, bandit feedback loop for experience quality optimization, and full genealogy tracking.
- Batch LLM Scorer: Concurrent LLM scoring with failover resilience for evolution pipeline.
- ExecuteFromCheckpoint: Lightweight workflow resume from checkpoint via
Graph.ExecuteFromCheckpoint(). Checkpoint integration via PluginBus hooks. - LoopPlugin: Controlled execution loops with configurable iteration limits.
- RouterPlugin Auto-Wiring: Automatic plugin registration based on declared capabilities.
- Execution Collector: Thread-safe runtime data aggregation for route recording and tool invocation tracking.
- Module-Scoped Structured Logging: Each core module emits logs with
modulefield for traceability. Addedlogger.Module()helper ininternal/logger/. 12 core packages converted. - Event ModuleName Field: Added
ModuleNamefield toEventstruct.Emit()andPluginBus.Emit()now acceptmoduleNameparameter for full traceability of which module emitted each event. - Abstract API Layer: Added interfaces in
api/core/for all major modules:AgentService,Runtime,WorkflowService,MemoryService,LLMService,RetrievalService,Evolution,DreamCycle,Arena,ContextCleaner. - Bootstrap Factory: Added
api/bootstrap/package that wires all ARES modules (Runtime, Memory, Evolution, Arena, EventStore) into a singleAREScontainer withNew(),Start(),Stop(),RunEvolution(), andExecuteArenaAction(). - Interview Demo: Complete interview demo stack with web search tool and prompt length validation.
- JSONL Training Data Pipeline: End-to-end pipeline for agent strategy evolution and experience distillation data export.
Refactors
- Unified Package Naming: Renamed 15 internal packages to
ares_prefix:bootstrap,callbacks,ctxutil,shutdown,ratelimit,security,config,eval,observability,integration,events,mcp,protocol,quant,runtime. - API Layer Thinning: Moved all independent service implementations from
api/tointernal/. Theapi/layer now only contains interface definitions, error types, HTTP handlers, router, and client SDK. Moved packages:api/service/agent→internal/agents/api/service/graph→internal/workflow/graphservice/api/service/llm→internal/llmservice/api/service/memory→internal/memoryservice/api/service/retrieval→internal/retrievalservice/api/ares_evolution→internal/ares_evolution/service/api/ares_memory→internal/ares_memory/service/api/ares_retrieval→internal/ares_memory/retrieval_api/api/ares_experience→internal/ares_experience/service/api/eval→internal/ares_eval/service/api/marketmaking→internal/ares_quant/marketmaking_api/
- Evolution Genome Wiring: Split genome_wiring into separate module, fix guardrails, wire dream cycle.
- HITL Feedback Plugin: Moved from standalone to workflow engine integration.
- Graph Builder APIs: Migrated all graph builder APIs to return errors instead of panicking.
- Scoring Cache: Replaced
sync.RWMutexwith atomic counters for hit/miss tracking. - Evolution Mutation: Restructured mutation logic with experience-guided evolution system.
- Performance: Increased concurrent LLM scoring limits and optimized sampling. Completed P0/P1/P2 performance improvements.
Bug Fixes
- Replaced
time.Sleepwith channel-based event test pattern in graph executor tests. - Fixed indentation in executor_test.go.
- Fixed data race in
DynamicExecutorrecovery path with proper timeout handling. - Fixed
MemoryEventStore.Close()idempotency — second+ calls returnErrEventStoreClosed. - Fixed SSE transport double
resp.Body.Close()causing panic on shutdown. - Fixed LLM client
Close()race condition viasync.Once. - Fixed OpenAI adapter silently swallowing
io.ReadAllerrors in error paths. - Fixed
Population.ScoreAgentspanic recovery logging with agent context. - Fixed
updateBestEverLockedconcurrency safety with deep copy viaa.Clone(). - Fixed
NewTaskPlanner/NewTaskPlannerWithConfigsilent fallback from invalidmaxTasks. - Added nil validation in
leader.New,NewTaskDispatcher, andNewMCPManager.
What's Changed
- 0.2.4 by @Timwood0x10 in #35
Full Changelog: v0.2.3...v0.2.4
v0.2.3
[0.2.3] - 2026-06-24
New Features
- Genetic Algorithm Evolution System (Beta): Full GA genome package with
Population,Crossover(Inherit/HalfSplit/Uniform modes),TournamentSelection, and strategy mutation engine. Supports deterministic reproduction via seed control, elite preservation, adaptive survival rates, and diversity tracking with fitness sharing. (GA Hardening Plan) - Autonomous Evolution (Dream Mode v1): Closed-loop evolution orchestration with Dream Cycle (trigger → mutate → evaluate → adopt → record lineage). Includes arena regression testing with Welch's t-test, bandit feedback loop for experience quality optimization, and full genealogy tracking.
- Agent Resurrection & Snapshot System: Pluggable health checking for agent recovery, checkpoint-based resurrection with state restoration from EventStore and MemoryStore.
- Tiered Scoring System: Multi-level scoring pipeline with FailoverScorer integration. Includes scoring cache optimization (atomic hit/miss counters), hybrid scoring with prompt crossover modes, and unevaluated score guardrails.
- JSONL Training Data Pipeline: End-to-end pipeline for agent strategy evolution and experience distillation data export.
- Leader Agent Hardening: Nil validation for all constructor parameters (memory manager, aggregator, parser, planner, dispatcher). Session initialization via
sync.Once. Comprehensive error collection duringStop()with joined errors from distillation/streaming goroutines. - Workflow Engine Hardening: Thread-safe HITL handler/store access via
sync.RWMutex. Workflow execution timeout (default 30s) to prevent indefinite blocking. ProperOutputStore.Close()cleanup. - Event Store Hardening: Errgroup-based compaction with timeout context (30s). Nil compactor/repo guards in all read paths. MemoryEventStore
Close()returnsErrEventStoreClosedon double-close for idempotent shutdown. - LLM Client Validation: Config validation enforces required
ProviderandBaseURLfields.Close()idempotency viasync.Once. OpenAI adapter properly handlesio.ReadAllerrors instead of silently discarding them. - MCP Client Hardening: Nil client guard in tool registration. Godoc-style documentation for all public APIs. SSE transport fixes double-close of
resp.Body(deferred close only inreceiveLoop). - Memory Manager Config Validation: Validates
MaxTasks,MaxDistilledTasks,DistilledTaskTTL, andVectorDimare positive.Stop()collects all errors and returns them joined. - Crossover & Selection Validation:
Crossover.Validate()andTournamentSelection.Validate()methods for post-construction config invariance checking. Defensive nil checks and enum validation.
Improvements
- Renamed project to ARES (Adaptive Resilient Evolution System)
- Enhanced scoring cache with atomic counters replacing
sync.RWMutex - Improved error visibility with structured error wrapping across all modules
- Added debug logging to TaskDispatcher and planner fallback warnings
- Default
DistilledTaskTTLset to 30 days inDefaultMemoryConfig() - Guarded all
CompactableEventStoreread paths against nil compactor/repo
Bug Fixes
- Fixed data race in
DynamicExecutorrecovery path with proper timeout handling - Fixed
MemoryEventStore.Close()idempotency — second+ calls returnErrEventStoreClosed - Fixed SSE transport double
resp.Body.Close()causing panic on shutdown - Fixed LLM client
Close()race condition viasync.Once - Fixed OpenAI adapter silently swallowing
io.ReadAllerrors in error paths - Fixed
Population.ScoreAgentspanic recovery logging with agent context - Fixed
updateBestEverLockedconcurrency safety with deep copy viaa.Clone() - Fixed
NewTaskPlanner/NewTaskPlannerWithConfigsilent fallback from invalidmaxTasks - Added nil validation in
leader.New,NewTaskDispatcher, andNewMCPManager - fix #33
- fix #32
What's Changed
- 0.2.3 by @Timwood0x10 in #34
Full Changelog: v0.2.2...v0.2.3
v0.2.2
[0.2.2] - 2026-06-19
New Features
- Embedding Lifecycle Unification: Unified embedding lifecycle across distillation, storage, and retrieval pipelines. Embedding workflows now share a common lifecycle model, reducing code duplication and ensuring consistent behavior during creation, update, and deletion of embeddings.
- Context Cleaning: Automatic context window management with tool call causality preservation. The context cleaner maintains causal ordering of tool calls during cleanup, preventing out-of-order execution after context truncation.
- Workflow Enhancements:
MutableDAG.ReplaceNodefor replacing nodes at runtime. CustomRecoveryHandlerfor failure recovery per workflow step. Enhanced event propagation across workflow execution. - Portfolio Simulator: Investment portfolio simulation system with multi-asset backtesting. Includes research memory bridge connecting portfolio simulation results to the research memory system for data-driven investment decisions.
- Investment Simulator: Standalone investment simulation module for modeling and analyzing investment strategies.
- CoinGecko Crypto Feed: Real-time cryptocurrency price data integration via CoinGecko API, enabling live market data for trading analysis.
- Public Marketmaking API: Marketmaking API migrated from internal to public (
api/marketmaking/), with multi-asset backtesting support. Includes comprehensive paper trading, chaos testing, and backtesting capabilities. - Quant Trading Example: Complete quantitative trading example with SQLite backend, demonstrating end-to-end quant trading workflow.
- Tool Lifecycle Events: Emit lifecycle events for tool execution, enabling observability and monitoring of tool calls throughout their lifecycle.
- Memory Metadata Propagation: Expanded metadata propagation across memory operations, enriching context with session and agent metadata.
- Concurrent Distillation Pipeline: errgroup-based parallel embedding in distiller (concurrency limit 5), and concurrent experience storage in manager_impl.go, reducing end-to-end distillation latency.
- Content Hash Dedup: SHA-256
content_hashcolumn ondistilled_memerieswithON CONFLICT (tenant_id, content_hash) WHERE content_hash IS NOT NULL DO NOTHINGfor idempotent memory storage. - Idempotent Migrations: All DDL operations now safe to re-run —
DROP IF EXISTS+CREATEfor policies/triggers,IF NOT EXISTSfor indexes,ADD COLUMN IF NOT EXISTSfor schema evolution. - Chinese Language Support: Chinese keyword detection in
detector.go(介绍/是什么/怎么/有哪些/区别/说说/推荐 etc.) and Chinese importance scoring inscorer.go(错误/修复/配置/框架/架构/优化 etc.), enabling experience extraction from Chinese Q&A. - Knowledge Correction Flow: End-to-end correction pipeline in knowledge-base example — detects correction intent, calls LLM for structured commands (
UPDATE:/DELETE:/CREATE:), executes DB writes for bothdistilled_memoriesandknowledge_chunks_1024. Supports correction via "纠错" keyword. - RAG Search Includes Corrected Memories:
KnowledgeBase.Search()now queries bothknowledge_chunks_1024anddistilled_memories, with corrected memories boosted in ranking. - Restart Script Import:
scripts/docker/restart.sh --save <path>option to import a document immediately after DB migration.
Refactors
- Enhanced configuration safety with improved validation and error handling in the API layer (
api/config.go,api/service.go). - Renamed
quant-demotoquant-tradingwith updated configuration and documentation. - Enforced snapshot-only data constraint in analyst prompts to ensure data consistency.
- Replaced
WriteString(fmt.Sprintf(...))withfmt.Fprintfacross correction flow. - Simplified loop with
append(..., distilledResults...).
Bug Fixes
- Resolved data race and timing issues in
DynamicExecutorrecovery path. - Fixed documentation file naming inconsistencies.
- Fixed all errcheck issues (unchecked
Close()calls) incmd/migration tools. - Fixed De Morgan's law simplification in UUID validation.
Acknowledgements
We sincerely thank the iflow.cn community members for their constructive feedback on the project.
- @chigefeijimu made big idea
@Timwood0x10
v0.2.1
New Features
- MCP Client: Model Context Protocol client implementation with JSON-RPC 2.0 messaging, stdio and SSE transport support, tool schema management, and connection lifecycle management.
- Web Dashboard: Real-time monitoring dashboard with WebSocket hub, REST API v2, orchestrator for multi-agent coordination, event bridge for system state streaming, and static asset serving.
- Flight Recorder: Multi-agent runtime intelligence recording with timeline tracking, decision logging, diagnostics engine, agent genealogy graph, DOT/JSON export, and replay pipeline.
- Chaos Engineering Arena: Fault injection framework with injector supporting process_kill, network_partition, latency_spike, and kill_orchestrator fault types; resilience scoring with configurable metrics; survival mode for continuous chaos testing; HTTP API and YAML scenario configuration.
- Callbacks System: Event-driven callback mechanism with typed event contexts, handler registry, and lifecycle hooks for agent/tool/runtime events.
- LLM Output Parsing: Multi-provider output adapters (OpenAI, Ollama, OpenRouter), prompt template engine with Go template syntax, function calling extraction and validation, schema-based parameter validation, and streaming output parser.
- Function Calling: LLM function calling support with tool schema generation, argument extraction, and result formatting.
- Agent Genealogy: Agent lineage tracking with parent-child relationships, birth/death event recording, and genealogy graph export.
- Event Auto-Compaction: Configurable event store compaction with retention policies, snapshot-based trimming, and automatic execution.
- Tool Lifecycle Hooks: Pre/post execution hooks for tools with context injection and error handling.
- Quant Demo: Quantitative analysis example with CSV data processing.
- DevAgent Example: Development agent example with workflow configuration.
- MCP Dashboard Example: Dashboard integration example with MCP transport.
- Capability Demo: Tool capability demonstration example.
Improvements
- Pruned unused components and deduplicated code across runtime resurrection module
- Improved error visibility with structured error messages
- Extracted restore logic into reusable functions
- Exposed migration DDL for external tooling
- Cleaned up validators and reduced code duplication
- Streamlined dashboard frontend assets
- Generalized domain models for broader use cases beyond original fashion domain
Bug Fixes
- Fixed various lint issues identified by golangci-lint
- Added
GetAgentmethod to Runtime interface - Wired
verifyRestoredStatein example code - Corrected semaphore available count calculation
- Escaped password in DSN connections
- Added ILIKE pattern escaping for PostgreSQL queries
v2.0.0 (2026-06-11)
New Features
- Leader Failover: Checkpoint-based recovery with
LeaderSupervisordetecting leader failure, recovering stale tasks from last checkpoint, and reassigning work to available sub-agents.ColdRestartStrategyfor deterministic recovery. - Runtime Dynamic Graph:
MutableDAGwith thread-safe mutation (add/remove nodes and edges at runtime).DynamicExecutorwithApplyModefor hot-reload without stopping execution. Incremental cycle detection on edge insertion. - Human-in-the-Loop:
InterruptConfigon workflow steps for human approval gates.InterruptHandlerblocks execution until approved.InterruptStoreprovides crash recovery of pending approvals. - Agent Resurrection Plugin: Pluggable
HealthCheckerinterface for custom health detection.HeartbeatAdapterfor heartbeat-based liveness.Supervisorfor automatic agent restart on failure. - Event Sourcing:
EventStoreinterface with optimistic concurrency control.MemoryEventStorefor dev/test,PostgresEventStorefor production. 17 event types covering agent lifecycle, tasks, sessions, workflows, and failover. Pub/sub viaSubscribewith filtered event channels. DLQ auto-retry with configurable retry budgets. - Pluggable Vector Store:
VectorStoreinterface replacing concrete*VectorSearcherin Repository. PostgreSQL + pgvector for production, in-memory for dev/test. Drop-in replacement support for Qdrant, Milvus, SQLite, or custom backends. - WorkflowService API: High-level workflow orchestration abstraction over the DAG engine.
Bug Fixes (46 fixes)
Storage (12 fixes)
- C1: Embedding queue dedup key mismatch causing duplicate embeddings
- C2: Write buffer data loss on
Stop()before flush completes - C3: Embedding enqueue outside transaction leading to orphaned records
- C4:
FetchPendingTaskslock ineffective withFOR UPDATE SKIP LOCKED - C5: Reconcile threshold time arithmetic off by orders of magnitude
- M1:
ManagedRowconnection leak on error paths - M2: Missing migration tables in
migrate.go - M3: Circuit breaker
halfOpenInflightcounter leak - M4:
VectorSearchermissing dimension validation - M6: FileWatcher TOCTOU race in
scanAndLoad - M7: Map reference shared unsafely in callbacks
- M8: Graph
Edge()no validation of node endpoints
Workflow (8 fixes)
- C6: Panic recovery ordering in
executor.go(recovery after cleanup) - C7: Graph executor in-degree tracking incorrect after node removal
- H1: Deadlock false positive in
executor.go(errgroup misuse) - H2:
DynamicExecutorhang on node removal during execution - H3:
stepEg.Wait()concurrent withGo()causing race - H4:
NewDAGsilently dropping duplicate step IDs - M5:
MaxAttempts=0skips execution entirely - M9:
recomputeOrderversion-check race on concurrent access
AHP Protocol (7 fixes)
- C8: Queue
send on closed channelpanic during shutdown - C9:
HeartbeatSenderStart/Stop race condition - H5:
getRandomSuffixnil dereference on empty slice - H6:
SendMessageswallows all errors silently - H7:
Protocolhas noClose()method (resource leak) - M10:
Peek()non-atomic read (race under concurrent access) - M12:
DLQ.Removeleaks trailing pointer after deletion
What's Changed
- v0.2.1 by @Timwood0x10 in #30
Full Changelog: v0.2.0...v0.2.1
v0.2.0
v0.2.0
New Features
- Leader Failover: Checkpoint-based recovery with
LeaderSupervisordetecting leader failure, recovering stale tasks from last checkpoint, and reassigning work to available sub-agents.ColdRestartStrategyfor deterministic recovery. - Runtime Dynamic Graph:
MutableDAGwith thread-safe mutation (add/remove nodes and edges at runtime).DynamicExecutorwithApplyModefor hot-reload without stopping execution. Incremental cycle detection on edge insertion. - Human-in-the-Loop:
InterruptConfigon workflow steps for human approval gates.InterruptHandlerblocks execution until approved.InterruptStoreprovides crash recovery of pending approvals. - Agent Resurrection Plugin: Pluggable
HealthCheckerinterface for custom health detection.HeartbeatAdapterfor heartbeat-based liveness.Supervisorfor automatic agent restart on failure. - Event Sourcing:
EventStoreinterface with optimistic concurrency control.MemoryEventStorefor dev/test,PostgresEventStorefor production. 17 event types covering agent lifecycle, tasks, sessions, workflows, and failover. Pub/sub viaSubscribewith filtered event channels. DLQ auto-retry with configurable retry budgets. - Pluggable Vector Store:
VectorStoreinterface replacing concrete*VectorSearcherin Repository. PostgreSQL + pgvector for production, in-memory for dev/test. Drop-in replacement support for Qdrant, Milvus, SQLite, or custom backends. - WorkflowService API: High-level workflow orchestration abstraction over the DAG engine.
Bug Fixes (46 fixes)
Storage (12 fixes)
- C1: Embedding queue dedup key mismatch causing duplicate embeddings
- C2: Write buffer data loss on
Stop()before flush completes - C3: Embedding enqueue outside transaction leading to orphaned records
- C4:
FetchPendingTaskslock ineffective withFOR UPDATE SKIP LOCKED - C5: Reconcile threshold time arithmetic off by orders of magnitude
- M1:
ManagedRowconnection leak on error paths - M2: Missing migration tables in
migrate.go - M3: Circuit breaker
halfOpenInflightcounter leak - M4:
VectorSearchermissing dimension validation - M6: FileWatcher TOCTOU race in
scanAndLoad - M7: Map reference shared unsafely in callbacks
- M8: Graph
Edge()no validation of node endpoints
Workflow (8 fixes)
- C6: Panic recovery ordering in
executor.go(recovery after cleanup) - C7: Graph executor in-degree tracking incorrect after node removal
- H1: Deadlock false positive in
executor.go(errgroup misuse) - H2:
DynamicExecutorhang on node removal during execution - H3:
stepEg.Wait()concurrent withGo()causing race - H4:
NewDAGsilently dropping duplicate step IDs - M5:
MaxAttempts=0skips execution entirely - M9:
recomputeOrderversion-check race on concurrent access
AHP Protocol (7 fixes)
- C8: Queue
send on closed channelpanic during shutdown - C9:
HeartbeatSenderStart/Stop race condition - H5:
getRandomSuffixnil dereference on empty slice - H6:
SendMessageswallows all errors silently - H7:
Protocolhas noClose()method (resource leak) - M10:
Peek()non-atomic read (race under concurrent access) - M12:
DLQ.Removeleaks trailing pointer after deletion
Agent System (8 fixes)
- L6:
Startpartial validation cleanup (inconsistent state on error) - L7: SubAgent
ProcessStreamgoroutine leak on context cancellation - L8:
doFailoveruses cancelled ctx for Stop (fails to clean up) - L9:
Dispatcherpartial results misleading (reports success on partial failure) - L10: Dynamic executor uses bare
goinstead ofstepEg - L11: Missing
SnapshotWithSteps()onMutableDAG - M11:
NewTaskMessageallows nil payload - BUG-5: Dead verification in
pg_store_testConcurrentAppend
Event Sourcing (5 fixes)
- BUG-1:
FromVersioninclusive/exclusive boundary wrong inmemory_store.go - BUG-2:
Sincefilter inclusive boundary wrong inpg_store.go - BUG-3:
ReadAllincorrectly appliesFromVersionfilter inmemory_store - BUG-4:
Appenddoes not returnErrVersionConflicton unique violation inpg_store - STYLE-1: Bare
gokeyword without context cancellation in event store
Other (6 fixes)
- L1:
safeFormatTablereturning empty string on valid input - L2: Missing immediate retry after flush failure in write buffer
- F1:
workflow_test.goconfig mismatch with actual types - Executor nil pointer check on context cancellation (commit 9565f79)
- STYLE-2: Channel buffer size 64 changed to 1 (backpressure)
- STYLE-3: Empty slice literals replaced with nil returns
Infrastructure
- CI/CD pipeline via GitHub Actions (lint, test, race detection, build)
- Integration tests for workflow engine (5 test cases)
- Benchmark suite (32 benchmarks across 8 categories)
- Bilingual documentation (English + Chinese) in
docs/en/anddocs/zh/ - Reorganized documentation into language-specific directories
.golangci.ymlconfiguration for consistent linting
Breaking Changes
NewLeaderSupervisorsignature changed: addedeventStoreparameterNewColdRestartStrategysignature changed: addedcheckpointparameterMemoryManagerinterface addedGetLatestSessionForLeadermethodVectorStoreinterface replaces concrete*VectorSearcherinRepositoryNewResultAggregatorsignature changed: addedsortBy stringparameterTaskPlanner.Plansignature changed: addedinputText stringparameterResultAggregator.Aggregatesignature changed: addedtasks []*models.Taskparameter- Domain types renamed:
FashionFilters->ResourceFilters,FashionItem->ResourceItem,AgentProfile->AgentUserProfile,AgentRecommendation->TaskRecommendation,OutfitSuggestion->Suggestion,AgentTrend->Trend
What's Changed
- v0.2.0 by @Timwood0x10 in #26
Full Changelog: v0.1.1...v0.2.0
v0.1.0
What's Changed
- Architecture upgrade by @Timwood0x10 in #1
- Improve by @Timwood0x10 in #2
- Feature Enhancement & Bug Fix by @Timwood0x10 in #3
- add SimpleRetrievalService by @Timwood0x10 in #4
- Agent Capability Engine by @Timwood0x10 in #5
- Implement Experience System with bilingual testing support by @Timwood0x10 in #6
- Impl Graph Dynamic Orchestration System by @Timwood0x10 in #7
- FIx BUG by @Timwood0x10 in #8
- Fix bug by @Timwood0x10 in #9
- fix license by @Timwood0x10 in #10
- Fix critical bugs, improve concurrency safety, and complete fashion decoupling by @Timwood0x10 in #19
New Contributors
- @Timwood0x10 made their first contribution in #1
Full Changelog: https://github.com/Timwood0x10/goagent/commits/v0.1.0