Skip to content

Releases: bug-ops/zeph

v0.21.2

18 May 16:49
Immutable release. Only release title and notes can be modified.
18a5e8e

Choose a tag to compare

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...
Read more

v0.21.1

12 May 21:28
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

11 May 08:44
Immutable release. Only release title and notes can be modified.
6578501

Choose a tag to compare

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

06 May 15:11
Immutable release. Only release title and notes can be modified.
a190628

Choose a tag to compare

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 purge command 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

28 Apr 20:25
Immutable release. Only release title and notes can be modified.
5de1b0e

Choose a tag to compare

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-...
Read more

v0.20.0

25 Apr 12:15
Immutable release. Only release title and notes can be modified.
3571b03

Choose a tag to compare

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

19 Apr 19:58
4bec29f

Choose a tag to compare

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

18 Apr 13:45

Choose a tag to compare

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

15 Apr 10:58
e50c8c9

Choose a tag to compare

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

13 Apr 18:25
1c58ad7

Choose a tag to compare

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