Skip to content

v0.19.0

Choose a tag to compare

@daltonnyx daltonnyx released this 17 Jul 07:31

v0.19.0 — July 17, 2026

🚀 Major Features

  • Plugin System (Experimental) — File-based plugin discovery from .agentcrew/plugins/ and ~/.AgentCrew/plugins/. Single-file .py plugins and directory-based project plugins with dependency resolution, lifecycle management, and ownership-based cleanup. Includes trusted_project_plugins security boundary for project directories.
  • EventBus — Replaced the legacy Observer pattern with a typed, async-first EventBus supporting filtered subscriptions, priority ordering, one-shot listeners, weak references, mixed sync/async handlers, and propagation control.
  • Hook System — Before/after lifecycle hooks at tool.execute, agent.process, context.build, user.message, response.complete, and memory.store. Hooks can mutate context, cancel operations, and modify results.
  • Enhanced Ask Tool — Multi-question bundling (up to 10 questions per call) with navigation in both console (Tab/Backspace) and GUI dialogs. Refined tool instructions encourage proactive interviewing.
  • New Models — Added GPT-5.6 Sol / Terra / Luna family, Kimi K3, Meta Muse Spark 1.1, Grok 4.5, Tencent Hy3, and GLM-5.2 Fast across Command Code, OpenAI, GitHub Copilot, OpenCode Go, and ChatGPT Codex providers.

🧩 Improvements

  • Configuration
    • GlobalConfig is now a singleton with in-memory caching (mtime-based invalidation) — reduces repeated file I/O from hundreds of call sites.
    • Config now caches the trusted_project_plugins setting.
  • Console UI
    • Ask tool dialogs now support multi-question navigation, custom answers, and "Submit all" action.
    • get_choice_input() and get_prompt_input() now respect swap_enter mode and provide key-binding hints.
  • GUI
    • Qt ChatWindow now uses ui_call_requested signal for thread-safe event dispatch.
    • Event handlers split into per-method subscriptions (no more monolithic listen()).
    • Ask tool GUI dialog supports multi-question navigation.
  • Memory
    • memory.store before/after hooks wired into MemoryWorker._store_conversation_internal().
    • After-hook mutations affect persisted document, header metadata, embedding input, and conversation context cache.
  • Agent Processingagent.process before hooks can temporarily override model_id (restored after after-hook).
  • Context Buildingcontext.build before/after hooks wired. system_prompt mutations persist on the LLM service.
  • Tool Executiontool.execute hooks integrated into all agent runners, A2A, and ACP executors. CancelOperation produces agent-compatible rejected results.
  • A2A/ACP — Ask tool now supports multiple questions; structured responses parsed from q0:/q1: format.
  • Web Extraction — Added include_images parameter to web extract tool (defaults to False).
  • Version Check — Fixed crash when running agentcrew --version without arguments.

🐛 Bug Fixes

  • Wait for the current stream to complete before allowing voice transcription submission.
  • Fixed transfer tool rejection handling — special-cased to produce user-role message.
  • Fixed _safe_json_loads logging empty arguments and non-dict tool calls.
  • Fixed A2A server lifespan context manager — finally ensures store closure on shutdown.
  • Fixed context awareness prompt — removed unused max_context_token parameter.
  • Fixed copilot and chatgpt-auth login commands — no longer instantiate AgentCrewApplication.

Full Changelog: v0.18.0...v0.19.0