You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
A2A server -- expose any agent as an A2A (agent-to-agent protocol) server via initrunner a2a serve role.yaml. InitRunnerWorker routes through the executor so audit logging, retries, budget enforcement, and output processing all work. Multi-turn context is preserved across requests via task storage. Outbound delegation uses the new A2AInvoker (JSON-RPC message/send with polling, timeout, env-based header resolution, and policy checks). Delegate tools gain mode: "a2a" alongside the existing inline and mcp modes. New [a2a] install extra (fasta2a, uvicorn, starlette)
Daemon retry policy -- triggers can retry failed runs with exponential backoff. Configure via spec.guardrails.retry_policy: { max_attempts: 3, backoff_seconds: 5 }. Per-attempt usage is recorded; one audit record per trigger fire. Structured error classification (ErrorCategory enum) drives retry-vs-fail decisions
Circuit breaker -- daemon triggers trip a circuit breaker when the provider is unhealthy. Configure via spec.guardrails.circuit_breaker: { failure_threshold: 5, reset_timeout_seconds: 300 }. Thread-safe state machine (closed/open/half-open) with audit events on state transitions
Persistent budget counters -- daemon daily and weekly token/cost counters now survive restarts. On startup, the daemon queries the audit log for spend since the last reset boundary and restores the counters. BudgetSnapshot dataclass carries the serialized state
Real-time cost visibility -- daemon run output now shows USD cost alongside token counts. Dashboard agent detail page includes a BudgetProgressBar component. SSE usage events carry cost for flows and teams
Timezone-aware budget resets -- budget_timezone guardrail (default "UTC") controls when daily/weekly cost counters reset. Uses ZoneInfo for correct DST handling
Changed
README redesigned -- opening paragraph and structure rewritten to lead with the execution story (chat -> autonomous -> daemon -> autopilot) instead of "YAML-first AI agent platform." New sections: "One file, four modes," "Agents that learn" (consolidation story), "Security is config, not plumbing" (structured around why each layer exists), "Cost control" (USD budgets). Removed "Why InitRunner" section and feature-count marketing copy. zh-CN and ja translations updated to match
cli/run_cmd.py split into cli/run_cmd/ package -- _command.py (main run command), _dispatch.py (mode dispatch), _sensing.py (intent sensing), _starters.py (starter catalog), _validate.py (pre-flight validation). No public API changes
cli/_helpers.py split into cli/_helpers/ package -- _context.py, _display.py, _resolve.py, _console.py. No public API changes