Releases: bug-ops/zeph
Releases · bug-ops/zeph
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
v0.18.2
What's Changed
- fix(skills): prevent low-confidence skill injection (#2512, #2513, #2501) by @bug-ops in #2517
- fix(security): reclassify search_code as ToolResult, add PII NER input truncation by @bug-ops in #2518
- fix(memory): configurable SA timeout, tier promotion retry, orphan cleanup by @bug-ops in #2519
- feat(memory): wire StoreRoutingConfig and goal_text into memory recall path (#2484, #2483) by @bug-ops in #2520
- feat(tools): structured shell output envelope and per-path read sandbox by @bug-ops in #2528
- feat(mcp): MCP Elicitation support (#2486) by @bug-ops in #2521
- fix(mcp): bound elicitation channel, warn on sensitive fields (#2524, #2523) by @bug-ops in #2530
- feat(tools): document and configure [tools.file] read sandbox by @bug-ops in #2532
- feat(core): reactive hook events for CwdChanged and FileChanged (#2487) by @bug-ops in #2531
- feat(security): MCP/A2A security hardening — tool collision detection, SMCP lifecycle, IBCT tokens by @bug-ops in #2533
- fix(memory): soft-delete orphaned messages with legacy-only tool content by @bug-ops in #2534
- fix(tools): propagate claim_source in gate audit and detect relative paths by @bug-ops in #2539
- fix(classifiers): PII NER allowlist for false positives and metal feature documentation by @bug-ops in #2541
- refactor(zeph-llm): remove dead ModelOrchestrator in favour of RouterProvider by @bug-ops in #2546
- feat(mcp): elicitation during tool execution (phase 2) by @bug-ops in #2545
- fix(mcp): drain elicitation_rx concurrently in run_inline_tool_loop by @bug-ops in #2548
- release: v0.18.2 by @bug-ops in #2547
Full Changelog: v0.18.1...v0.18.2
v0.18.1
What's Changed
- fix(memory,llm): correct BFS ESCAPE clause and persist bandit state (#2393, #2394) by @bug-ops in #2395
- fix(classifiers): use Metal/CUDA device when available in candle classifiers by @bug-ops in #2399
- fix(memory): consolidation prompt isolation, Update in-place semantics, concurrent embeddings by @bug-ops in #2400
- feat(skills): semantic confusability mitigation — category grouping, two-stage matching (#2268) by @bug-ops in #2402
- fix(classifiers,core): sha2 0.11 hex format + catch_unwind for RuntimeLayer hooks by @bug-ops in #2405
- fix(skills): wire two_stage_matching and confusability_threshold at startup; migrate legacy bundled skills by @bug-ops in #2410
- feat(acp): update agent-client-protocol 0.10.2→0.10.3, schema 0.11.2→0.11.3 by @bug-ops in #2423
- feat(acp): implement session/close handler and capability advertisement by @bug-ops in #2429
- fix(memory,core): eliminate Qdrant upsert timing race and add RuntimeLayer tests by @bug-ops in #2430
- fix(acp): populate authMethods, add /agent.json endpoint, eliminate IPI duplication by @bug-ops in #2431
- feat(security): MCP→ACP confused-deputy boundary enforcement and security model audit by @bug-ops in #2436
- chore(deps): update github-actions by @bug-ops in #2439
- fix(security): extend MCP env var blocklist and fix audit logger silent drop by @bug-ops in #2446
- feat(memory): ACON category guidelines, Memex tool archive, RL admission control by @bug-ops in #2440
- fix(security): scrub credential env vars from ShellExecutor subprocess environment by @bug-ops in #2452
- feat(acp): expose current model in SessionInfoUpdate and session/list (#2435) by @bug-ops in #2453
- feat(mcp): implement MCP Roots protocol and cap tool descriptions (#2445, #2450) by @bug-ops in #2454
- feat(tools): adversarial policy agent — pre-execution LLM validation of tool calls by @bug-ops in #2457
- security(mcp): harden validate_roots() and truncate_instructions() by @bug-ops in #2458
- feat(core): /new command — reset conversation preserving memory and MCP connections by @bug-ops in #2464
- feat(memory): Kumiho belief revision and D-MEM RPE routing for graph memory by @bug-ops in #2465
- feat(routing): BaRP cost_weight dial and MAR memory_hit_confidence signal by @bug-ops in #2466
- feat(tools,orchestration): utility-guided tool dispatch and cascade-aware DAG routing by @bug-ops in #2470
- fix(tools): adversarial policy exempt list and /status display by @bug-ops in #2471
- security(mcp): tool poisoning detection and per-tool trust metadata (#2459, #2420) by @bug-ops in #2472
- feat(tools): transactional ShellExecutor with snapshot+rollback (#2414) by @bug-ops in #2473
- feat(tools): add max_snapshot_bytes limit to transactional ShellExecutor by @bug-ops in #2476
- feat(skills): add ARISE trace evolution, STEM pattern-to-skill, and ERL heuristics by @bug-ops in #2482
- fix(tools): prefer memory_search over search_code for user-provided facts by @bug-ops in #2490
- feat(memory): benchmarking harness, cost-sensitive store routing, goal-conditioned write gate by @bug-ops in #2485
- fix(db): force max_connections=1 for in-memory SQLite pools by @bug-ops in #2491
- release: v0.18.1 by @bug-ops in #2494
Full Changelog: v0.18.0...v0.18.1
v0.18.0
What's Changed
- fix(mcp): make OAuth server connections non-blocking at startup by @bug-ops in #2281
- fix(tui): show per-server MCP connection status in TUI by @bug-ops in #2280
- fix(tools): quote cwd path in sandbox_allows_cwd_by_default test by @bug-ops in #2282
- fix(skills): tighten system_prompt_leak pattern to eliminate false positives by @bug-ops in #2283
- fix(memory): compat deserializer and migration for pre-v0.17.1 MessagePart format by @bug-ops in #2287
- feat(classifiers): implement ClassifierMetrics with p50/p95 latency ring buffer by @bug-ops in #2291
- feat(tools): ClaimSource provenance, ErrorDomain recovery, MCP tool pruning by @bug-ops in #2293
- feat(memory): Acon guidelines provider, session digest, crossover context strategy by @bug-ops in #2309
- feat(security): MCP capability attestation, trust calibration, and injection defense by @bug-ops in #2310
- fix(security): sanitizer classifier 401 and regex false positives by @bug-ops in #2314
- fix(mcp): prune_tools max_tools==0 no-cap, description sanitization, always_include semantics by @bug-ops in #2316
- fix(tools): propagate ClaimSource and ErrorDomain to AuditEntry by @bug-ops in #2319
- fix(a2a): drain stale loopback events (#2302), detect stale PID on startup (#2295) by @bug-ops in #2318
- fix(ci): improve cache hit rate with shared-key and job-level sccache env by @bug-ops in #2324
- fix(mcp): centroid drift resistance and trust score decay persistence (#2311, #2312) by @bug-ops in #2325
- fix(memory): eliminate 255 redundant BPE loads in proptest by @bug-ops in #2327
- fix(a2a): drain output_rx until Flush to prevent response shift (#2326, #2313) by @bug-ops in #2328
- fix(mcp): wire DefaultMcpProber and TrustScoreStore into bootstrap, fix stale delta, add ema_floor validation by @bug-ops in #2330
- feat(mcp): per-message caching for prune_tools, integration tests by @bug-ops in #2333
- fix(a2a): add configurable drain timeout to guard against indefinite block by @bug-ops in #2337
- fix(mcp): wire EmbeddingAnomalyGuard into McpManager by @bug-ops in #2336
- feat(security): AEGIS pre-execution firewall, A2A auth identity, dual-threshold classifier by @bug-ops in #2338
- fix(channels): handle /reset as builtin command, fix long_output e2e timeout by @bug-ops in #2344
- feat(mcp): embedding-based semantic tool discovery (#2321) by @bug-ops in #2342
- feat(orchestration): activate VMAO verify-completeness in PlanVerifier by @bug-ops in #2346
- feat(skills): SAGE RL reward signal, trust governance, SkillsBench constraints by @bug-ops in #2348
- fix(telegram): split long streaming responses and reduce edit throttle by @bug-ops in #2349
- fix(tools): write AuditEntry for pre-execution verifier blocks (#2343) by @bug-ops in #2350
- feat(tools): tool invocation phase taxonomy and reasoning model hallucination detection by @bug-ops in #2354
- feat(memory): MemScene consolidation, compress_context tool, A-MAC admission control by @bug-ops in #2355
- feat(memory): All-Mem consolidation, MAGMA edge weights, RuntimeLayer hooks by @bug-ops in #2358
- fix(tools): wire reasoning model detection and compress_provider into agent by @bug-ops in #2367
- fix(classifiers): pass vb.pp("deberta") at DeBERTa model load sites (#2353) by @bug-ops in #2368
- feat(security): IPI defense — DeBERTa soft-signal, three-class AlignSentinel, TurnCausalAnalyzer by @bug-ops in #2369
- feat(db): introduce zeph-db crate with database abstraction layer (Phase 1, SQLite) by @bug-ops in #2371
- feat(db): Phase 2 PostgreSQL backend for zeph-db by @bug-ops in #2372
- ci: run zeph-db postgres integration tests with testcontainers by @bug-ops in #2373
- feat(db): Phase 3 — init wizard, migrate-config, zeph db migrate CLI, CI postgres build by @bug-ops in #2379
- audit(docker): add all missing ZEPH_* env vars to compose files by @bug-ops in #2382
- fix(context): prevent orphaned tool results in MemoryFirst drain by @bug-ops in #2380
- feat(tui): interactive subagent sidebar and transcript viewer (#2376) by @bug-ops in #2381
- test(memory): add rollback and orchestration tests for consolidation by @bug-ops in #2383
- feat(postgres): fix call sites and add tests for postgres build by @bug-ops in #2384
- feat(llm): PILOT LinUCB bandit routing strategy with SLM subsystem audit by @bug-ops in #2390
- feat(db): complete database abstraction layer — eliminate sqlx leaks, fix dynamic queries, security hardening by @bug-ops in #2392
- release: v0.18.0 by @bug-ops in #2391
Full Changelog: v0.17.1...v0.18.0
v0.17.1
What's Changed
- fix(config): add [security.guardrail] stub to default.toml for migrate-config by @bug-ops in #2161
- feat(tui): Phase 1 dynamic metrics — model info, session config, infra status by @bug-ops in #2159
- feat(tui): Phase 2 dynamic metrics — compaction/STT models, inference params, test coverage by @bug-ops in #2162
- fix(memory): WAL checkpoint after FTS5 entity inserts — fix cross-session SYNAPSE seeds=0 by @bug-ops in #2168
- fix(deps): update astral-tokio-tar to 0.6.0 by @bug-ops in #2171
- fix(llm): delegate embed() to tier providers in TriageRouter (#2174) by @bug-ops in #2176
- fix(core,mcp): provider display name and MCP injection false positive by @bug-ops in #2177
- feat(config): unify STT provider under [[llm.providers]] with stt_model field by @bug-ops in #2179
- feat(memory): structured compaction probe categories (#2164) by @bug-ops in #2181
- feat(memory): hybrid SYNAPSE seed selection and A-MEM link weight evolution (#2167, #2163) by @bug-ops in #2182
- feat(orchestration): topology-aware scheduling and GAP parallel annotations by @bug-ops in #2183
- feat(orchestration): add planner_provider field to OrchestrationConfig by @bug-ops in #2184
- fix(llm): add missing MessageMetadata import in candle_provider test module (#2189) by @bug-ops in #2195
- feat(skills): add browser and os-automation bundled skills by @bug-ops in #2196
- fix(core): defer self-reflection to prevent orphaned tool_use blocks by @bug-ops in #2205
- feat(classifiers): Candle-backed injection classifier infrastructure (#2185) by @bug-ops in #2198
- fix(security): add URL grounding gate to prevent fetch hallucination (#2191) by @bug-ops in #2209
- test(classifiers): add unit tests and benchmarks for CandleClassifier (#2190) by @bug-ops in #2212
- feat(mcp): upgrade rmcp 1.2→1.3, add per-server trust level and tool allowlist by @bug-ops in #2213
- feat(tools): add structured tool error taxonomy with retry engine by @bug-ops in #2214
- fix(memory): reject self-loop edges in graph extractor by @bug-ops in #2221
- feat(classifiers): add DetectorMode::Model and CandleNerClassifier (#2210, #2211) by @bug-ops in #2227
- feat(tools): shell exit-code taxonomy and FailureKind integration by @bug-ops in #2226
- feat(orchestration): AdaptOrch topology-routing and Plan-Execute-Verify-Replan (#2219, #2202) by @bug-ops in #2235
- fix(llm): correct triage routing debug dump and remove context bias by @bug-ops in #2244
- fix(tools): repair Phase 2 transient retry and fix retryable feedback (#2223, #2222) by @bug-ops in #2245
- feat(classifiers): Phase 2 — PII detection and LlmClassifier for feedback (#2200) by @bug-ops in #2251
- fix(skills): decouple embedding provider from conversational provider (#2225) by @bug-ops in #2255
- fix(memory): flush orphaned tool_use DB rows after deferred summarization by @bug-ops in #2256
- test(orchestration): add DagScheduler tests for inject_tasks caps and LevelBarrier dispatch by @bug-ops in #2260
- fix(orchestration): harden PlanVerifier against misconfiguration and injection (#2238, #2239, #2240) by @bug-ops in #2264
- fix(classifiers): correct [CLS]/[SEP] framing for all NER chunks and wire regex+NER union merge by @bug-ops in #2258
- fix(skills): include managed_dir in build_registry and wire FaultCategory enum path by @bug-ops in #2265
- fix(orchestration): graceful drain on channel close, max_parallel drift, toposort 3-4x by @bug-ops in #2263
- fix(memory): use MessagePart::Summary for summary serialization (#2257) by @bug-ops in #2271
- fix(skills): suppress false-positive injection WARN for bundled skills by @bug-ops in #2273
- release: v0.17.1 by @bug-ops in #2275
Full Changelog: v0.17.0...v0.17.1
v0.17.0
What's Changed
- fix(skills): convert unsupported >- block scalar modifier to > in all skill files by @bug-ops in #2088
- feat(skills): auto-provision bundled skills to managed dir on startup by @bug-ops in #2090
- feat(router): RAPS Bayesian reputation scoring (#1886) by @bug-ops in #2091
- feat(memory): AOI three-layer hierarchical memory architecture by @bug-ops in #2092
- test(config): add similarity_threshold upper-bound validation test in PlanCacheConfig by @bug-ops in #2096
- test(memory): add unit tests for SqliteStore tier DB methods by @bug-ops in #2097
- docs: remove dead feature gate references by @bug-ops in #2103
- fix(memory): use source conversation_id in AOI tier promotion by @bug-ops in #2105
- chore(testing): add canonical config/testing.toml with provider=router for RAPS coverage by @bug-ops in #2107
- feat(config): promote scheduler and guardrail features to default by @bug-ops in #2106
- chore(llm): remove redundant schema feature gate from zeph-llm by @bug-ops in #2108
- feat(config): enable 8 validated settings by default (#2101) by @bug-ops in #2109
- test(cost): add unit test for max_daily_cents=0 unlimited budget by @bug-ops in #2111
- fix(tui): remove duplicate ToolStart/ToolOutput events in TUI bridge (#2116) by @bug-ops in #2118
- fix(tools): expand ~ in allowed_paths before canonicalization by @bug-ops in #2119
- fix(sidequest): handle ToolResult in rebuild_cursors and apply_eviction by @bug-ops in #2120
- fix(policy): propagate skill trust level to PolicyContext in PolicyGateExecutor by @bug-ops in #2123
- feat(experiments): wire eval_model config field to evaluator construction by @bug-ops in #2124
- test(tools): add FileExecutor allowed_paths integration tests (#2117) by @bug-ops in #2127
- test(channels): add injectable test transport to TelegramChannel by @bug-ops in #2128
- fix(tui): replace streaming chunk append with canonical body_display on ToolOutput (#2126) by @bug-ops in #2129
- fix(tools): normalize .. in resolve_via_ancestors to prevent sandbox bypass by @bug-ops in #2130
- test(channels): add Telethon-based E2E test suite for Telegram channel (#2122) by @bug-ops in #2131
- fix(config): vault token resolution must not auto-create channel configs by @bug-ops in #2133
- feat(security): response verification layer for post-LLM injection detection (#1862) by @bug-ops in #2149
- feat(config): unified [[llm.providers]] schema (#2134) by @bug-ops in #2148
- feat(core): add /provider command for runtime provider switching by @bug-ops in #2150
- feat(llm): complexity-based triage routing for multi-provider pool by @bug-ops in #2153
- release: v0.17.0 by @bug-ops in #2154
- chore(deps): update github-actions by @bug-ops in #2155
- fix(core): use effective_model() fallback in /provider switch by @bug-ops in #2156
- test(core): add unit tests for /provider command handlers by @bug-ops in #2157
Full Changelog: v0.16.1...v0.17.0
v0.16.1
What's Changed
- refactor(epic-1974): improve type safety - CompactionState, BoxFuture, schema helper by @bug-ops in #2014
- refactor(epic-1975): consolidate code duplication across LLM providers and utilities by @bug-ops in #2015
- refactor: remove dead code (epic #1976) by @bug-ops in #2016
- refactor(epic-1977): tighten abstraction boundaries — agent accessors, OpenAI fix, builder warnings by @bug-ops in #2017
- fix(channels): ensure feature parity across all 7 channels (#1978) by @bug-ops in #2018
- ci(nextest): partition unit tests into 4 parallel shards by @bug-ops in #2019
- feat(tools): dynamic tool schema filtering to reduce context waste and improve selection accuracy (#2020) by @bug-ops in #2026
- feat(tools): tool result cache — avoid redundant executions (#1822) by @bug-ops in #2027
- feat(memory): structured anchored summarization for context compression (#1607) by @bug-ops in #2037
- feat(memory): structured anchored summarization for context compression (#1607) by @bug-ops in #2039
- feat(memory): semantic response caching with embedding similarity by @bug-ops in #2029
- feat(tools): Think-Augmented Function Calling for improved parameter accuracy (TAFC, #1861) by @bug-ops in #2038
- refactor(memory): wrap cleanup() in atomic transaction by @bug-ops in #2041
- perf(memory): add expires_at to semantic cache index composite (#2030) by @bug-ops in #2042
- refactor(config): add validation for semantic_cache_threshold by @bug-ops in #2043
- fix(ml): rubato 1.0.1 API upgrade and StreamChunk wrapping (#1858) by @bug-ops in #2044
- test: add corrupted BLOB deserialization test (#2033) by @bug-ops in #2045
- enh(tools): /status reports tool_filter state when enabled (#2028) by @bug-ops in #2051
- feat(memory): compaction probe validation for post-compression context integrity (#1609) by @bug-ops in #2047
- test: add dimension mismatch handling tests for semantic cache by @bug-ops in #2046
- test(memory): add Ollama integration stubs for semantic cache (#2035) by @bug-ops in #2052
- fix(sanitizer): suppress false positives for memory retrieval (Issue #2025) by @bug-ops in #2053
- feat(init): add --init wizard step for compaction probe config (#2048) by @bug-ops in #2054
- feat(tui): add compaction probe metrics to TUI dashboard (#2049) by @bug-ops in #2055
- docs(tools): enable tool_schema_filter testing coverage for #2020 (issue #2040) by @bug-ops in #2056
- Update aws-lc-sys to resolve RUSTSEC-2026-0048 by @bug-ops in #2063
- feat(tools): tool dependency graph for sequential tool availability by @bug-ops in #2059
- feat(memory): write-time importance scoring for improved retrieval by @bug-ops in #2062
- feat(core): add multi-language FeedbackDetector support (#1424) by @bug-ops in #2060
- feat(context): HiAgent subgoal-aware context compaction for long-horizon tasks (#2022) by @bug-ops in #2061
- fix(core): distinguish probe rejection from success in /compact handler (#2058) by @bug-ops in #2064
- fix(sanitizer): classify memory_search tool output as MemoryRetrieval (#2057) by @bug-ops in #2065
- fix(memory): task-aware context pruning critical fixes (#1851) by @bug-ops in #2066
- fix(tests): gate subgoal_extraction_tests on context-compression feature (#2067) by @bug-ops in #2069
- feat(orchestration): plan template caching for LLM planner cost reduction (#1856) by @bug-ops in #2068
- docs: document semantic_cache_max_candidates recall tradeoff by @bug-ops in #2071
- docs: add compaction probe explanation to context-management guide (#2050) by @bug-ops in #2072
- fix(orchestration): wire plan_with_cache into handle_plan_goal (#2070) by @bug-ops in #2074
- fix(scheduler): use explicit execution prefix for scheduled task injection (#2073) by @bug-ops in #2075
- feat(orchestration): MAST-informed handoff hardening — Phase 1 (issue #2023) by @bug-ops in #2076
- feat(memory): MAGMA multi-graph memory with typed edges (issue #1821) by @bug-ops in #2077
- feat(orchestration): implement Phase 2 handoff validation layer (issue #2023) by @bug-ops in #2078
- feat(memory): implement SYNAPSE spreading activation retrieval over entity graph (#1888) by @bug-ops in #2080
- revert(orchestration): remove HandoffContext and validation layer (#2076, #2078) by @bug-ops in #2082
- fix(memory): align MAGMA entity extraction prompt with EntityType enum by @bug-ops in #2083
- docs: comprehensive documentation update for post-v0.16.0 features by @bug-ops in #2085
- release: v0.16.1 by @bug-ops in #2086
Full Changelog: v0.16.0...v0.16.1