Releases: bug-ops/zeph
Releases · bug-ops/zeph
v0.15.3
What's Changed
- sec: CodeQL cleartext-logging suppressions and Actions SHA pinning by @bug-ops in #1908
- fix(core): wire Focus Agent and SideQuest config from TOML to agent builder by @bug-ops in #1914
- fix(memory): sync session summaries to Qdrant on compact_context happy path by @bug-ops in #1915
- fix(core): wire corrections write path regardless of LearningConfig::enabled by @bug-ops in #1918
- sec: pin all third-party GitHub Actions to SHA by @bug-ops in #1919
- fix(memory): filter structural noise from graph entity extraction by @bug-ops in #1920
- fix(llm): list_models_remote constructs correct models URL by @bug-ops in #1921
- fix(context-compression): make extract_task_goal fire-and-forget (#1909) by @bug-ops in #1922
- obs(orchestration): track planner/aggregator LLM calls in session metrics (#1899) by @bug-ops in #1925
- fix(tui): clear graph spinner after spawn_graph_extraction by @bug-ops in #1926
- feat(context-compression): add CLI flags, init wizard, debug dumps, TUI spinners (#1904) by @bug-ops in #1928
- enhancement(core): implement functional LearningEngine (#1913) by @bug-ops in #1929
- feat(index): show indexing progress during background code indexing by @bug-ops in #1927
- fix(memory): deduplicate session summaries in Qdrant (#1917) by @bug-ops in #1933
- fix(tui): update graph metrics every turn, not only on extraction by @bug-ops in #1934
- fix(tui): implement send_tool_start in TuiChannel (#1931) by @bug-ops in #1935
- test(memory): add integration tests for store_session_summary → Qdrant upsert roundtrip by @bug-ops in #1936
- feat(mcp): OAuth 2.1 and static Bearer header auth for remote MCP servers by @bug-ops in #1937
- fix(vault): replace blocking_read with block_in_place in ArcAgeVaultProvider by @bug-ops in #1940
- fix(orchestrator): add circuit breaker and chat_with_tools fallback chain by @bug-ops in #1942
- fix(tui): graph metrics panel always showing zero (#1938) by @bug-ops in #1943
- fix(tui): filter metrics always zero in native tool execution path (#1939) by @bug-ops in #1946
- fix(config): add XDG fallback to resolve_config_path for ACP IDE launch context by @bug-ops in #1947
- chore: restructure repo layout — book, scripts, specs by @bug-ops in #1948
- release: v0.15.3 by @bug-ops in #1949
Full Changelog: v0.15.2...v0.15.3
v0.15.2
What's Changed
- fix(debug): trace mode creates empty session dirs and overwrites trace.json (#1814) by @bug-ops in #1819
- fix(memory): recreate Qdrant collections on vector dimension mismatch by @bug-ops in #1820
- fix(memory): pass embedding store to EntityResolver in extract_and_store by @bug-ops in #1827
- fix(core): restore JIT tool reference injection after overflow SQLite migration by @bug-ops in #1826
- test(memory): add missing sanitize_guidelines tests for special-token and role-prefix patterns by @bug-ops in #1830
- refactor(acp): centralize ACP session config wiring by @bug-ops in #1834
- feat(memory,core): session summary on shutdown (#1816) by @bug-ops in #1833
- fix(memory): pass provider to EntityResolver in extract_and_store by @bug-ops in #1836
- feat(memory): add conversation_id to compression_guidelines for per-conversation scoping by @bug-ops in #1835
- fix(llm): strip URL path in parse_host_port for Ollama base_url with /v1 suffix by @bug-ops in #1837
- fix(security): redact secrets and paths in compression_failure_pairs before storage by @bug-ops in #1838
- observability(router): add tracing instrumentation to cascade router by @bug-ops in #1843
- feat(memory): add --compression-guidelines CLI flag by @bug-ops in #1844
- feat(tui): add compression guidelines status line and /guidelines command by @bug-ops in #1848
- deps: upgrade rmcp 0.17 → 1.2 by @bug-ops in #1849
- feat(context): fix soft compaction tier rarely firing (#1828) by @bug-ops in #1857
- refactor(features): replace flat feature list with use-case bundles by @bug-ops in #1859
- fix(security): extend compression_failure_pairs redaction to JWT Bearer tokens by @bug-ops in #1860
- feat(security): declarative policy compiler for tool call authorization by @bug-ops in #1870
- feat(security): LLM-based guardrail pre-screener for prompt injection (#1651) by @bug-ops in #1875
- feat(tools): pre-execution action verification plugin hook in tool pipeline (#1630) by @bug-ops in #1881
- feat(skills): malicious skill trust tier enforcement (#1853) by @bug-ops in #1878
- fix(core): fix overflow prefix validation error in read_overflow tool by @bug-ops in #1882
- fix(policy): remove dead PolicyEffect::AllowIf variant by @bug-ops in #1883
- fix(policy): remove env leak and add --trust-level to /policy check by @bug-ops in #1884
- fix(memory): attempt plain-text fallback when session summary times out (#1869) by @bug-ops in #1887
- fix(policy): accept "shell"/"sh" as aliases for "bash" tool_id in policy rules by @bug-ops in #1891
- fix(security): block MCP tools for quarantined skills (#1876) by @bug-ops in #1892
- sec(policy): add symlink boundary check to load_policy_file() by @bug-ops in #1893
- fix(orchestration): mark non-terminal tasks Canceled on scheduler deadlock (#1879) by @bug-ops in #1894
- test(policy): additional coverage for policy_file loading, MAX_RULES boundary, and confirmed allow path by @bug-ops in #1896
- feat(tools): add --init wizard step for pre-execution verifier config (#1880) by @bug-ops in #1897
- test: audit cleanup — remove duplicates, useless tests, add critical coverage by @bug-ops in #1895
- fix(policy): report correct rule count in /policy status when using policy_file by @bug-ops in #1901
- feat(core): context compression — Focus Agent, SWE-Pruner/COMI, SideQuest (#1850, #1851, #1885) by @bug-ops in #1900
- release: v0.15.2 by @bug-ops in #1902
Full Changelog: v0.15.1...v0.15.2
v0.15.1
What's Changed
- fix(tui): skip ACP stdio autostart and suppress MCP child stderr in TUI mode by @bug-ops in #1730
- refactor(zeph-core): decompose Agent struct and remove anyhow (#1731, #1732) by @bug-ops in #1743
- security(mcp): sanitize MCP tool definitions at registration to prevent tool-poisoning injection by @bug-ops in #1745
- test(llm): add build_request integration test for extended context enabled path by @bug-ops in #1749
- feat(llm): add --extended-context CLI flag for Claude 1M context window by @bug-ops in #1748
- refactor(zeph-core): remove anyhow, replace with typed thiserror errors by @bug-ops in #1750
- feat(llm): implement ClassifierMode::Judge for cascade routing by @bug-ops in #1751
- feat(tui): show extended context mode indicator in status bar by @bug-ops in #1752
- feat(llm): add best-seen response tracking to cascade_chat_stream by @bug-ops in #1753
- refactor: split config/types.rs and semantic.rs into domain modules by @bug-ops in #1756
- refactor(core,tools): box large LoopbackEvent variants and remove async-trait from zeph-tools by @bug-ops in #1757
- fix(llm): skip empty string responses in cascade best-seen tracking by @bug-ops in #1758
- fix(llm): return best_seen when escalations_remaining==0 and should_escalate by @bug-ops in #1759
- test(llm): add missing compaction unit tests by @bug-ops in #1760
- refactor(mcp,core): extract shared injection-detection patterns to avoid drift by @bug-ops in #1761
- security(mcp): implement tools/list_changed refresh path with sanitization by @bug-ops in #1762
- feat(init): add hard_compaction_threshold prompt to --init wizard (#1719) by @bug-ops in #1763
- feat(cost): add gpt-5 and gpt-5-mini to default pricing table by @bug-ops in #1765
- perf(llm): use Arc<[AnyProvider]> in RouterProvider, add cost_tiers config by @bug-ops in #1764
- perf(tools): cache extracted string values in ToolCallDag to avoid double scan by @bug-ops in #1766
- feat(gemini): Phase 4 — SSE streaming tool use (functionCall chunks) by @bug-ops in #1767
- test(core): add COV-04 unit test for channel-close in run_scheduler_loop by @bug-ops in #1768
- feat(core): JIT tool reference injection after pruning (#1740) by @bug-ops in #1771
- feat(memory): temporal versioning on graph memory edges by @bug-ops in #1775
- refactor(core): reduce clippy::too_many_lines suppressions (50 → 11) by @bug-ops in #1779
- fix(memory): add edge_history_limit config field to prevent unbounded results by @bug-ops in #1780
- feat(core): migrate tool overflow storage from disk to SQLite by @bug-ops in #1782
- feat(memory): validate temporal_decay_rate on deserialization by @bug-ops in #1783
- test(memory): add direct unit tests for edges_at_timestamp, edge_history, bfs_at_timestamp by @bug-ops in #1784
- docs: update README and mdBook for post-M33 changes by @bug-ops in #1785
- feat(memory): track trajectory elongation from hard compaction (#1739) by @bug-ops in #1787
- feat(memory): add /graph history command for temporal edge queries by @bug-ops in #1786
- feat(memory): A-MEM dynamic note linking at write time (#1694) by @bug-ops in #1788
- feat(memory): adaptive retrieval dispatch by query type (#1629) by @bug-ops in #1789
- fix(memory): fix inflated edges_created, batch embed/search, add missing tests by @bug-ops in #1795
- feat(security): OWASP AI Agent Security 2026 gap analysis (#1650) by @bug-ops in #1796
- feat(debug): structure debug dumps as OpenTelemetry-compatible traces by @bug-ops in #1797
- feat(memory): failure-driven context compression guidelines (ACON, #1647) by @bug-ops in #1808
- fix(debug): record native tool span startTimeUnixNano before execution by @bug-ops in #1809
- fix(memory): make save_compression_guidelines version bump atomic by @bug-ops in #1810
- release: v0.15.1 by @bug-ops in #1811
Full Changelog: v0.15.0...v0.15.1
v0.15.0
What's Changed
- refactor(core): architecture improvements for maintainability and testability by @bug-ops in #1526
- refactor: Phase 2 architecture improvements — deduplication and file splits by @bug-ops in #1527
- feat(config): add migrate-config command by @bug-ops in #1528
- fix(tools): enforce shell blocklist before permission policy check by @bug-ops in #1529
- fix(lsp): use file_path parameter for mcpls 0.3.4 compatibility by @bug-ops in #1537
- fix(init): generate mcpls.toml config instead of unsupported --workspace-root flag by @bug-ops in #1540
- fix(acp): use file_path parameter for mcpls tool calls by @bug-ops in #1539
- fix(lsp): fix hover-on-read hook — strip cat-n prefix and correct MCP param by @bug-ops in #1541
- chore(deps): document upstream blocker for RUSTSEC-2025-0134 by @bug-ops in #1542
- chore(deps): bump quinn-proto from 0.11.13 to 0.11.14 in the cargo group across 1 directory by @dependabot[bot] in #1543
- fix(tools): SEC-001..004 tool execution hardening by @bug-ops in #1546
- fix(tools): skip permission policy for MCP/LSP tools in Supervised mode by @bug-ops in #1547
- feat(memory): share single QdrantOps instance across all subsystems by @bug-ops in #1549
- fix(tools): handle ConfirmationRequired in native tool path and fix MCP tools in Supervised mode by @bug-ops in #1548
- perf(tools): restore parallel native tool execution with selective retry by @bug-ops in #1550
- feat(index): hybrid tree-sitter + LSP code understanding (#1551) by @bug-ops in #1555
- fix(zeph-llm): use max_completion_tokens for GPT-5 OpenAI requests by @bug-ops in #1559
- feat(debug-dump): include request metadata in debug dumps (#1485) by @bug-ops in #1560
- fix(openai): handle null assistant content in tool calls by @bug-ops in #1562
- Fix issue 1563 by @bug-ops in #1564
- Preserve requested working directory when starting ACP sessions by @bug-ops in #1567
- Cap Claude cache-control blocks to four by @bug-ops in #1568
- Resolve issue 1569 in Zeph by @bug-ops in #1571
- Fix issue 1570 by @bug-ops in #1572
- fix(acp): log startup runtime paths by @bug-ops in #1580
- Normalize legacy runtime defaults by @bug-ops in #1582
- Track shared ACP models and preserve session defaults by @bug-ops in #1583
- Fix regression reported in issue 1579 by @bug-ops in #1584
- Add ACP readiness probes and notifications by @bug-ops in #1585
- Track MCP server connectivity for MCP LSP provider by @bug-ops in #1586
- Refactor Zeph ACP agent for Send+Sync LSP runtime by @bug-ops in #1587
- Add debug tracing to LSP diagnostics and hover hooks by @bug-ops in #1588
- #1557 by @bug-ops in #1589
- Enable ACP auto-start when configured by @bug-ops in #1590
- Fix issue 1556 agent configuration across toolchain by @bug-ops in #1591
- fix(scheduler): initialize scheduler in ACP mode by @bug-ops in #1602
- fix(search_code): use relative paths to prevent path redaction in CLI display by @bug-ops in #1604
- feat(gemini): Gemini provider Phase 1 — basic generateContent chat by @bug-ops in #1605
- feat(orchestration): typed ConcurrencyLimit error, edge-case tests, cancel token by @bug-ops in #1606
- fix(lsp-hooks): add McpCaller trait and regression tests for parameter names (#1538) by @bug-ops in #1615
- feat(orchestration): allow /plan cancel delivery during run_scheduler_loop by @bug-ops in #1616
- feat(gemini): Phase 2 -- SSE streaming support by @bug-ops in #1617
- fix(orchestration): exponential backoff in DagScheduler when concurrency limit hit by @bug-ops in #1620
- perf(memory): stream edge list in chunks during community detection by @bug-ops in #1621
- refactor(orchestrator): downgrade noisy fallback log to debug by @bug-ops in #1622
- test(tools): add execute_confirmed + blocklist regression test by @bug-ops in #1623
- docs: update for changes since v0.14.3 by @bug-ops in #1631
- fix(orchestration): prevent DagScheduler deadlock on concurrency exhaustion (#1619) by @bug-ops in #1624
- feat(scheduler): accept standard 5-field cron expressions by @bug-ops in #1632
- feat(gemini): Phase 3 -- tool use / function calling by @bug-ops in #1635
- fix(acp): apply graph memory config to ACP sessions by @bug-ops in #1645
- feat(memory): add debug logging to SemanticMemory search pipeline by @bug-ops in #1644
- feat(scheduler): add list_tasks tool and /scheduler list slash command by @bug-ops in #1648
- feat(gemini): Phase 4 -- vision / multimodal (inlineData) by @bug-ops in #1655
- fix(acp): apply document RAG and graph memory config to ACP sessions by @bug-ops in #1653
- feat(router): add debug logging for provider selection decisions by @bug-ops in #1657
- feat(gemini): document SSE functionCall gap with TODO for Phase 4 by @bug-ops in #1660
- feat(gemini): document parse_tool_response single-candidate limitation by @bug-ops in #1662
- feat(llm): update Opus 4.6 thinking to use effort parameter GA by @bug-ops in #1663
- feat(gemini): Phase 5 -- embeddings (embedContent) by @bug-ops in #1664
- fix(gemini): depth counter in inline_refs_inner only decrements on $ref resolution by @bug-ops in #1665
- fix(acp): wire anomaly detector and orchestration config into ACP sessions by @bug-ops in #1667
- fix(llm): normalize JSON schema for OpenAI strict mode in chat_typed (#1656) by @bug-ops in #1670
- chore(llm): replace retired Claude 3 model IDs and add deprecation warning by @bug-ops in #1671
- fix(acp): forward /scheduler, /graph, /plan slash commands to agent loop by @bug-ops in #1675
- feat(gemini): omit parameters field for no-parameter tools by @bug-ops in #1674
- fix(memory): prioritize word count over snake_case in HeuristicRouter by @bug-ops in #1676
- fix(memory): wire semantic ranking options from config into SemanticMemory by @bug-ops in #1678
- fix(acp): invert slash command routing to allowlist approach by @bug-ops in #1679
- fix(tools): record anomaly outcomes in native tool_use path by @bug-ops in #1681
- fix(llm): omit parameters field for no-param tools in OpenAI strict mode by @bug-ops in #1682
- feat(llm): support Claude 1M token context window beta header by @bug-ops in #1684
- feat(gemini): Phase 6 - list models + remote discovery by @bug-ops in #1688
- fix(acp): emit flush after non-LLM slash commands to unblock session/prompt by @bug-ops in #1689
- feat(scheduler): cancel sub-agents on channel close and shutdown signal by @bug-ops in #1692
- feat(orchestration): count tasks completed before cancellation in metrics by @bug-ops in #1690
- test(agent): add COV-03 scheduler-loop integration test for non-cancel message queuing by @bug-ops in #1699
- test(gemini): add missing uppercase_types tests for number/boolean/array/null by @bug-ops in #1700
- feat(llm): Claude server-side compaction API (compact-2026-01-12 beta) by @bug-ops in #1696
- fix(llm): graceful degradation when compact-2026-01-12 beta header is rejected by @bug-ops in #1701
- test(gemini): add missing schema conversion edge case tests by @bug-ops in #1702
- deps: update clap 4.5→4.6, tempfile 3.26→3.27, tracing-subscriber 0.3.22→0.3.23 by @bug-ops in #1704
- fix(skil...
v0.14.3
What's Changed
- fix(llm): store token usage in chat_typed for eval_budget_tokens enforcement by @bug-ops in #1450
- fix(channels): make CliChannel::recv() cancel-safe via background stdin reader by @bug-ops in #1452
- feat(orchestration): wire DagScheduler into /plan confirm flow by @bug-ops in #1458
- fix(subagent): only block fenced-block calls with matching tool tags by @bug-ops in #1464
- fix(bootstrap): wire graph_config into agent construction by @bug-ops in #1465
- fix(skills): record tool call outcomes in native tool path by @bug-ops in #1462
- fix(memory): repair cross-session history restore producing orphaned tool_use blocks (#1383) by @bug-ops in #1466
- fix(mcp): allow localhost connections for statically configured HTTP servers by @bug-ops in #1469
- fix(a2a): add protocolVersion field to agent card by @bug-ops in #1470
- fix(anomaly): classify [stderr] output as AnomalyOutcome::Error by @bug-ops in #1474
- fix(orchestration): drain secret requests after tick loop exits on instant completion by @bug-ops in #1475
- fix(metrics): use API-reported output_tokens instead of byte-length estimate by @bug-ops in #1478
- fix(core): deduplicate denied secret prompts in orchestration loop by @bug-ops in #1476
- fix(skills): record usage only for embedding-matched skills by @bug-ops in #1479
- fix(security): truncate SecretRequest.reason in confirmation prompt by @bug-ops in #1482
- fix(tools): add word-boundary check in extract_fenced_blocks by @bug-ops in #1486
- fix(orchestration): use main agent inline when no sub-agents configured (#1463) by @bug-ops in #1489
- fix(feedback): classify /feedback sentiment for correct outcome type by @bug-ops in #1487
- fix(subagent): pass tool definitions to LLM API in sub-agent loop by @bug-ops in #1492
- fix(memory): deduplicate active graph edges on re-extraction by @bug-ops in #1495
- fix(graph): prioritize exact name match in /graph facts query by @bug-ops in #1493
- fix(llm): delegate context_window() in SubProvider (#1473) by @bug-ops in #1498
- fix(security): truncate secret_key in confirmation prompt by @bug-ops in #1499
- fix(orchestrator): delegate last_usage() and last_cache_usage() to last-used provider by @bug-ops in #1500
- fix(shell): detect blocked commands in backtick and process substitution by @bug-ops in #1502
- fix(tools): wire AuditLogger to WebScrapeExecutor for fetch/scrape audit trail by @bug-ops in #1504
- fix(security): wire sanitize_tool_output() into native tool_use path by @bug-ops in #1505
- fix(security): guard_memory_writes now fires for text-only injections (#1490, #1491) by @bug-ops in #1506
- fix(feedback): store feedback text in outcome_detail instead of error_context by @bug-ops in #1507
- fix(llm): delegate missing LlmProvider methods in SubProvider by @bug-ops in #1508
- fix(orchestration): include tool definitions in inline task execution by @bug-ops in #1509
- fix(orchestrator): record last_used_provider in chat_with_tools and named variants by @bug-ops in #1510
- fix(tracing): write to stderr explicitly to prevent ACP stdio log pollution by @bug-ops in #1511
- fix(orchestration): defer task to Ready on concurrency-limit spawn failure by @bug-ops in #1514
- fix(core): push ToolResult before self-reflection early return (#1512) by @bug-ops in #1518
- fix(core): prevent orphaned ToolUse when attempt_self_reflection returns Err by @bug-ops in #1520
- fix(orchestration): add backoff in DagScheduler when all tasks deferred (#1519) by @bug-ops in #1522
- release: v0.14.3 by @bug-ops in #1524
Full Changelog: v0.14.2...v0.14.3
v0.14.2
What's Changed
- feat(core): deferred tool pair summarization for cache efficiency by @bug-ops in #1303
- feat(lsp): Phase 1 LSP integration via mcpls by @bug-ops in #1304
- fix(acp): make find_path 'path' parameter required in JSON schema by @bug-ops in #1305
- fix(core): apply deferred summaries when count reaches cutoff by @bug-ops in #1306
- feat(core): extend summary provider to support all LLM backends by @bug-ops in #1307
- fix(core): apply deferred summaries within tool loop by @bug-ops in #1308
- release: v0.14.1 by @bug-ops in #1309
- fix(mcp): allow full paths and glob patterns in allowed_commands by @bug-ops in #1310
- fix(mcp): sanitize tool names for Claude API compatibility by @bug-ops in #1311
- feat(experiments): core types, SQLite storage and feature flag by @bug-ops in #1319
- feat(core): add LSP context injection via MCP hooks by @bug-ops in #1320
- feat(core): add benchmark dataset and LLM-as-judge evaluator by @bug-ops in #1321
- feat(acp): add LSP extension for IDE code intelligence by @bug-ops in #1328
- feat(experiments): add parameter variation engine (#1315) by @bug-ops in #1334
- feat(experiments): add experiment loop engine (#1316) by @bug-ops in #1344
- refactor: remove legacy feature flags (daemon, mock, orchestration, graph-memory) by @bug-ops in #1346
- feat(acp): close protocol compliance gaps and upgrade SDK to v0.10.0 by @bug-ops in #1347
- feat(experiments): add scheduler integration (#1317) by @bug-ops in #1349
- fix(core): lazy router chain init and optional compatible API keys (#1345) by @bug-ops in #1350
- feat(experiments): add CLI, TUI commands, config, and init wizard (#1318) by @bug-ops in #1351
- refactor: consolidate project-level artifacts under .zeph/ (#1353) by @bug-ops in #1354
- fix(memory): correction embedding FK constraint failure on clean DB by @bug-ops in #1357
- fix(tools): complete overflow integration with full path and aligned thresholds by @bug-ops in #1358
- fix(llm): use correct API type for Claude adaptive thinking mode by @bug-ops in #1359
- fix(core): sanitize orphaned tool_use/tool_result on history restore (#1360) by @bug-ops in #1362
- fix(channels): handle piped stdin without crashing on non-TTY by @bug-ops in #1363
- fix(self-learning): prevent correction detector from penalizing skills on user self-corrections by @bug-ops in #1364
- fix(memory): harden scrub_content to strip Unicode bidi overrides and zero-width chars by @bug-ops in #1365
- fix(core): remove dead streaming guard from response cache lookup by @bug-ops in #1367
- feat(core): add configurable log file with .zeph/logs/ default by @bug-ops in #1370
- feat(acp): multi-session isolation with per-session ConversationId by @bug-ops in #1369
- fix(memory): truncate community summary prompt to prevent oversized LLM requests by @bug-ops in #1373
- fix(memory): compute response cache key from last user message only by @bug-ops in #1375
- fix(core): apply compression and routing config on startup by @bug-ops in #1376
- feat(core): validate deferred_apply_threshold < compaction_threshold by @bug-ops in #1381
- perf(memory): add partial index on graph_edges(expired_at) for eviction queries by @bug-ops in #1382
- fix(core): add response cache to native tool_use path by @bug-ops in #1384
- fix(skills): handle YAML multiline block scalars in SKILL.md parser by @bug-ops in #1386
- feat(core): add /help, /exit, /status slash commands with discoverability by @bug-ops in #1389
- fix(cli): allow --log-file bare flag to disable file logging by @bug-ops in #1392
- fix(core,llm,memory): prevent orphaned tool_use blocks in cross-session restore by @bug-ops in #1393
- perf(memory): parallelize community summarization and add incremental detection by @bug-ops in #1404
- fix(cost): add missing Claude model pricing and warn on unknown model by @bug-ops in #1398
- fix(channels,core): fix /image command crash and silent ignore by @bug-ops in #1409
- feat(tools): tool error classification, retry logic, and contract descriptions by @bug-ops in #1406
- fix(core): add FeedbackDetector pattern for "That's wrong" rejection by @bug-ops in #1411
- fix(memory): start eviction loop during agent bootstrap by @bug-ops in #1416
- fix(subagent): create transcript directory on first sweep by @bug-ops in #1419
- fix(subagent): inherit default provider when model omitted, fixes NoRoute error by @bug-ops in #1421
- fix(experiments): apply generation overrides to subject provider before evaluation by @bug-ops in #1427
- fix(experiments): cap default temperature range at 1.0 and fix FP precision by @bug-ops in #1428
- fix(bootstrap): wire GraphStore in production memory bootstrap by @bug-ops in #1430
- fix(skills): wire skill trust system end-to-end (#1405) by @bug-ops in #1431
- fix(a2a): correct agent card discovery endpoint path per spec (#1412) by @bug-ops in #1433
- fix(daemon): sentinel task awaits shutdown signal by @bug-ops in #1435
- ci: restrict main matrix to Linux, add on-demand non-Linux workflow by @bug-ops in #1439
- fix(daemon): register SIGTERM handler to ensure PID file cleanup by @bug-ops in #1438
- fix(status): wire MetricsCollector in CLI mode, /status now shows real metrics by @bug-ops in #1440
- fix(agent): handle bare /skill, /feedback, /image without arguments by @bug-ops in #1443
- release: v0.14.2 by @bug-ops in #1444
- fix(core): validate model name in /model command against provider list by @bug-ops in #1445
- fix(tools): return Err(ToolError::Timeout) from ShellExecutor on timeout by @bug-ops in #1446
- fix(experiments): show last session in /experiment status by @bug-ops in #1448
- release: v0.14.2 by @bug-ops in #1451
Full Changelog: v0.14.0...v0.14.2
v0.14.1
What's Changed
- feat(core): deferred tool pair summarization for cache efficiency by @bug-ops in #1303
- feat(lsp): Phase 1 LSP integration via mcpls by @bug-ops in #1304
- fix(acp): make find_path 'path' parameter required in JSON schema by @bug-ops in #1305
- fix(core): apply deferred summaries when count reaches cutoff by @bug-ops in #1306
- feat(core): extend summary provider to support all LLM backends by @bug-ops in #1307
- fix(core): apply deferred summaries within tool loop by @bug-ops in #1308
Full Changelog: v0.14.0...v0.14.1
v0.14.0
What's Changed
- feat(security): untrusted content isolation — ContentSanitizer pipeline (Phase 1, #1195) by @bug-ops in #1221
- feat(security): source-specific sanitization boundaries (Phase 2, #1195) by @bug-ops in #1234
- feat(security): quarantined summarizer for high-risk content (Phase 3, #1195) by @bug-ops in #1243
- refactor(memory): Arc-wrap EmbeddingStore and FuturesUnordered context preparation (#1223) by @bug-ops in #1244
- feat(memory): graph memory schema, core types, and CRUD operations (#1224) by @bug-ops in #1245
- feat(security): exfiltration guards (Phase 4, #1195) by @bug-ops in #1246
- feat(memory): LLM-powered entity and relation extraction pipeline (#1225) by @bug-ops in #1247
- feat(security): TUI security indicators, event log, and metrics display (Phase 5, #1195) by @bug-ops in #1248
- feat(orchestration): TaskGraph core types, DAG operations, persistence (Phase 1, #1235) by @bug-ops in #1249
- feat(orchestration): LLM-based task planner (Phase 2, #1237) by @bug-ops in #1251
- feat(memory): graph-aware retrieval with BFS traversal and RRF fusion (#1226) by @bug-ops in #1250
- feat(orchestration): DAG Scheduler, AgentRouter, SubAgentManager integration (Phase 3, #1235) by @bug-ops in #1252
- feat(orchestration): CLI commands and agent loop integration (Phase 4, #1239) by @bug-ops in #1253
- feat(memory): background graph extraction and agent loop integration (Phase 4, #1227) by @bug-ops in #1255
- feat(memory): FTS5 index for graph entities (#1232) by @bug-ops in #1254
- feat(orchestration): Phase 5 — Aggregator + resume/retry (#1240) by @bug-ops in #1258
- feat(memory): entity canonicalization with alias table (#1231) by @bug-ops in #1256
- feat(memory): community detection with label propagation and graph eviction (#1228) by @bug-ops in #1271
- feat(tui): orchestration Plan View widget and wizard (Phase 6, #1241) by @bug-ops in #1272
- feat(memory): embedding-based entity resolution for graph memory (#1230) by @bug-ops in #1257
- feat(orchestration): Phase 7 — docs, integration test (#1242) by @bug-ops in #1273
- feat(memory): Phase 6 graph memory — init wizard, CLI flag, TUI commands, metrics (#1229) by @bug-ops in #1274
- feat(debug): LLM context and tool output debug dump by @bug-ops in #1275
- fix(core): persist_message saves parts from wrong message by @bug-ops in #1282
- fix(core): pass explicit parts to persist_message, fix off-by-one by @bug-ops in #1283
- fix(core): token counting uses parts structure for accurate budget by @bug-ops in #1285
- fix(core): swap pruning/summarization order, align window sizes by @bug-ops in #1286
- release: v0.14.0 by @bug-ops in #1281
Full Changelog: v0.13.0...v0.14.0
v0.13.0
What's Changed
- feat(subagents): migrate definition format from TOML to YAML by @bug-ops in #1177
- fix(gateway): eliminate bearer token timing side-channel (SEC-M22-001) by @bug-ops in #1178
- feat(subagents): Phase 1 — TUI palette, Telegram fixes, secret bridge, E2E tests by @bug-ops in #1179
- feat(subagents): Phase 2 — permissionMode, disallowedTools, background auto-deny (#1145) by @bug-ops in #1187
- feat(subagents): follow-up fixes #1180-#1185 — spawn defaults, bypass gate, deny_unknown_fields by @bug-ops in #1188
- perf(llm): pad Block 1 system prompt to exceed 2048-token cache minimum by @bug-ops in #1189
- feat(subagents): TUI permission_mode badges, docs update, --init wizard (#1186) by @bug-ops in #1192
- fix(subagent): fail-closed security gate for non-Default permission_mode from user-level agents by @bug-ops in #1190
- feat(mcp): declarative per-server tool policy layer with rate limiting by @bug-ops in #1191
- feat(llm): Thompson Sampling router with Beta-distribution exploration by @bug-ops in #1193
- feat(memory): Ebbinghaus eviction policy with two-phase SQLite+Qdrant sweep by @bug-ops in #1194
- feat(subagents): Phase 3 — scope & priority system (#1145) by @bug-ops in #1210
- feat(subagents): integrate SubagentStart/SubagentStop hooks by @bug-ops in #1211
- docs(subagents): Phase 5 background lifecycle gap analysis and documentation by @bug-ops in #1213
- feat(skills): Agent-as-a-Judge feedback detector with adaptive threshold by @bug-ops in #1212
- feat(subagents): persistent memory scopes for sub-agents (#1152) by @bug-ops in #1214
- feat(memory): query-aware routing and active context compression (#1155) by @bug-ops in #1215
- feat(subagents): resume sub-agents by ID with persistent JSONL transcripts (#1153) by @bug-ops in #1216
- feat(subagents): /agents management UI with CLI and TUI CRUD by @bug-ops in #1218
- feat(llm): Thompson Sampling router with adaptive model selection (#1156) by @bug-ops in #1219
- release: v0.13.0 by @bug-ops in #1220
Full Changelog: v0.12.6...v0.13.0
v0.12.6
What's Changed
- fix(memory): sanitize FTS5 query to prevent syntax errors on special chars by @bug-ops in #1129
- fix(scrape): raise default max_body_bytes from 1 MiB to 4 MiB by @bug-ops in #1130
- chore(deps): bump transitive dependencies by @bug-ops in #1131
- feat(scheduler): scheduler skill — periodic and deferred task management by @bug-ops in #1138
- docs: update READMEs with scheduler changes and TUI/LLM improvements by @bug-ops in #1139
- fix(scheduler): enable scheduler by default by @bug-ops in #1140
- fix(scheduler): implement legacy fenced-block dispatch for Ollama provider by @bug-ops in #1141
- fix(scheduler): TUI scheduler:list, legacy dispatch, run_at parsing, and sanitization by @bug-ops in #1142
- feat(core): hot reload instruction files without agent restart by @bug-ops in #1143
- release: v0.12.6 by @bug-ops in #1144
Full Changelog: v0.12.5...v0.12.6