v0.21.2
·
992 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
What's Changed
- fix(zeph-common): add rt-multi-thread to tokio features by @bug-ops in #3783
- fix(memory): gate cfg-dependent call sites in zeph-memory by @bug-ops in #3785
- test(tools): add unit tests for CompressionRuleStore by @bug-ops in #3789
- refactor(config,experiments): strengthen provider field types and experiment lifecycle by @bug-ops in #3790
- feat(memory): add MemFlow tiered retrieval and ScrapMem optical forgetting by @bug-ops in #3791
- test(orchestration,memory): add unit tests for evaluate_abort and ExperienceStore by @bug-ops in #3792
- refactor(arch): decouple sanitizer from tools, add backend feature forwarding by @bug-ops in #3797
- fix(memory): wire classifier/validator providers and extract escalation loop by @bug-ops in #3806
- fix(scheduler): add in_flight guard to tick() and surface invalid-cron errors by @bug-ops in #3811
- fix(llm): preserve ToolUse/Thinking chunks in cascade stream and validate cost_tiers names by @bug-ops in #3812
- feat(memory): ExperienceId/EntityId newtypes + episodic consolidation daemon by @bug-ops in #3814
- fix(channels): move TcpListener::from_std before tokio::spawn in spawn_guest_proxy by @bug-ops in #3815
- fix(llm): wrap judge_score response in XML delimiters to prevent prompt injection by @bug-ops in #3816
- docs(llm): document LlmProvider object-safety and dyn dispatch path via LlmProviderDyn by @bug-ops in #3818
- fix(llm): replace XML delimiters with fenced block in build_judge_prompt by @bug-ops in #3823
- perf(memory): replace serial embed() with embed_batch() and add tracing spans by @bug-ops in #3839
- fix(llm): add judge_timeout_ms to prevent cascade classifier blocking indefinitely by @bug-ops in #3845
- fix(core,agent-tools): fix blocking I/O in load_instructions and add unit tests by @bug-ops in #3854
- fix(a2a): add per-request timeouts to server handlers and client HTTP calls by @bug-ops in #3847
- fix(orchestration): add LLM timeouts, config validation, and typed error variants by @bug-ops in #3860
- fix(skills): add configurable timeout to SkillGenerator and SkillMiner LLM calls by @bug-ops in #3862
- perf(orchestration,subagent): add tracing instrumentation to LLM-bound async paths by @bug-ops in #3865
- fix(tools): forward set_skill_env and set_effective_trust through CompositeExecutor by @bug-ops in #3870
- fix(tools): preserve env overrides and cwd across macOS sandbox rewrite by @bug-ops in #3872
- fix(orchestration): apply >=3 escalation to PlanVerifier timeout arms by @bug-ops in #3873
- fix(gateway): add timeout to webhook_tx.send() to prevent Axum worker stall by @bug-ops in #3882
- fix(db): add 8 missing PostgreSQL migrations to reach SQLite parity by @bug-ops in #3896
- perf(channels,memory): add tracing instrumentation to Discord, Slack and GraphExtractor by @bug-ops in #3905
- test(sanitizer,commands,plugins): add unit tests for zero-coverage modules by @bug-ops in #3914
- refactor(skills): introduce SkillEmbedding newtype for Vec embedding vectors by @bug-ops in #3935
- fix(common,bench,experiments): dedup UTC timestamp helpers and add evaluator tracing by @bug-ops in #3938
- fix(db): add PostgreSQL migrations 084-088 and fix SQLite-specific SQL syntax by @bug-ops in #3957
- fix(channels,plugins): enforce authorization in confirm() and reject unresolvable skill paths by @bug-ops in #3956
- refactor(bench): clean up BenchRunner API and add tracing instrumentation by @bug-ops in #3962
- feat(memory): wire recall_tiered and start_optical_forgetting_loop into agent loop by @bug-ops in #3968
- test(mcp,acp): add McpToolExecutor tracing spans and re-enable AcpPermissionGate tests by @bug-ops in #3971
- refactor(plugins): enforce first-char and length constraints in validate_plugin_name by @bug-ops in #3980
- fix(db,memory): add DEFAULT to experience_nodes.created_at and sanitize LLM-bound content by @bug-ops in #3992
- feat(hooks): add PostToolUse output replacement and duration_ms by @bug-ops in #3998
- fix(agent-context): replace sync span guard with .instrument() and remove unused _providers params by @bug-ops in #3999
- refactor(context): enforce invariants and remove dead code (#3985, #3990, #3986) by @bug-ops in #4007
- perf(scheduler): add handler timeout and tracing spans by @bug-ops in #4005
- fix(memory,agent-context): wire inject_semantic_recall into production path and fix async spans by @bug-ops in #4014
- fix(subagent): sanitize hook-replaced tool output and fix flaky bootstrap test by @bug-ops in #4025
- fix(hooks): eliminate fire_shell_hook timeout deadlock and EnteredSpan UB by @bug-ops in #4027
- feat(subagent): add orchestrator-identity fields to SpawnContext by @bug-ops in #4032
- fix(agent-context): wire inject_semantic_recall into production path and fix recall accumulation by @bug-ops in #4040
- fix(scheduler,gateway): fix sync span guard, rate-limiter proxy bypass, and JoinHandle drop by @bug-ops in #4043
- fix(scheduler,memory): replace sync .entered() with .instrument() in async fns by @bug-ops in #4050
- refactor(config): VaultBackend enum, #[non_exhaustive] enums, metrics bump by @bug-ops in #4051
- fix(a2a): store eviction JoinHandle, fix silent SSE error, abort processor on disconnect by @bug-ops in #4060
- fix(subagent): fix dangling pronoun in orchestrator header when role is absent by @bug-ops in #4070
- refactor(agent-persistence): fix O(N²) drain, add tracing spans, introduce LoadHistoryParams by @bug-ops in #4071
- fix(config): replace VaultBackend.as_str() with enum match in cocoon and gonka by @bug-ops in #4073
- refactor(agent-context): extract run_tiered_recall, SemanticRecallParams, and disambiguate_provider by @bug-ops in #4072
- fix(config): add #[non_exhaustive] to VaultBackend and warn on unknown backend string by @bug-ops in #4074
- perf(tracing): add instrumentation spans to gateway, commands, and context by @bug-ops in #4084
- refactor(commands,llm): propagate GoalCommand errors, deduplicate test helpers, consolidate EmaTracker state by @bug-ops in #4088
- refactor: deduplicate hook env, fix visibility leak, add #[non_exhaustive] by @bug-ops in #4103
- refactor(experiments): replace -1 sentinel with Option, enforce ParameterRange invariants; perf(context): Arc in run_chunk_summaries by @bug-ops in #4102
- refactor(commands): extract exit logic, fix error returns, fix LogCommand description by @bug-ops in #4104
- perf(orchestration): add tracing spans to adaptorch and DagScheduler by @bug-ops in #4109
- perf(context): instrument remaining 7 assembler fetch_* functions with tracing spans by @bug-ops in #4110
- fix(memory,agent): fix postgres compile failure and skill provider startup init by @bug-ops in #4117
- fix(core,commands): graph status consistency and ClearQueue error tracing by @bug-ops in #4123
- fix(experiments): activate sqlite feature for isolated zeph-experiments builds by @bug-ops in #4124
- perf(tracing): add spans to LLM-calling functions in plan_cache, consolidation, admission by @bug-ops in #4131
- feat(skills): Stage-1 advisory SKILL.md scan + SkillEmbedding::from_raw pub(crate) by @bug-ops in #4132
- fix(memory): add postgres cfg guards, doc comments, tracing spans in skills store by @bug-ops in #4140
- perf(experiments): add tracing spans to ExperimentEngine and tests by @bug-ops in #4147
- fix(core): resolve extract_provider in graph_backfill, extract guard helper, add spans by @bug-ops in #4150
- fix(memory): add tokio::time::timeout to LLM calls in zeph-memory by @bug-ops in #4162
- fix(core): add 5s timeout guards to all graph command handlers by @bug-ops in #4157
- fix(common,memory): document Lo-category fillers in strip_format_chars; add tracing spans to skills store by @bug-ops in #4174
- fix(memory,plugins): atomicity and redundant I/O in skills store and plugin manager by @bug-ops in #4175
- fix(experiments): add tokio::time::timeout to evaluator LLM calls by @bug-ops in #4182
- perf(memory): add tracing span to compute_semantic_novelty by @bug-ops in #4190
- fix(agent-feedback,channels): add timeout guards to LLM and HTTP awaits by @bug-ops in #4191
- fix(memory): make LLM timeouts configurable in consolidation, graph extractor, and summarization by @bug-ops in #4198
- fix(memory,skills): make save+activate skill version atomic in ARISE/upgrade paths by @bug-ops in #4204
- fix(experiments): eliminate TOCTOU race in token budget and add tracing span by @bug-ops in #4205
- fix(memory,core): add timeout guards to embed calls and tracing spans by @bug-ops in #4211
- test(memory,subagent): add timeout regression and sanitize_identity_field tests by @bug-ops in #4214
- feat(agent-feedback): make JudgeDetector LLM timeout configurable by @bug-ops in #4213
- refactor(commands): migrate debug.rs and session.rs to test_helpers; add docs by @bug-ops in #4216
- feat(sanitizer): add MAGE shadow memory for cross-turn safety trajectory by @bug-ops in #4215
- perf(tracing): add info_span instrumentation to LLM-bound async fns by @bug-ops in #4222
- feat(core,config): add stop hook block cap with configurable limit by @bug-ops in #4221
- refactor(index): route walk_project_files through BlockingSpawner by @bug-ops in #4223
- refactor(context): rename ContextError to AssemblerError in zeph-context by @bug-ops in #4225
- test(common): add edge-case tests for secs_to_ymdhms by @bug-ops in #4224
- fix(gateway,config,db): add GatewayConfig validation and fix stale docs by @bug-ops in #4226
- fix(feedback,channels): fix CJK false-positive and add send_status for Discord/Slack by @bug-ops in #4228
- fix(config,gateway): validate rate_limit > 0 and add missing doc comments by @bug-ops in #4229
- refactor(config): migrate ProviderName to Arc and tighten visibility by @bug-ops in #4230
- refactor(bench): replace unlinked TODOs with issue references in zeph-bench by @bug-ops in #4238
- feat(context): wire TurnContext.tool_allowlist from channel config by @bug-ops in #4231
- feat(sanitizer,skills,plugins): data-instruction boundary, NLI sanitization, PAAC secret masking by @bug-ops in #4232
- docs(security): add shadow memory guardrail spec (MAGE + SafeHarbor) by @bug-ops in #4239
- feat(bench): add multi-turn seeding and tool output capture to BenchmarkChannel by @bug-ops in #4240
- test(memory)+docs(feedback): async tests for recall_tiered and agent-feedback spec by @bug-ops in #4241
- feat(bench): implement EnvironmentEvaluator and multi-turn user simulator for tau2-bench by @bug-ops in #4242
- refactor(llm,mcp): replace positional constructors with named-field config structs by @bug-ops in #4243
- docs(memory): RFC decisions for memory tiering and skill co-evolution by @bug-ops in #4244
- docs(specs): add spec documents for zeph-agent-persistence and zeph-plugins by @bug-ops in #4245
- fix(core,common,commands): async provider instruction reload, const fn, stale comment by @bug-ops in #4247
- feat(config,acp,plugins): inline hooks in config.toml, ACP session CRUD, auto-update plugin policy by @bug-ops in #4252
- fix(plugins,memory): enforce await-discipline timeout guards by @bug-ops in #4258
- feat(context,memory): add compaction_provider and shutdown_summary_provider config fields by @bug-ops in #4259
- feat(security): add ShellDeobfuscator, RiskChain, SafeFix, and IpiFilter by @bug-ops in #4246
- fix(core,config,skills): add timeout guards and fix scheduler default by @bug-ops in #4263
- feat(common,skills,tui): event-driven shutdown and error taxonomy improvements by @bug-ops in #4271
- fix(acp): enforce title_max_chars in PATCH /sessions and eliminate TOCTOU races by @bug-ops in #4272
- feat(acp,sanitizer): non_exhaustive SessionStatus, AtomicUsize counter, rename circuit check by @bug-ops in #4275
- fix(tools): DNS timeout, ssh/scp/rsync egress detection, VecDeque eviction, non_exhaustive RiskTag by @bug-ops in #4274
- fix(sanitizer): deduplicate ipi_filter patterns and add bypass regression tests by @bug-ops in #4276
- fix(tools): add sftp to NetworkEgress risk classification by @bug-ops in #4283
- fix(tools,memory,acp): wire RiskChainAccumulator and remove dead delete_acp_session by @bug-ops in #4284
- fix(sanitizer,skills): fix TOCTOU race in SecretMaskRegistry and add embed timeout in is_novel by @bug-ops in #4288
- feat(plugins): enforce auto_update field in PluginManager by @bug-ops in #4289
- fix(sanitizer): add filter_async() to avoid blocking tokio executor by @bug-ops in #4291
- fix(memory): add tokio::time::timeout guards to embed() calls in zeph-memory by @bug-ops in #4292
- refactor(config): replace stringly-typed fields with enums by @bug-ops in #4295
- fix(memory): add embed timeout to hela_spreading_recall by @bug-ops in #4294
- fix(llm,memory): remove doc duplicate, dead field, normalize span prefixes by @bug-ops in #4300
- fix(llm,memory): guard async executor from blocking I/O and stalled embed calls (#4296, #4297) by @bug-ops in #4304
- feat(skills): wire requires_trust_check into per-invocation blake3 re-hash by @bug-ops in #4306
- refactor(config): replace stringly-typed fields with enums (#4298, #4299) by @bug-ops in #4305
- fix(llm): add per-call timeout guard to RouterProvider::embed() by @bug-ops in #4307
- feat(plugins,tui): plugin dependency enforcement and projected context cost by @bug-ops in #4312
- refactor(config): replace stringly-typed AuditConfig.destination and StoreRoutingConfig.fallback_route with enums by @bug-ops in #4313
- fix(core): send_context_estimate with total context tokens before LLM call by @bug-ops in #4317
- fix(plugins,tui): dispatch blocking add() via spawn_blocking, add tracing span, add TUI spinners by @bug-ops in #4318
- refactor(skills,memory): replace stringly-typed trust_level with SkillTrustLevel enum by @bug-ops in #4319
- feat(core,commands): autonomous /goal execution with supervisor verification by @bug-ops in #4320
- fix(goal): log mutex poison in AutonomousRegistry; extract supervisor backoff by @bug-ops in #4327
- fix(subagent): sanitize parent messages before passing to spawned subagents by @bug-ops in #4326
- feat(core): add tracing spans to check_trust_transition by @bug-ops in #4334
- fix(orchestration): wire OrchestrationConfig.default_failure_strategy to TaskGraph by @bug-ops in #4328
- fix(autonomous): add turn timeout, supervisor span, and dedicated fail limit by @bug-ops in #4336
- refactor(agents): replace FleetEntry.state String with AutonomousState enum by @bug-ops in #4338
- refactor(orchestration): type PlannedTask.failure_strategy as Option by @bug-ops in #4340
- feat(observability): add telemetry.trace_metadata config field for OTEL span attributes by @bug-ops in #4341
- feat(subagent,tools): MCP config inheritance on respawn and worktree teardown safety by @bug-ops in #4342
- perf(debug_dump): replace Vec with VecDeque in TracingCollector by @bug-ops in #4353
- feat(tui,llm,channels): fleet dashboard, reasoning token tracking, terminal title by @bug-ops in #4354
- refactor(config): replace stringly-typed provider and failure-strategy fields by @bug-ops in #4355
- fix(subagent): add tracing diagnostics to mcp_tool_names handling by @bug-ops in #4361
- fix(tools): block rm targeting .git/worktrees regardless of flag order by @bug-ops in #4362
- feat(context): PRISM query-sensitive edge costing and DACS Summary injection by @bug-ops in #4360
- fix(fleet): wire session lifecycle and TUI background poll by @bug-ops in #4363
- refactor(common,memory,tui): deduplicate token format helpers and add tracing spans by @bug-ops in #4364
- feat(cli,memory): type agents fleet --status flag and add tracing span by @bug-ops in #4365
- spec(004-memory): shadow memory safety, implicit conflict detection, five-signal retrieval by @bug-ops in #4375
- release: v0.21.2 by @bug-ops in #4371
Full Changelog: v0.21.1...v0.21.2