Skip to content

Releases: bug-ops/zeph

v0.15.3

17 Mar 17:30
0bd830e

Choose a tag to compare

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

16 Mar 01:44
98b8c3e

Choose a tag to compare

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

15 Mar 04:52
966ecfd

Choose a tag to compare

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

14 Mar 02:43

Choose a tag to compare

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

v0.14.3

10 Mar 14:50
147a05f

Choose a tag to compare

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

09 Mar 16:16
6b2af54

Choose a tag to compare

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

07 Mar 02:28

Choose a tag to compare

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

06 Mar 19:37
ed50cd8

Choose a tag to compare

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

05 Mar 04:01
e77ce92

Choose a tag to compare

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

04 Mar 01:02
395187e

Choose a tag to compare

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