Releases: Timwood0x10/ARES
Releases · Timwood0x10/ARES
Release list
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