Releases: bug-ops/zeph
Releases · bug-ops/zeph
v0.21.2
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::t...
v0.21.1
Immutable
release. Only release title and notes can be modified.
What's Changed
- ci: add .cargo/config.toml for local build speedup, guard CI against it by @bug-ops in #3750
- chore(deps): update github-actions by @bug-ops in #3754
- test(telegram-e2e): add Bot API 10.0 scenarios and guard CI against .cargo/config.toml by @bug-ops in #3751
- chore(deps): update debian:bookworm-slim docker digest to 67b30a6 by @bug-ops in #3752
- chore(deps): update ghcr.io/bug-ops/zeph:latest docker digest to 7bc6545 by @bug-ops in #3753
- chore(deps): update ollama/ollama:latest docker digest to d00473c by @bug-ops in #3755
- chore(deps): update rust:1.95-slim docker digest to 985053e by @bug-ops in #3756
- chore(deps): update qdrant/qdrant docker tag to v1.18.0 by @bug-ops in #3759
- chore(deps): update rust crate tower-http to 0.6.10 by @bug-ops in #3757
- fix(core): fix orphaned tool pairs and budget underestimation in subagent context slicing by @bug-ops in #3763
- fix(tui): automatic view switch and real-time transcript for foreground subagents by @bug-ops in #3764
- chore(deps): upgrade qdrant-client to 1.18 by @bug-ops in #3766
- fix(subagent): normalize tool IDs in FilteredToolExecutor to fix case/format mismatch by @bug-ops in #3767
- chore(deps): enforce workspace dep hygiene by @bug-ops in #3768
- feat(channels): add Telegram reaction moderation tools by @bug-ops in #3770
- fix(core,subagent): wire MCP dispatch in on_turn_complete and allow memory=user sandbox writes by @bug-ops in #3776
- fix(tools): register built-in tools under builtin: namespace for capability_scopes by @bug-ops in #3778
- fix(channels): add 30s timeout to TelegramApiClient HTTP client by @bug-ops in #3780
- fix(hooks): fire permission_denied hook for all gate denials by @bug-ops in #3779
- release: v0.21.1 by @bug-ops in #3782
Full Changelog: v0.21.0...v0.21.1
v0.21.0
Immutable
release. Only release title and notes can be modified.
What's Changed
- refactor(build): promote task-metrics, self-check, env-vault to always-on by @bug-ops in #3661
- docs(specs): update constitution layer DAG to reflect actual workspace structure by @bug-ops in #3666
- fix(core): replace production unwrap() calls with expect() in zeph-core by @bug-ops in #3667
- refactor+feat(core): split native.rs into submodules and add tracing spans by @bug-ops in #3668
- feat(llm): add Cocoon decentralized TEE inference provider by @bug-ops in #3682
- feat(config): add Cocoon provider config validation, wizard, and migration by @bug-ops in #3683
- feat(cli): add zeph cocoon doctor diagnostic subcommand by @bug-ops in #3689
- feat(tui): add Cocoon TUI palette commands and status bar integration by @bug-ops in #3690
- feat(llm): add Cocoon live integration tests by @bug-ops in #3691
- fix(cli): validate cocoon_client_url scheme in cocoon doctor config check by @bug-ops in #3707
- fix(tui): thread tool_call_id through shell executor to fix parallel tool output corruption by @bug-ops in #3708
- feat(tui): native text selection + clipboard shortcuts by @bug-ops in #3722
- feat(tui): editor-inline spinner, priority-collapse footer, user message tint (#3687) by @bug-ops in #3721
- fix(tui): id-based DiffReady routing and two-tier tool rendering by @bug-ops in #3720
- fix(clippy): resolve --all-targets errors in tool_execution tests and cocoon.rs by @bug-ops in #3723
- feat(tui): wire grouping pre-pass into collect_message_lines_from (#3719) by @bug-ops in #3724
- feat(hooks): add PreToolUse/PostToolUse hook context env vars by @bug-ops in #3725
- docs(specs): Telegram Bot API 10.0 specifications (Guest Mode, Bot-to-Bot, Streaming) by @bug-ops in #3734
- feat(memory,security): BeliefMem probabilistic edges + ShadowSentinel safety probe by @bug-ops in #3735
- refactor(context): resolve same-layer violation zeph-context → zeph-memory by @bug-ops in #3736
- feat(cocoon): add per-token pricing and STT Whisper endpoint by @bug-ops in #3737
- fix(hooks): fire pre_tool_use hook before utility gate intercept by @bug-ops in #3740
- fix(security): wire ShadowProbeExecutor into agent executor chain by @bug-ops in #3742
- fix(llm): add missing backticks in stt.rs doc comments by @bug-ops in #3743
- fix(security): extend classify_tool to recognise bare shell and file-write tool ids by @bug-ops in #3745
- feat(channels): configurable Telegram streaming interval and Bot API 10.0 HTTP wrapper by @bug-ops in #3746
- test(memory-backend): add unit tests for ContextMemoryBackend and SemanticMemoryBackend by @bug-ops in #3747
- feat(channels): Telegram Guest Mode and Bot-to-Bot communication (Bot API 10.0) by @bug-ops in #3748
- release: v0.21.0 by @bug-ops in #3749
Full Changelog: v0.20.2...v0.21.0
v0.20.2
Immutable
release. Only release title and notes can be modified.
What's Changed
- chore(deps): update dependency telethon to >=1.43.2 by @bug-ops in #3558
- chore(deps): update debian:bookworm-slim docker digest to f9c6a2f by @bug-ops in #3553
- chore(deps): update ghcr.io/bug-ops/zeph:latest docker digest to 45d5ef5 by @bug-ops in #3554
- chore(deps): update github-actions by @bug-ops in #3555
- chore(deps): update ollama/ollama:latest docker digest to 05ab093 by @bug-ops in #3556
- chore(deps): update rust:1.95-slim docker digest to 8109983 by @bug-ops in #3557
- chore(deps): update rust-minor-patch by @bug-ops in #3559
- chore(deps): update tokio by @bug-ops in #3560
- chore(deps): update tracing by @bug-ops in #3561
- chore(deps): refresh cargo lock file by @bug-ops in #3562
- docs(memory): synthesize MemCoT, OmniMem, OCR-Memory; add APEX-MEM Research Backlog by @bug-ops in #3577
- feat(mcp): MCP server startup auto-retry with exponential backoff by @bug-ops in #3578
- chore(deps): pin dependencies by @bug-ops in #3580
- chore(deps): update ollama/ollama:latest docker digest to 5600a65 by @bug-ops in #3582
- chore(deps): update prom/prometheus docker tag to v3.11.3 by @bug-ops in #3583
- chore(deps): update github-actions by @bug-ops in #3581
- chore(deps): update rust-minor-patch by @bug-ops in #3584
- fix(mcp): map HTTP 4xx auth errors to non-retryable McpError::HttpAuth by @bug-ops in #3587
- chore(deps): refresh cargo lock file by @bug-ops in #3585
- feat(security): TrajectorySentinel and ScopedToolExecutor for capability governance by @bug-ops in #3588
- feat(tools): add per-turn ExecutionContext to ShellExecutor by @bug-ops in #3589
- fix(mcp): map HTTP 4xx auth errors to McpError::HttpAuth in OAuth paths by @bug-ops in #3590
- feat(memory): add MemCoT SemanticStateAccumulator and Zoom-In/Out recall views by @bug-ops in #3592
- feat(core,tools): goal lifecycle and TACO output compression by @bug-ops in #3591
- fix(lsp): handle mcpls object-wrapped diagnostics response by @bug-ops in #3594
- fix(lsp): inject hover notes immediately before LLM call (#3595) by @bug-ops in #3596
- feat(memory): log memory retrieval failures for OmniMem self-improvement loop by @bug-ops in #3597
- feat(cli): add
zeph project purgecommand for full project state cleanup by @bug-ops in #3598 - fix(cli): return user-friendly error when project purge stdin is not a terminal by @bug-ops in #3600
- docs(specs): add gonka.ai integration specs (051-gonka-gateway, 052-gonka-native) by @bug-ops in #3616
- fix(memory.graph): add extract_provider to bypass quality_gate for extraction by @bug-ops in #3615
- feat(orchestration): orchestrator_provider (SLM-as-orchestrator) and AdmissionGate (admission control) by @bug-ops in #3617
- feat(config): add ProviderKind::Gonka, GonkaNode schema, and vault key resolution by @bug-ops in #3618
- feat(zeph-llm): RequestSigner and EndpointPool for Gonka native inference by @bug-ops in #3620
- feat(init): add GonkaGate option to --init wizard by @bug-ops in #3621
- feat(zeph-llm): GonkaProvider chat/chat_stream/embed via signed transport (#3611) by @bug-ops in #3622
- perf(tracing): add llm.turn_call span to main-turn LLM call by @bug-ops in #3623
- feat(zeph-llm): GonkaProvider chat_with_tools and chat_typed (#3612) by @bug-ops in #3624
- fix(zeph-llm): name wildcard match arm in gonka/tests.rs:467 by @bug-ops in #3627
- fix(hooks): add tracing instrumentation and propagate hooks in reload_config by @bug-ops in #3628
- feat(core+wizard): wire GonkaProvider end-to-end with native wizard branch (#3613, #3603) by @bug-ops in #3632
- fix(core): import build_provider_from_entry in mod tests so gonka_tests can resolve it by @bug-ops in #3634
- feat(memory): wire APEX-MEM write path and QualityGate config by @bug-ops in #3637
- feat(context): integrate TypedPage compaction into assembler pipeline by @bug-ops in #3638
- fix(memory): prevent unique index violation in insert_or_supersede by @bug-ops in #3639
- feat(core): wire SpeculationEngine into agent loop via SpeculativeConfig by @bug-ops in #3640
- fix(core): fix SpeculationEngine sweeper abort and requires_confirmation default by @bug-ops in #3647
- fix(build,tools): add testing to full feature; fix DynExecutor::requires_confirmation delegation by @bug-ops in #3649
- fix(tools)+feat(core): DynExecutor confirmation delegation and speculative ToolStartEvent wiring by @bug-ops in #3651
- feat(core): wire SpeculationEngine try_dispatch into SSE streaming and PASTE skill activation by @bug-ops in #3654
- test(core)+fix(core): unit tests and debug_assert! for commit_speculative_tier by @bug-ops in #3655
- feat(cli): add zeph gonka doctor diagnostic subcommand and live testnet test by @bug-ops in #3656
- release: v0.20.2 by @bug-ops in #3657
Full Changelog: v0.20.1...v0.20.2
v0.20.1
Immutable
release. Only release title and notes can be modified.
What's Changed
- refactor: code quality improvements across llm, config, scheduler, core by @bug-ops in #3400
- refactor(code-quality): typed errors, test module gating, deferred TODO markers by @bug-ops in #3401
- fix(bench): enable zeph-llm testing feature for zeph-bench dev-dependencies by @bug-ops in #3404
- refactor(vault,sanitizer,config): split monolithic source files into focused submodules by @bug-ops in #3407
- feat(bench): implement BenchRunner and async bench command handler by @bug-ops in #3408
- feat(bench): wire longmemeval and tau-bench into dispatch_run by @bug-ops in #3409
- fix(skills): treat absent embedding_model payload field as model mismatch by @bug-ops in #3411
- fix(llm,deps): restore per-crate test compilation and Ollama context-length detection by @bug-ops in #3410
- fix(config): change HebbianConfig::consolidate_provider default to empty string by @bug-ops in #3412
- fix(llm,core): use embedding provider for tool schema filter and fix embed span model field by @bug-ops in #3416
- feat(bench): Aggregate stats, Turn-based Scenario, baseline dual-run by @bug-ops in #3415
- refactor: Sprint 1 code quality improvements by @bug-ops in #3419
- fix(memory): add dimension-mismatch guard to EmbeddingRegistry::search_raw by @bug-ops in #3420
- fix(memory): normalize gRPC query vector to fix near-zero cosine scores by @bug-ops in #3422
- feat(config): promote stable features to default by @bug-ops in #3424
- feat(bench): tau2-bench retail and airline environment support by @bug-ops in #3423
- refactor(core): complete task_supervisor adoption in agent/ subsystem by @bug-ops in #3429
- fix(memory): replace deprecated search_points with query() API in QdrantOps by @bug-ops in #3428
- refactor(llm): DRY router fallback error path and fix spawn_blocking for state saves by @bug-ops in #3432
- fix(bench): fix airline tool schemas, scenario filter error, and router model_identifier by @bug-ops in #3433
- fix(core): increase shutdown summary timeout and drain cancelled tasks by @bug-ops in #3434
- refactor(common,memory): EmbeddingVector typestate + SemanticMemory bool→enum by @bug-ops in #3436
- fix(skills): normalize RRF scores to [0,1] so skill injection works with hybrid_search by @bug-ops in #3437
- chore: replace TODO(review) markers with tracked GitHub issue refs by @bug-ops in #3463
- refactor(orchestration): split scheduler.rs into focused sub-modules by @bug-ops in #3460
- feat(llm): add LlmProviderDyn object-safe adapter trait by @bug-ops in #3461
- refactor(llm): migrate router and cascade storage to Arc by @bug-ops in #3462
- feat(a2a): wire AgentCard modality capabilities at bootstrap by @bug-ops in #3464
- fix(tools): replace unsafe signal sending with nix crate, decompose long functions by @bug-ops in #3465
- refactor: decompose long functions in zeph-config, zeph-llm, zeph-sanitizer by @bug-ops in #3466
- refactor(memory): decompose long functions and add Qdrant embedding fetch by @bug-ops in #3467
- refactor: decompose long functions in zeph-orchestration, zeph-context, zeph-channels by @bug-ops in #3470
- refactor: decompose long functions in zeph-mcp, zeph-index, zeph-subagent by @bug-ops in #3469
- refactor(core): decompose long functions in zeph-core to remove clippy suppressions by @bug-ops in #3471
- refactor(tui): decompose long functions and surface shell background elapsed time by @bug-ops in #3468
- refactor(acp): decompose long functions in zeph-acp agent module by @bug-ops in #3472
- refactor(core): decompose long functions in zeph-core agent module and provider_factory by @bug-ops in #3473
- fix(acp): remove /compact from ACP-native command list by @bug-ops in #3475
- fix(context): plumb active_levels into ContextAssemblyInput for tier-based pruning by @bug-ops in #3477
- fix(focus): preserve current-turn assistant message in complete_focus batch truncation by @bug-ops in #3478
- fix(acp,vault): gate EnvVaultProvider behind feature flag and bound unbounded channels by @bug-ops in #3479
- fix(llm): skip embed-only providers when resolving active_provider_name by @bug-ops in #3486
- fix(core,bootstrap): gate EnvVaultProvider re-export; skip embed-only fallback in provider pool by @bug-ops in #3487
- fix(config,llm): skip embed-only providers in effective_model and cost tracking by @bug-ops in #3495
- refactor(core): extract zeph-agent-feedback from zeph-core (Phase 1, PR 0b) by @bug-ops in #3494
- fix(ci,tui): fix clippy violations in test targets and compact metrics signal by @bug-ops in #3496
- refactor(config): invert zeph-config dependency arrow and standardize provider fields by @bug-ops in #3492
- fix(daemon,bootstrap): resolve dedicated MCP embed provider in daemon mode; add unit test by @bug-ops in #3502
- fix(scheduler,gateway): hydrate CLI jobs at startup and wire webhook forwarding by @bug-ops in #3503
- fix(ci,llm): expose testing feature for mock in --all-targets builds by @bug-ops in #3506
- refactor(core): split large test files into sub-modules — Phase 1 PR 1 (#3497) by @bug-ops in #3507
- refactor(core): move task_supervisor to zeph-common, migrate all agent spawns (#3511, #3508) by @bug-ops in #3512
- refactor(core): group Agent fields into Services and AgentRuntime aggregators (#3509) by @bug-ops in #3513
- refactor(context): define TurnContext value type for phase-boundary handoff (#3510) by @bug-ops in #3514
- feat(core): scaffold zeph-agent-persistence and zeph-agent-tools crates by @bug-ops in #3518
- refactor(core): wire zeph-core to zeph-agent-persistence and zeph-agent-tools (#3515, #3516) by @bug-ops in #3519
- feat(core): scaffold zeph-agent-context and move SecurityEventCategory (#3517) by @bug-ops in #3522
- ci(trivy): fix sarif upload to github security dashboard by @bug-ops in #3523
- feat(docker): switch to musl targets and distroless/static-debian12 by @bug-ops in #3524
- refactor(context): complete zeph-agent-context migration (assembly + summarization) by @bug-ops in #3525
- fix(acp): restore notification routing and suppress large_futures (#3520, #3521) by @bug-ops in #3530
- refactor(context): wire compact_context, add MetricsCallback and compression_guidelines by @bug-ops in #3531
- refactor(context): migrate collect_retrieved_context to zeph-agent-context (#3529) by @bug-ops in #3532
- fix(memory,context,eviction): resolve critical TODOs by @bug-ops in #3534
- fix(mcp,core): resolve critical TODOs — MCP Await Discipline violation + stale comments by @bug-ops in #3537
- fix(rl-routing): populate last_forward during warmup to unblock update_count (#3535) by @bug-ops in #3538
- fix(mcp): serialize add/remove to prevent orphaned trust/tools entries by @bug-ops in #3539
- fix(gateway): return application/json for all POST /webhook error responses by @bug-ops in #3542
- fix: resolve actionable TODOs — path migration, integration test stubs, deferred qdrant_api_key by @bug-ops in #3545
- fix(gateway): return application/json for POST /webhook 503 response by @bug-ops in #3546
- fix(sanitizer): skip ML classifier for bash and shell tool outputs by @bug-ops in #3548
- feat(memory): wire optional Qdrant API key end-to-end by @bug-ops in #3549
- perf(memory)+fix(sanitizer): PERF-05 OnceLock cache and Phase 5 exfiltration detectors by @bug-ops in #3550
- fix: resolve three actionable TODOs in memory and bench subsystems by @bug-...
v0.20.0
Immutable
release. Only release title and notes can be modified.
What's Changed
- fix(core): defer start_focus checkpoint insertion until after tool result by @bug-ops in #3263
- fix(quality): remove redundant flush_chunks before MARCH self-check by @bug-ops in #3264
- feat(acp): add handler scaffolding and unstable feature flags for 0.11 migration by @bug-ops in #3274
- refactor(acp)!: migrate to agent-client-protocol 0.11 builder API by @bug-ops in #3275
- refactor(acp): rewrite integration tests for 0.11 API, add handler tracing spans by @bug-ops in #3276
- feat(acp): add additional_directories, auth_methods, message_ids config + CLI + TUI by @bug-ops in #3277
- docs(acp): add 0.11 migration playbook, coverage-status rows, spec update by @bug-ops in #3278
- test(context): add regression tests for orphaned tool_result after compaction by @bug-ops in #3284
- refactor(memory): remove orphaned modules and rename DbGraphStore by @bug-ops in #3283
- refactor: remove dead code — LlmRoutingStrategy::Task, coe_enabled/with_coe, assembler.rs by @bug-ops in #3285
- fix(deps): update constant_time_eq to non-yanked version by @bug-ops in #3286
- refactor(config)!: rename MigrationResult added_count/sections_added to changed_count/sections_changed by @bug-ops in #3287
- fix(tui): add /acp dirs, /acp auth-methods, /acp status slash-command handlers by @bug-ops in #3288
- feat(acp): add ACP client sub-agent delegation and ActiveSession CLI by @bug-ops in #3289
- fix(acp): use http_bind config field when autostarting HTTP server by @bug-ops in #3291
- feat(hooks): add reactive env hooks and MCP tool dispatch by @bug-ops in #3303
- feat(memory): add multi-strategy graph retrieval and experience memory by @bug-ops in #3311
- fix(config): add missing migrate-config steps for acp.subagents, hooks.permission_denied, memory.graph by @bug-ops in #3321
- feat(cost): add CPS metric to CostTracker by @bug-ops in #3322
- fix(tui,config): display CPS metric in /cost and add migrate unit tests by @bug-ops in #3333
- fix(bare): skip MCP connections, gateway spawn, and graph config in --bare mode by @bug-ops in #3334
- feat(sandbox,scheduler): denied_domains egress block and zeph serve daemon by @bug-ops in #3332
- fix(slash_commands,hooks): intercept /subagent in core loop and propagate LayerDenial reason (#3302, #3310) by @bug-ops in #3335
- docs(config): add commented hook examples for permission_denied and mcp_tool by @bug-ops in #3336
- docs(specs): memory research — MemMachine, HeLa-Mem, ReasoningBank by @bug-ops in #3337
- fix(scheduler,config): graceful shutdown exits early when idle; add daemon migration step by @bug-ops in #3348
- fix(memory): wire ExperienceStore into agent tool loop and evolution sweep by @bug-ops in #3349
- feat(skills,memory): skill evaluator, proactive exploration, compression spectrum by @bug-ops in #3350
- fix(builder): remove duplicate with_graph_config call in runner and daemon by @bug-ops in #3354
- feat(memory): add [memory.retrieval] config — depth, search prompt template, context format (#3340) by @bug-ops in #3353
- fix(skills,memory): wire SkillEvaluator, ProactiveExplorer, and PromotionEngine in bootstrap by @bug-ops in #3356
- feat(tools,core): background shell execution and completion notifications by @bug-ops in #3352
- feat(memory): implement ReasoningBank — distilled reasoning strategy memory by @bug-ops in #3360
- feat(hooks,mcp): ZEPH_TOOL_DURATION_MS in PostToolUse hooks + parallel OAuth MCP connect by @bug-ops in #3361
- fix(bare,tools): skip file watcher in bare mode; document bg shell config fields by @bug-ops in #3368
- fix(mcp): log tool collisions after OAuth connect and guard bare mode spawn by @bug-ops in #3367
- fix(config): add migrate-config step for [memory.reasoning] and correct default.toml by @bug-ops in #3372
- fix(core,notifications): fix three P3 bugs — notify master switch, overflow comment, dead BackgroundShell by @bug-ops in #3374
- fix(core): add context-prep timeout and NoProviders backoff to agent loop by @bug-ops in #3373
- feat(memory): MemMachine query bias, episode preservation, HeLa-Mem edge weights and Hebbian updates by @bug-ops in #3371
- fix(bootstrap): pass embed provider to attach_reasoning_memory for Qdrant probe by @bug-ops in #3376
- fix(config): document missing timeout tunables in default.toml by @bug-ops in #3381
- feat(memory): HeLa-Mem background consolidation pass (HL-F3/F4) by @bug-ops in #3380
- feat(ux): provider persistence, compaction gauge, turn_complete hooks by @bug-ops in #3385
- feat(core,a2a): Focus strategy auto-consolidation and MMA2A AgentCard capabilities by @bug-ops in #3388
- fix(memory): pass embed provider to ReasoningBank extraction pipeline and narrow self-judge window by @bug-ops in #3389
- fix(core): validate auto_consolidate_min_window rejects zero by @bug-ops in #3392
- fix(core): bypass ML classifier for internal tool outputs (#3384) by @bug-ops in #3394
- fix(skills): skip skill matcher in bare mode and stabilize embed model name by @bug-ops in #3395
- test(core): prove skip_ml fires for internal tool names by @bug-ops in #3396
- feat(memory): HeLa-Mem spreading activation retrieval and query-bias tracing by @bug-ops in #3397
- perf(core): offload score_blocks_mig O(K²) loop to spawn_blocking by @bug-ops in #3398
- release: v0.20.0 by @bug-ops in #3399
Full Changelog: v0.19.3...v0.20.0
v0.19.3
What's Changed
- feat(cli): add --bare mode, --json output, -y flag, and /loop command by @bug-ops in #3170
- chore(deps): update dependency telethon to >=1.43.1 by @bug-ops in #3190
- chore(deps): pin dependencies by @bug-ops in #3184
- chore(deps): pin dependencies by @bug-ops in #3185
- chore(deps): update grafana/grafana docker tag to v12 by @bug-ops in #3196
- chore(deps): update prom/prometheus docker tag to v3.11.1 by @bug-ops in #3192
- chore(deps): update rust docker tag to v1.95 by @bug-ops in #3198
- chore(deps): update qdrant/qdrant docker tag to v1.17.1 by @bug-ops in #3193
- chore(deps): update github-actions (major) by @bug-ops in #3195
- chore(deps): refresh cargo lock file by @bug-ops in #3197
- chore(deps): update serde by @bug-ops in #3189
- chore(deps): update axum-tower by @bug-ops in #3186
- chore(deps): update grafana/grafana docker tag to v12.4.3 by @bug-ops in #3200
- chore(deps): update prom/prometheus docker tag to v3.11.2 by @bug-ops in #3201
- chore(deps): pin dependencies by @bug-ops in #3199
- chore(deps): update rust crate opentelemetry-otlp to 0.31.1 by @bug-ops in #3187
- chore(deps): update grafana/grafana docker tag to v13 by @bug-ops in #3205
- chore(deps): update rust-minor-patch by @bug-ops in #3202
- chore(deps): update dependency node to v24.15.0 by @bug-ops in #3203
- chore(deps): update actions/cache action to v5 by @bug-ops in #3204
- chore(deps): refresh cargo lock file by @bug-ops in #3206
- fix(cli): resolve 6 clippy violations in startup_checks.rs test targets by @bug-ops in #3208
- fix(persistence): prevent orphaned tool_use entries after utility-gate intercept by @bug-ops in #3210
- fix(cli): skip scheduler, code indexer, and mem-eviction in --bare mode by @bug-ops in #3216
- feat(mcp,ux): MCP server-driven elicitation and /recap slash command by @bug-ops in #3218
- fix(channels): suppress spurious JSON events and surface /loop errors by @bug-ops in #3219
- feat(quality): MARCH Proposer+Checker self-check pipeline by @bug-ops in #3226
- fix(commands): route /plugins slash command through CommandRegistry by @bug-ops in #3229
- fix(channels): use raw field.name as elicitation response map key in Telegram by @bug-ops in #3230
- fix(channels): resolve clippy violations in json_cli.rs test helpers by @bug-ops in #3232
- feat(quality): add migrate-config step 22 and --init step_quality for [quality] section by @bug-ops in #3233
- fix(quality): prevent double response_end when MARCH flag_marker fires in --json mode by @bug-ops in #3234
- fix(llm): defer system msg injection during tool call chains (#3235) by @bug-ops in #3237
- fix(index): wire CodeRetriever into IndexState for automatic code RAG by @bug-ops in #3238
- fix(index): pass index_provider to apply_code_rag_retriever by @bug-ops in #3240
- fix(index): pass index_provider to build_search_code_executor by @bug-ops in #3242
- fix(quality): prevent double response_end when MARCH marker appended in --json mode by @bug-ops in #3244
- fix(tools): restore exempt_tools defaults when partial [tools.utility] TOML is parsed by @bug-ops in #3246
- fix(context): strip orphaned tool_result messages after hard compaction by @bug-ops in #3256
- feat(memory): ClawVM typed pages, MemReader quality gate, APEX-MEM graph by @bug-ops in #3260
- release: v0.19.3 by @bug-ops in #3261
Full Changelog: v0.19.2...v0.19.3
v0.19.2
What's Changed
- fix(memory): use effective_embed_provider for all embedding ops in semantic submodules by @bug-ops in #3035
- fix(skills): warn on score threshold drop, fix RL skip log, init active_skills at startup by @bug-ops in #3036
- fix(skills): distinguish infra error from score-threshold empty in skill matcher by @bug-ops in #3037
- refactor(core): initialize all static MetricsSnapshot fields at builder time by @bug-ops in #3038
- fix(skills): assign Trusted trust to bundled skills on startup and hot-reload by @bug-ops in #3042
- feat(skills): hub skill install pipeline with .bundled trust-escalation filter by @bug-ops in #3043
- fix(skills): activate injection scanner and harden bundled skill trust pipeline (#3050) by @bug-ops in #3051
- fix(tui): handle bracketed paste as single message by @bug-ops in #3053
- Fix system metrics log level noise by @bug-ops in #3052
- feat(tui): compact paste indicator in input + collapsible paste in chat by @bug-ops in #3054
- tui: improve multiline composer by @bug-ops in #3055
- feat(skills): wire with_hub_dirs in agent builder to activate M1 defense-in-depth by @bug-ops in #3059
- build: bump MSRV from 1.88 to 1.94 by @bug-ops in #3066
- feat(mcp,cli): MCP outputSchema forwarding + zeph doctor diagnostic (#2931, #2930) by @bug-ops in #3067
- feat(tools,core): OS sandbox (#2808) + speculative tool dispatch (#2290, #2409) by @bug-ops in #3068
- feat(security): egress network logging + VIGIL verify-before-commit gate by @bug-ops in #3069
- fix(llm,index): Thompson 429 double-penalty + upsert CONFLICT target (#3060, #3065) by @bug-ops in #3075
- fix(orchestration): do not cancel sub-agents on stdin EOF when plan tasks are running by @bug-ops in #3076
- fix(tui): clarify skills panel label and fix embed_provider in testing config by @bug-ops in #3081
- fix(mcp): downgrade per-branch depth-cap WARN to debug in sanitizer by @bug-ops in #3082
- fix(sandbox): fix Seatbelt workspace profile and add wizard/migrate support by @bug-ops in #3085
- feat(orchestration,llm): AdaptOrch topology advisor + CoE entropy routing by @bug-ops in #3099
- feat(orchestration): VeriMAP predicate gate, cascade abort defense, interop spec by @bug-ops in #3097
- fix(sandbox): add deny-first Seatbelt rules for well-known secret paths by @bug-ops in #3103
- build(deps): bump rand 0.8.5 to 0.8.6 (RUSTSEC-2026-0097) by @bug-ops in #3104
- fix(mcp): raise output_schema_hint_bytes default to 1024 and fix stub event name by @bug-ops in #3106
- fix(memory): rate-limit Qdrant WARN flood in background embed tasks by @bug-ops in #3109
- fix(config): make migrate-config --in-place idempotent by @bug-ops in #3110
- fix(mcp): wire forward_output_schema for Compatible, Gemini, and Ollama providers by @bug-ops in #3112
- perf(orchestration): cache forward adjacency in CascadeDetector by @bug-ops in #3114
- fix(sandbox): emit canonical deny rules for symlinked secret paths by @bug-ops in #3115
- fix(config): make migrate-config --in-place fully idempotent by @bug-ops in #3118
- feat(llm): add configurable prompt cache TTL with 1-hour Claude variant by @bug-ops in #3123
- feat(orchestration): wire GraphPersistence::save in scheduler loop (#3107) by @bug-ops in #3124
- fix(tools): extend utility gate to recognize natural shell command requests by @bug-ops in #3126
- feat(skills,plugins): add agent-invocable skills and plugin packaging by @bug-ops in #3127
- fix(lint,sandbox): fix clippy violations in test targets and sandbox warn on dropped paths by @bug-ops in #3131
- feat(security): harden file permissions for sensitive Zeph files by @bug-ops in #3132
- feat(ux): session recap — /recap command and auto-summary on resume by @bug-ops in #3136
- fix(core,doctor): run plugin I/O in spawn_blocking and add vault permission remediation by @bug-ops in #3142
- feat(plugins): wire runtime config overlay merge into live Config by @bug-ops in #3145
- fix(skills,tools): exempt invoke_skill from policy gates and fix plugin hot-reload by @bug-ops in #3150
- fix(llm,cost): suppress WARN log floods from cost tracker, provider_factory, and ASI coherence router by @bug-ops in #3151
- fix(common,ux): clippy items_after_statements in fs_secure + /recap deduplication on resume by @bug-ops in #3153
- fix(memory): use effective_embed_provider() in A-MAC admission evaluate() calls by @bug-ops in #3154
- fix(plugins): rename plugin_dir to entry_dir in overlay.rs test helper by @bug-ops in #3157
- feat(plugins): add install-time value-level validation for allowed_commands overlay by @bug-ops in #3159
- fix(memory): correct A-MAC admission provider fallback in bootstrap by @bug-ops in #3162
- feat(tui): multi-session SessionRegistry with /session switch and close commands (#3130) by @bug-ops in #3164
- fix(tools): exempt invoke_skill and load_skill from utility gate by @bug-ops in #3165
- fix(core): clippy violations in test targets and TaskSupervisor shutdown timeout (#3160, #3161) by @bug-ops in #3167
- feat(plugins): live ShellExecutor hot-reload, skipped_plugins UX, sha256 integrity check by @bug-ops in #3166
- release: v0.19.2 by @bug-ops in #3169
Full Changelog: v0.19.1...v0.19.2
v0.19.1
What's Changed
- fix(index): wrap chunk_file in spawn_blocking to unblock tokio runtime by @bug-ops in #2964
- fix(tui,context): eliminate per-frame clone and context over-allocation by @bug-ops in #2966
- fix(memory): spawn_embed_bg always returns false, masking embed backfill success by @bug-ops in #2967
- feat(core): add TaskSupervisor for centralized async task lifecycle by @bug-ops in #2965
- fix(tui,mcp,tools): eliminate async discipline violations causing TUI freeze and 1000% CPU by @bug-ops in #2975
- fix(core): correct TaskSupervisor shutdown race, restart policy, and spawn_blocking by @bug-ops in #2973
- fix(mcp): eliminate lock-across-await in handle_connect_result by @bug-ops in #2976
- feat(core): migrate bootstrap memory loops to TaskSupervisor (#2960) by @bug-ops in #2977
- feat(channels,tui,a2a): migrate leaf spawns to TaskSupervisor, add TUI task registry by @bug-ops in #2979
- feat(core,index): BlockingSpawner trait and TaskSupervisor observability by @bug-ops in #2980
- fix(tui): move render loop off tokio workers, fix backpressure, add spinner by @bug-ops in #2985
- fix(tui): eliminate mutex contention inside terminal.draw() by @bug-ops in #2986
- fix(tui): eliminate CPU/memory regression and improve observability by @bug-ops in #2995
- fix(telemetry): harden OTLP pipeline to eliminate CPU/RAM regression by @bug-ops in #3003
- fix(index,memory,core,tools,tracing): eliminate CPU/RAM regression (#3014) by @bug-ops in #3018
- fix(tools): replace Box::leak with Arc in declarative filter by @bug-ops in #3019
- refactor(core): introduce RuntimeContext for runtime mode flags by @bug-ops in #3023
- test(tools): add hot-reload regression tests for DeclarativeFilter::compile() by @bug-ops in #3024
- fix(tui): wire status_rx to TUI early during init to unfreeze startup by @bug-ops in #3025
- refactor(agent_setup): consolidate suppress_stderr and tui_mode into RuntimeContext by @bug-ops in #3026
- fix(memory): prevent infinite loop in chunk_text when overlap rewinds start by @bug-ops in #3027
- release: v0.19.1 by @bug-ops in #3028
Full Changelog: v0.19.0...v0.19.1
v0.19.0
What's Changed
- fix(mcp): apply timeout to initialize handshake and list_tools by @bug-ops in #2823
- perf(context,llm): budget-first context assembly and turn-local embedding reuse by @bug-ops in #2824
- feat(core): supervised background task management and persist_message hot-path offload by @bug-ops in #2826
- perf(llm): bounded Candle inference worker + turn-level latency metrics by @bug-ops in #2825
- feat(bench): add zeph-bench crate scaffold, CLI subcommand, and deterministic mode by @bug-ops in #2840
- feat(bench): implement result writer and --resume support by @bug-ops in #2841
- feat(bench): implement LOCOMO, FRAMES, and GAIA dataset loaders by @bug-ops in #2842
- docs: complete rustdoc for all public APIs across Zeph project by @bug-ops in #2843
- docs: complete specs vault restructuring and migration to /specs by @bug-ops in #2844
- fix(mcp): add missing meta field and consolidate documentation URLs by @bug-ops in #2845
- feat(profiling): Phase 1 — profiling and tracing foundation by @bug-ops in #2862
- docs(specs): add graph memory sub-spec to 004-memory by @bug-ops in #2863
- docs(specs): add Prometheus metrics specification (036) by @bug-ops in #2864
- feat(profiling): implement Phase 2 deep instrumentation (#2851-#2857) by @bug-ops in #2869
- feat(metrics): Phase 1 — Prometheus metrics export foundation by @bug-ops in #2870
- ci: unify rust-cache shared-key to "ci" across registry-only jobs by @bug-ops in #2871
- feat(metrics): implement Phase 2 Grafana stack and Phase 3 histogram metrics (#2865) by @bug-ops in #2875
- fix(metrics): remove dead ZEPH_METRICS_HOST env var, add 120s histogram bucket, wire recorder tests by @bug-ops in #2876
- feat(profiling): implement Phase 3 and Phase 4 (#2858-#2861) by @bug-ops in #2877
- feat(bench): add isolation, LongMemEval, tau-bench loaders, and baseline comparison by @bug-ops in #2878
- fix(tui): wrap startup embed calls with tokio::time::timeout (#2879) by @bug-ops in #2880
- docs(specs): spec audit — close all gaps, add #37–#41 by @bug-ops in #2882
- fix(tracing): wire OTLP pipeline to Jaeger, remove dead ObservabilityConfig by @bug-ops in #2890
- fix(metrics): replace insert with replace in on_enter to avoid panic on async span re-entry by @bug-ops in #2891
- feat(core): BackgroundSupervisor Phase 2 — supervised spawns, latency histogram, TUI display, turn-boundary abort by @bug-ops in #2892
- fix(skills): normalize :latest suffix in embedding model name comparison by @bug-ops in #2910
- refactor(core): decompose MemoryState and consolidate AgentBuilder (#2897, #2899) by @bug-ops in #2911
- feat(core): introduce Turn domain type and CommandRegistry (#2895, #2896) by @bug-ops in #2912
- refactor(common): introduce ToolName and SessionId newtypes by @bug-ops in #2913
- refactor(core/skills): LoopEvent event handler pattern + zeph-skills dependency decoupling by @bug-ops in #2914
- refactor: type safety cleanup and MemoryFacade trait (#2907, #2903) by @bug-ops in #2915
- refactor(core): extract ContextAssembler as standalone testable struct (#2904) by @bug-ops in #2917
- refactor(core): extract shared provider helpers from bootstrap (#2916) by @bug-ops in #2918
- refactor(core): move bootstrap module from zeph-core to binary crate by @bug-ops in #2919
- refactor(core): extract zeph-context crate from zeph-core monolith (phase 1) by @bug-ops in #2920
- refactor(core,commands,sanitizer): extract zeph-commands scaffold and infrastructure improvements by @bug-ops in #2922
- refactor(commands,core): migrate command handlers to zeph-commands (phase 3) by @bug-ops in #2925
- refactor(commands,core): migrate 8 command handlers to zeph-commands (phase 4) by @bug-ops in #2926
- refactor(commands,core): migrate 3 slash handlers to Send-compatible registry (phase 5, #2928) by @bug-ops in #2934
- fix(bootstrap,channels,core): unused import and CLI image path traversal by @bug-ops in #2938
- fix(core,experiments): path traversal in ImageCommand and rand RUSTSEC-2026-0097 by @bug-ops in #2939
- docs(specs): add BRD, SRS, NFR and fill gaps in spec coverage by @bug-ops in #2940
- refactor(llm,mcp,commands): investigate HRTB blockers for /compact and /mcp migration (#2935, #2936) by @bug-ops in #2941
- fix(commands,mcp): resolve HRTB blockers for /compact and /mcp registry migration by @bug-ops in #2944
- refactor(commands,core): migrate /skill, /skills, /feedback to CommandHandler registry, remove dispatch_slash_command (#2945) by @bug-ops in #2949
- ci: remove sccache from lightweight jobs, expand cargo cache by @bug-ops in #2950
- refactor(commands): remove old channel.send wrappers for /lsp, /scheduler, /experiment, /log (#2946, #2947) by @bug-ops in #2951
- refactor(commands): migrate /plan command family to CommandHandler registry by @bug-ops in #2952
- release: v0.19.0 by @bug-ops in #2953
Full Changelog: v0.18.6...v0.19.0