AgenticX + Machi v0.3.7
AgenticX v0.3.7
Published Python package: agenticx==0.3.7
Installation
pip install -U agenticx==0.3.7PyPI
Highlights
New capabilities shipped in this release.
-
Core / Runtime / Tools
- Wired
computer_useto desktop tools with abortable invocations so long actions can be cancelled cleanly. - Added P0 reliability invariants for the CC integration, including a provider fault denylist and deny-before-confirm paths.
- Wired
-
Desktop / Electron
- Overhauled the forwarding UX: avatar/group + history picker, persistent follow-up notes, no accidental
/api/chatafter a forward, and newly forwarded conversations appear in history immediately. - Added message queuing, bash streaming, session interrupt, and running-state indicators (Issue #8).
- Added agent heartbeat recovery, stall detection, and a runtime config panel relocated to the Tools tab.
- Moved Settings into the topbar with a theme toggle and login shortcut; copy-message now expands Markdown to plain text.
- Added MCP row health state with session-scoped bindings and aligned the model service settings UX with Cherry Studio.
- Added
agxaccount web login and a Settings → Account tab. - Added support for custom OpenAI-compatible vendors with more stable local chat networking, and hardened Windows Settings rendering so vendor/lucide edge cases no longer crash the page.
- Overhauled the forwarding UX: avatar/group + history picker, persistent follow-up notes, no accidental
-
Skill Self-Evolution / Learning
- Introduced a Hermes-style skill self-evolution loop with learning counters wired into the runtime and
skill_manage. - Added fuzzy-patch application, versioning changelogs, and an enhanced skill guard for safer self-edits.
- Added a Desktop settings UI to configure self-evolution behavior.
- Introduced a Hermes-style skill self-evolution loop with learning counters wired into the runtime and
-
Knowledge Base (new)
- Introduced a Stage-1 local knowledge base MVP with Studio APIs, a settings page, and a
knowledge_searchtool. - Added LiteParse extended formats with LibreOffice detection and a visible parser status surface.
- Added retrieval-mode selection (Smart vs. Always), default Top-K tuning, and a chat-composer shortcut.
- Surfaced real vectorization progress as a percentage so long-running ingest is no longer opaque.
- Introduced a Stage-1 local knowledge base MVP with Studio APIs, a settings page, and a
-
Automation / Scheduling
- Each scheduled trigger now spawns a fresh session and supports per-task execution models.
- Persisted task run logs and added Meta diagnostic tooling for inspecting past runs.
- Conversations can now update scheduled task configs through meta-tools, with pane switching deferred until the new session is ready.
-
Packaging / CI
- The Windows NSIS installer now embeds
agx-serverand the WeChat sidecar for one-click setup, with port-selection and CI observability fixes to the install script.
- The Windows NSIS installer now embeds
Fixes & Improvements
Post-0.3.7 bug fixes. Focused on getting the packaged desktop build
(DMG / EXE) to parity with thenpm run devexperience — missing
PyInstaller dependencies, chromadb on-disk incompatibility, and a
handful of Electron startup races that left panels blank on first launch.
-
Packaging / Installer
- Declared
python-multipartexplicitly so the packagedagx-serverno longer crashes on startup (previously killed the binary before any route was reachable). - Forced
collect_allforchromadb,fitz(PyMuPDF),pypdf,python-docx,python-pptx, andnumpyin the PyInstaller spec so PDF/Office ingestion works out of the box on the packaged EXE/DMG (closes #10 — "Document ingestion fails for PDF files / missing numpy" on Windows). - Bundled
onnxruntimewith the desktop backend — it's loaded dynamically by chromadb's default embedder and PyInstaller couldn't discover it statically, causing the packaged build to prompt users topip install onnxruntime. - Fixed chromadb +
BailianEmbeddingso the shared async session is reused across event loops inside the packaged desktop runtime(previously produced "attached to a different loop" errors on second ingestion).
- Declared
-
Knowledge Base
- Replaced the opaque
'_type'parse failure with real error details and a full stack in the job log, so failed ingestions are diagnosable instead of silently stuck at 0 chunks. - Self-heal on chromadb on-disk incompatibility: recursively detects both
KeyError('_type')andValueError: Could not connect to tenant default_tenant(including when wrapped in other exceptions), then rebuilds the persistent vector directory and retries the operation automatically — no more "ingestion worked in dev but fails in the DMG build". - Delete button now always succeeds from the user's point of view: the registry entry is removed first, and a failing vector-store purge degrades to a warning instead of an HTTP 500 that made the button look dead while the record was already gone.
- Filter out
Nonemetadata fields before upserting into chromadb, fixing "Expected metadata value to be a str, int, float or bool, got None" on PDF/DOCX chunks that lackedchar_offset. - Knowledge panel now re-attaches to a still-running ingestion job when re-opened: instead of being stuck at the last snapshot progress (e.g. 50% forever), it reflects the real backend progress (70%, 90%, done).
- Missing-LibreOffice hint now gives the correct install command per OS (
brew install --cask libreofficeon macOS, official installer link on Windows) instead of a generic message.
- Replaced the opaque
-
Desktop / Electron
- Fixed two main windows opening on some macOS launches by making
createWindow()idempotent againstapp.on("activate")firing during backend warm-up. - Registered the full IPC handler set before
await startStudioServe(). Previously,app.on("activate")could open the window during the 5–30 s backend cold start and the renderer firedload-agx-account/list-avatars/list-groups/load-automation-tasks/load-feishu-binding/load-mcp-statusinto unregistered handlers — making the first launch look like the user was logged out with 0 agents and no history, only for everything to "come back" on restart.
- Fixed two main windows opening on some macOS launches by making
Stats
- Commits: 13 commits over 2 days (2026-04-19 → 2026-04-20)