Changelog¶
All notable changes to MiMinions are documented here.
The format follows Keep a Changelog and the project adheres to Semantic Versioning.
Current version
The latest published release is 0.4.1 (requires Python ≥ 3.12). Install it with pip install miminions, or pip install miminions[sqlite] to add SQLite vector memory. See Getting Started for the full matrix.
[Unreleased]¶
Work in progress toward the next release.
Added¶
- Added a top-level
miminions toolcategory for listing, inspecting, searching, and executing agent tools.
Changed¶
- Breaking: consolidated execution sessions under
miminions tool, renamed direct tool invocation totool execute, renamed the gateway runtime command togateway start, and renamed immediate cron invocation togateway cron exec. The formerexecution,tool run,gateway run, andgateway cron runpaths have been removed.
[0.4.1] - 2026-08-26¶
Latest published release on PyPI.
Changed¶
miminions agent runno longer accepts the non-functional--asyncflag; the CLI now fails fast instead of exposing a placeholder execution path.miminions agent runandmiminions agent asknow send prompts straight through the runtime model instead of applying hidden keyword-based demo tool routing.- Workflow-related CLI code remains internal-only; public docs no longer imply a shipped
miminions workflowcommand surface.
[0.4.0] - 2026-08-24¶
Latest published release on PyPI.
Added¶
- Streaming replies.
Minion.run_stream()yields the LLM reply as incremental text deltas; the CLIchatloop now streams every reply to the terminal. See Agent. - Retries, timeouts, and observability hooks.
create_minionacceptsrequest_timeout(per-HTTP-request, default 60 s),max_retries(default 2) with exponential backoff on transient provider errors (429/5xx, connection failures), and optionalon_tool_call/on_turn_endcallbacks.miminions chat start --verboseuses them to show tool calls, token usage, and latency per turn. - Message-history trimming.
trim_message_historycaps the LLM context for long chat sessions at 40 messages, cutting only at user-turn boundaries so tool call/return pairs are never split; the on-disk transcript stays complete. - Workspace schema versioning. Persisted workspace records carry a
schema_versionfield (currently 1) with a migration hook at load time; unversioned records are treated as v1 and stamped on the next save. SQLiteMemoryas a context manager.with SQLiteMemory(...) as mem:closes the connection automatically.- Centralized path resolution (
miminions.core.paths). All persistent state resolves throughget_config_dir(), honoring a newMIMINIONS_HOMEenvironment variable to relocate~/.miminions.get_global_memory_db_pathmoved here (still re-exported frommiminions.memory.sqlite).
Changed¶
- Atomic JSON persistence. Shared
load_json/save_jsonhelpers (miminions.core.persistence) write all CLI/JSON stores atomically and fail loudly on corrupt files. - Fail-fast OpenRouter key check. With the default
openrouterprovider, a missingOPENROUTER_API_KEYnow raisesValueErroratcreate_minion(...)construction instead of failing later at call time. miminions agent addderives unique agent ids: a name collision gets a_2,_3, … suffix instead of an error, andcreated_atis now a real UTC timestamp.- Chat errors preserve any partially streamed reply in the session transcript alongside the
[error]marker.
[0.3.0]¶
Previous published release on PyPI.
Added¶
- Click-based CLI (
miminions/python -m miminions) with nine command groups:auth,agent,task,knowledge,workspace,execution,chat,gateway, andprompt. State persists locally under~/.miminions/. See CLI. - First-run bootstrap.
miminions.core.bootstrap.ensure_default_setupidempotently creates adefaultworkspace and a default agent record under~/.miminions/on first use, so the CLI works out of the box. - Three-tier memory with an LLM distiller. A chronological session log (
HISTORY.md), stable workspace facts (MEMORY.md→ "Project Facts"), and a cross-workspace SQLite vector store (~/.miminions/global_memory.db).MemoryDistillerextracts and promotes insights across tiers using ancreate_llm_filter-built extractor. See Memory. - Workspace system. A node/rule graph model (
Workspace,Node,Rule,NodeType,RulePriority) with rule inheritance and priority-sorted evaluation, a JSON-backedWorkspaceManager, and an on-disk layout (prompt/,memory/,skills/,sessions/,data/) scaffolded byinit_workspace. See Workspaces. - Context injection.
ContextBuilder().build(workspace, root_path)composes a single markdown context block (Identity, Tool Boundary, Prompt Files, optional Global Knowledge, Memory, Workspace Graph Summary, Skills Index) that is wired into the agent system prompt viaMinion.set_context. See Context. - MCP tool loading. Connect to a stdio MCP server with
await agent.connect_mcp_server(name, StdioServerParameters(...))and register its tools withawait agent.load_tools_from_mcp_server(name). Uses themcppackage, which is a core dependency. See Agent. - Gateway runtime building blocks (
miminions.core.gateway): an async pub/subMessageBus, aBaseChannelabstraction, a JSONLSessionManager, aCronService(one-shot, recurring, and cron-expression schedules; cron expressions require the optionalcroniterpackage), and a phasedGatewayOrchestrator. Provided as an extensible runtime layer, not a turnkey server. See Gateway. - Workflow tracing models (
WorkflowTrace,WorkflowRun,ToolCallRecord,AgentRunRecord) and aWorkflowController, persisted by themiminions executionCLI.
Changed¶
- Replaced
sentence-transformerswithfastembed(ONNX Runtime) forSQLiteMemoryembeddings, removing the PyTorch/CUDA dependency. Sameall-MiniLM-L6-v2model and 384-dim output, so existing databases need no migration. SQLite vector memory now installs via the[sqlite](or[all]) extra alongsidesqlite-vecandpysqlite3. - Simplified the user module to a lean
Userdataclass (miminions.user.model).
Removed¶
- Heavy embedding stack (PyTorch/CUDA) is no longer pulled in for SQLite vector memory.
- Complex user authentication and validation systems.
Not yet enabled
A workflow CLI command group exists in the tree but is not registered ("not yet implemented"). The --async flag on miminions agent run is currently a no-op placeholder. These are tracked for a future release and are documented as planned, not present.
[0.2.2] - 2026-04-02¶
Added¶
- Agent layer built on
pydantic_ai:create_minion/Minionwith a tool registry, optional vector memory (auto-registering seven memory + ingestion tools), and an asyncrun()reasoning loop. ModelFactoryprovider selection —openrouter(default,openai/gpt-oss-20b:free),openai,anthropic,gemini, and an offlinetestmodel.SQLiteMemoryvector store with vector, keyword, full-text, metadata, regex, hybrid, and date-range search, backed bysqlite-vec.GenericTool/@tool/create_tooltool abstraction and an MCP tool adapter.LocalDataManagercontent-addressable (SHA-256) local storage with deduplication, a JSON master index, and an append-only transaction log.
[0.1.0]¶
Initial release.
Added¶
- Core MiMinions package structure.
- Generic tool system and agent management foundations.
- Local data management system.
- User module with a basic data model.
- A test suite structure.
Version history¶
| Version | Notes |
|---|---|
| Unreleased | TBD |
| 0.4.1 | Current published release — removes the no-op agent run --async flag and hidden keyword-based CLI prompt bypass |
| 0.4.0 | Previous release — streaming replies, retries + timeouts + hooks, history trimming, workspace schema versioning, MIMINIONS_HOME, atomic JSON persistence |
| 0.3.0 | CLI, three-tier memory + distiller, workspaces, context builder, MCP loading, gateway building blocks; fastembed embeddings |
| 0.2.2 | Agent, vector memory, tools, local data |
| 0.1.0 | Initial release with core functionality |
How to read this changelog¶
Categories¶
- Added — new features
- Changed — changes to existing functionality
- Deprecated — features slated for removal
- Removed — features that have been removed
- Fixed — bug fixes
- Security — security-related changes
Versioning¶
We follow Semantic Versioning (MAJOR.MINOR.PATCH):
- MAJOR — incompatible API changes
- MINOR — new functionality, backward-compatible
- PATCH — backward-compatible bug fixes
Contributing¶
When adding changelog entries:
- Add the entry under the appropriate category.
- Use clear, concise language.
- Reference issue numbers where applicable.
- Keep the Unreleased section current as development proceeds.
See Contributing for the full workflow.