Releases: bug-ops/zeph
Releases · bug-ops/zeph
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
v0.18.6
What's Changed
- fix(core): prevent agent stall and reduce memory pressure in tool-heavy sessions by @bug-ops in #2754
- perf(core): skip debug_request_json and truncate graph context (#2757, #2759) by @bug-ops in #2761
- perf(memory): cap persona extraction to 8 messages / 2 KiB each by @bug-ops in #2763
- perf(core): reduce memory pressure in tool-heavy sessions by @bug-ops in #2764
- feat(memory): embed backfill progress tracking with bounded memory and concurrency by @bug-ops in #2766
- fix(core): add timeouts and tracing to prevent agent stall after tool batch by @bug-ops in #2768
- fix(memory): decouple embed+store from agent loop persist_message by @bug-ops in #2771
- perf(learning): batch record_skill_outcomes per tool batch, add query timeouts by @bug-ops in #2772
- fix(core,tui): prevent unbounded memory growth and TUI lockup by @bug-ops in #2788
- refactor(core): DRY token estimation and system message removal (#2778, #2779) by @bug-ops in #2791
- refactor(llm): remove duplicate cosine_similarity and dead chat_with_named_provider by @bug-ops in #2792
- fix(core): route reload_config() through auto_budget_tokens() fallback by @bug-ops in #2795
- refactor(core): replace std::sync RwLock/Mutex with parking_lot (#2780) by @bug-ops in #2796
- refactor(core): remove re-exports, dead code, and unused accessors by @bug-ops in #2797
- refactor(core): consolidate tool-related standalone fields into ToolState sub-struct by @bug-ops in #2809
- refactor(core): extract MCP, Index, Debug methods into State impl blocks (#2799, #2800, #2801) by @bug-ops in #2810
- refactor(core): extract SecurityState/SkillState methods, consolidate Agent fields (#2802, #2803, #2805) by @bug-ops in #2812
- refactor(core,llm): remove legacy tool path and clean up dead code (#2781, #2782) by @bug-ops in #2811
- refactor(core): consolidate builder methods with sub-struct constructors (#2804) by @bug-ops in #2813
- release: v0.18.6 by @bug-ops in #2814
Full Changelog: v0.18.5...v0.18.6
v0.18.5
What's Changed
- fix(mcp): resolve tool_discovery.embedding_provider in runner.rs by @bug-ops in #2685
- fix(skills): pass embedding_provider to build_skill_matcher by @bug-ops in #2687
- feat(memory): trajectory memory, category-aware memory, TiMem tree by @bug-ops in #2689
- fix(skills): pass embedding_provider to Agent::new_with_registry_arc (#2688) by @bug-ops in #2691
- fix(memory): wire trajectory and category configs into AgentBuilder by @bug-ops in #2692
- fix(mcp): explicitly shutdown MCP manager before runtime exit (#2693) by @bug-ops in #2696
- fix(db,skills): fts duplicate defs + rl_embed_dim hardcoded 1536 (#2695, #2694) by @bug-ops in #2700
- feat(mcp,tools): MCP identity propagation, tool quota, structured errors, OAP authorization by @bug-ops in #2703
- fix(memory,test): graph episode FK constraint + test thread leak by @bug-ops in #2705
- fix(test): abort gateway task to eliminate thread leak in spawn_gateway_returns_receiver by @bug-ops in #2707
- feat(scheduler): add CLI subcommand for managing scheduled jobs by @bug-ops in #2708
- feat(agent,config): time-based microcompact, autoDream, MagicDocs (#2699, #2697, #2702) by @bug-ops in #2709
- fix(test): eliminate thread leak in shared_agent_deps_has_document_and_graph_config_fields by @bug-ops in #2712
- docs: update book and READMEs for v0.18.4 by @bug-ops in #2711
- feat(routing): ASI coherence tracking and unified quality-gate cascading (#1841, #2165) by @bug-ops in #2713
- fix(test): eliminate thread leak in compression_predictor tests by @bug-ops in #2719
- feat(core,tools): MagicDocs utility gate bypass and cache-expiry warning (#2714, #2715) by @bug-ops in #2721
- fix(memory): deduplicate key facts before storing to prevent accumulation by @bug-ops in #2725
- feat(context): surface compaction failure as user-visible message by @bug-ops in #2726
- fix(router): debounce spawn_asi_update to fire once per agent turn (#2720) by @bug-ops in #2728
- fix(test): eliminate thread leaks in zeph-llm and zeph-channels by @bug-ops in #2729
- fix(magic_docs,memory): scan Role::User for ToolOutput; filter policy-decision key_facts by @bug-ops in #2731
- fix(magic_docs): handle MessagePart::ToolResult from native execution path by @bug-ops in #2733
- feat(cost): per-model and cache-hit breakdown in /cost command (#2730) by @bug-ops in #2735
- fix(db): remove compile_error for --all-features, gate sqlite-only test assertions by @bug-ops in #2736
- fix(tui): prevent unbounded RSS growth — 4 leak sites by @bug-ops in #2739
- fix(db): gate connect_sqlite on sqlite-only, fix --all-features build by @bug-ops in #2740
- fix(scheduler): prevent unbounded tokio::spawn in TUI metrics refresh by @bug-ops in #2743
- perf(core): cache BPE data in OnceLock to avoid repeated disk loads by @bug-ops in #2744
- release: v0.18.5 by @bug-ops in #2745
Full Changelog: v0.18.4...v0.18.5
v0.18.4
What's Changed
- fix(mcp): inject server instructions into system prompt by @bug-ops in #2639
- fix(tools): utility gate explicit-request bypass and ML classifier false-positive by @bug-ops in #2638
- fix(tools): explicit_request check falls back to m.content when parts is empty by @bug-ops in #2643
- feat(tui): slash-command autocomplete in insert mode by @bug-ops in #2644
- fix(index): wire workspace_root through IndexConfig and optimize memory usage by @bug-ops in #2648
- feat(memory): persona memory layer and multi-agent consistency protocol by @bug-ops in #2649
- fix(index): offload directory walk to spawn_blocking to unblock TUI startup by @bug-ops in #2651
- fix(memory): wire persona extraction write-path into agent loop by @bug-ops in #2652
- fix(tui): start rendering immediately, defer agent wiring to phase 2 by @bug-ops in #2654
- fix(memory): await persona extraction on shutdown to prevent task cancellation by @bug-ops in #2655
- fix(tui): start TUI rendering before heavy agent initialization by @bug-ops in #2657
- fix(tui): clear status bar after init, switch tui_status! to send().await by @bug-ops in #2659
- fix(tui): fix status race condition and blocking skill hash loop by @bug-ops in #2661
- fix(memory): move embed_missing to background, add early Ctrl+C handler by @bug-ops in #2663
- perf(index): add memory batching and max_file_bytes to reduce peak RAM by @bug-ops in #2665
- perf(llm): add embed_batch() to LlmProvider, eliminate per-chunk sequential HTTP calls by @bug-ops in #2667
- fix(index): add embed_provider to IndexConfig to prevent guardrail contention by @bug-ops in #2669
- fix(index,memory,tui): fix 35GB RAM growth, guardrail false-positives, missing status indicators by @bug-ops in #2671
- fix(router): exclude embed=true providers from inference routing pool by @bug-ops in #2673
- fix(skills): replace panic in RoutingHead::update() with graceful no-op by @bug-ops in #2676
- fix(memory): guard upsert_persona_fact against stale source_conversation_id by @bug-ops in #2678
- fix(llm,index): embed retry/backoff on 429 + embed_concurrency cap (#2677, #2679) by @bug-ops in #2680
- fix(llm): use OLLAMA_CHAT_MODEL/OLLAMA_EMBED_MODEL env vars in ollama.rs integration tests by @bug-ops in #2682
- release: v0.18.4 by @bug-ops in #2683
Full Changelog: v0.18.3...v0.18.4
v0.18.3
What's Changed
- feat(memory): chunk large messages into multi-vector embeddings (#2551, #2552, #2543) by @bug-ops in #2564
- fix(tools): add PII NER circuit breaker for paginated reads by @bug-ops in #2572
- refactor: remove 9 feature flags, eliminate ~320 cfg gates by @bug-ops in #2583
- arch: DRY improvements — consolidate hash, truncate, config, and event conversion utilities by @bug-ops in #2584
- fix(subagent): prevent exit after 1 turn on text-only LLM response by @bug-ops in #2585
- fix(memory): apply multi-vector chunking in real-time embed paths (#2570, #2571) by @bug-ops in #2586
- fix(sanitizer,clippy): skip ML classification for policy_blocked outputs; raise hard threshold; fix doc_markdown lints by @bug-ops in #2588
- arch: trust taxonomy rename and ProviderName newtype by @bug-ops in #2587
- feat(subagent): context propagation Phase 1 — history, cancellation, model inherit by @bug-ops in #2589
- fix(memory): resolve SQLite pool starvation causing multi-turn session hangs by @bug-ops in #2592
- feat(memory,index): GAAMA episode nodes + IndexMcpServer (#2503, #2508) by @bug-ops in #2594
- feat(subagent): MCP tool annotation in sub-agent system prompt (#2581) by @bug-ops in #2598
- security(skills,memory): OOM cap, hint truncation, D2Skill/SkillOrchestra tests by @bug-ops in #2601
- feat(skills): D2Skill step-level error correction + SkillOrchestra RL routing head by @bug-ops in #2600
- test(config): add TOML float deserialization regression tests (#2599) by @bug-ops in #2602
- feat(security): cross-tool injection correlation + AgentRFC protocol audit by @bug-ops in #2603
- feat(memory): contextual tool embeddings, Focus compression, density-aware budgets by @bug-ops in #2604
- feat(skills): NL skill generation and GitHub repo mining (#2418, #1889) by @bug-ops in #2605
- security: SKILL.md injection sanitization, URL domain allowlist, trust fallback fix (#2500, #2506) by @bug-ops in #2611
- feat(agent): BATS budget hint + utility 5-way action policy (#2267, #2477) by @bug-ops in #2613
- feat(memory): SleepGate forgetting pass + performance-floor compression predictor by @bug-ops in #2614
- fix(agent): defer utility gate System hint injection until after tool results (#2615) by @bug-ops in #2616
- fix(skills): RL cold start, injection hard block, /skill create dedup by @bug-ops in #2618
- feat(skills): wire channel allowlist, cap skill-create description, wrap github_token in Secret by @bug-ops in #2617
- refactor: consolidate duplicated utilities into zeph-common by @bug-ops in #2619
- fix(agent): exclude [skipped] utility messages from semantic memory (#2620) by @bug-ops in #2623
- fix(skills): scan input for injection patterns, fix Qdrant dedup (#2621, #2622) by @bug-ops in #2624
- refactor: split large modules into focused submodules by @bug-ops in #2626
- docs: update book, specs, and READMEs for ~100 merged commits by @bug-ops in #2625
- fix(memory): ensure conversation row exists before graph episode insert by @bug-ops in #2629
- refactor: code quality — split god files, extract long functions, fix DRY violations by @bug-ops in #2631
- fix(persistence): flush orphaned tool_use on shutdown by @bug-ops in #2632
- refactor: split agent/learning.rs into focused submodules by @bug-ops in #2633
- release: v0.18.3 by @bug-ops in #2634
- docs: update book, READMEs, and specs for v0.18.3 by @bug-ops in #2640
Full Changelog: v0.18.2...v0.18.3