Changelog
Release history
Format follows Keep a Changelog. Versioning follows SemVer.
[1.2.0]
Added
- · Hook pipeline (
hooks/pipeline.py) — PreToolUse / PostToolUse shell callbacks configurable viaconfig.yaml. Pre-hooks that exit non-zero deny execution; post-hooks run asynchronously. fnmatch pattern matching againstToolNameorToolName.action_name. - · Plan mode (
brain/plan_mode.py) —/planpresents the full execution plan as a rich table and waits for approval before any step runs. Auto-approves all-READ plans whenplan_mode.auto_approve_low_risk: true. - · Skills registry (
skills/registry.py) — user-extensible slash commands from*.mdfiles with YAML front-matter. Discovery: bundled →~/.zenus/skills/→.zenus/skills/. Bundled skills:commit,review-pr,simplify,explain,test-coverage. - · Context compactor (
context/compactor.py) —/compactsummarises intent history via LLM and replaces it with one entry. Auto-triggers at configurable token threshold. - · Session store (
memory/session_store.py) — persist and resume sessions at~/.zenus/sessions/(chmod 600)..json /session list/save/load/delete. Auto-prune tomax_sessions. - · TaskOps tool — formal task lifecycle:
create,list,get,stop,output,purge. Wraps the background queue with a user-visible API./taskscommand. - · ScheduleOps tool — register cron jobs from within an execution plan via
crontab. Remote HTTP webhook triggers with URL scheme validation. - · WorktreeOps tool —
enter(branch),exit_worktree(),current(). Creates isolated git worktrees for risky work; auto-cleanup if no commits are made. - · NotebookOps tool — read and edit Jupyter
.ipynbcells without a kernel:list_cells,read_cell,edit_cell,add_cell,delete_cell,clear_outputs. - · ToolSearch tool — runtime search of the tool registry by name or description.
- · AskUserQuestion tool — structured mid-plan user prompts with options validation and retry.
- · SleepTool — agent-callable wait primitive, capped at 300 seconds.
- ·
/doctorcommand — 10-check system health diagnostics rendered as a rich pass/fail table. - · MCP server mode (
zenus mcp-server) — exposes all tool actions via stdio/SSE to Claude Code, Cline, Continue. Tool names:{ToolName}__{action_name}. Privilege tier STANDARD by default. - · MCP client mode — connect external MCP servers at startup; their tools are injected as
mcp__{server}__{tool}into the Zenus registry. - ·
mcpoptional dependency (pip install "zenus-core[mcp]") - ·
zenus mcp-serverCLI subcommand with--transport,--host,--port,--allow-privilegedflags. - · MANIFESTO.md — first-principles document on the Zenus philosophy.
- · 141 new unit tests across 7 new test files (hooks, plan mode, skills, session, agentic tools, MCP, security).
Security
- · Secret masking in audit logs and intent history (
[REDACTED]for API keys, bearer tokens, GitHub PATs). - · Owner-only file permissions on
~/.zenus/logs/and~/.zenus/history/(mode 0o700/0o600). - · URL scheme validation in NetworkOps — rejects
file://,dict://and other non-HTTP(S)/FTP schemes. - · Path resolution via
Path.resolve()in FileOps — closes../traversal vectors. - · GitHub token restricted to env-only — removed config.yaml fallback.
- ·
enforce_confirmation_policy()ensures risk≥2 steps always require confirmation. - · Temp file permissions hardened to
0o600in CodeExec. - · 30 security regression tests.
[1.1.0]
Changed
- · LLM-driven search classification — replaced heuristic SearchDecisionEngine with LLM-based classification. The LLM now sets
search_provider,search_category, andcannot_answerdirectly in IntentIR. - · Structured debug-output controls (
DebugFlags) with per-subsystem flags:orchestrator,brain,execution,voice,search. All default to False. - · Academic query fallback routing: Semantic Scholar → arXiv → OpenAlex → Wikipedia.
Added
- · Semantic Scholar source — Allen Institute API, 200M+ academic papers, no API key required.
- · OpenAlex source — 240M+ scholarly works, open access.
- · Knowledge Graph (
brain/knowledge_graph.py) — typed entity-relationship graph from ActionTracker events with BFS traversal and impact analysis. - · Q&A mode —
IntentIR.is_questionshort-circuits directly tollm.ask(), bypassing execution machinery. - · Dynamic execution summary builder — concise human-readable summary from step results.
- · Autonomous web search with Brave Search API + 7-source parallel fallback (Wikipedia, HN, GitHub, Reddit, arXiv, RSS).
- · Voice v0.2.0 — faster-whisper STT (4× faster, no PyTorch), openwakeword wake detection, VoicePipeline entry point.
- ·
DebugConfigPydantic model anddebug.*config.yaml section.
Security
- · XML bomb protection — replaced stdlib
xml.etree.ElementTreewithdefusedxml. - · Prompt injection hardening — search results wrapped in untrusted-content delimiters.
- · Safe HTML stripping —
_SafeHTMLStripperdiscards/content before LLM injection.
[1.0.0]
Added
- · First stable release.
- · IntentIR — typed validation schema between LLM and system.
- · Transaction-based rollback for file ops, package installs, service restarts.
- · Parallel executor with automatic dependency analysis.
- · Failure analyzer and adaptive retry.
- · TUI dashboard (
zenus-tui). - · Multi-LLM support: Anthropic Claude, OpenAI, DeepSeek, Ollama.
- · Intent cache (LRU + disk, 1h TTL).
- · Config hot-reload via watchdog.
- · HashiCorp Vault KV v2 secrets integration.
- · Tree of Thoughts, Self-Reflection, Goal Inference, Multi-Agent collaboration.
- · Proactive monitoring with auto-remediation.
- · Workflow recorder.