v0.5.0
Changelog
110 changes in 255 commits
New Features (11)
- Agent Artifacts - persistent file output system with
save_artifacttool, artifact modal viewer,read_attachmenttool with cross-agent isolation, delete endpoint with auth check, and attachment cleanup on session delete - RTK Token Compressor - 8-stage modular compression pipeline with TOML schema, Python and Rust builtin filters, agent-specific and project-level filter overrides via KB, token savings tracking API (
/api/rtk/gain), config knobs (RTK_NO_COMPRESS,RTK_VERBOSE), and safety net fallback - Thinking Budget Cap - per-model round-based budget enforcement for small model efficiency (Phase 2)
- Quality Monitor with Auto-Correction - automatic correction and output parser for improved response quality
- Long-running command guardrail - detects build/compile commands and suggests tmux/screen alternatives
/execslash command - switch agent mode from plan to execute directly via chatforget_memorytool - long-term memory deletion for soft-deleting stale or irrelevant memoriesassign_skills/unassign_skillsuper-agent tools - assign and remove skills from agents programmatically- Evonic Backup System - CLI-based backup, restore, and verification with
evonic backupcommand (evonic-backup-[YYYYMMDD]-[HHMM].tar.gznaming format) - File upload in web chat UI - upload files directly from the chat interface
- Per-agent model fallback - configurable fallback chain with 1 retry, persistence across sessions, and UI badge indicator
Plugin’s Features (2)
- Model-router plugin - per-model base system prompts (
SYSTEM_PROMPTS), model list endpoint, and token widget UI overhaul (model-router plugin) - Plugin widget mechanism - auto-load
*_widget.htmlin plugin detail page for custom UI
Enhancements (53)
- Search bars on /plugins and /skills pages - client-side filtering for quick navigation (#362, #365)
- Compact plugin and skill cards - redesigned to match /agents card pattern with compact layout (#361, #364)
- Token list SVG icons - replaced text Edit/Delete buttons with SVG icons in API token list (#333)
- Test Model feedback modal - loading spinner, success/error states with icons, dark mode support (#371)
/modelcommand simplification - removed model UUID from output, formatted list as Markdown (#372)- Prompt-only skill badges - show skills without tools as badges with divider line between Tasks and Skills
- State API with loaded skills -
/api/statenow exposesloaded_skillswith skill badges rendered in sessions page (#359) - SSE bridge state-change trigger - add
use_skill/unload_skillto SSE state-change trigger list (#358) - Remove
Regularcategory badge - removed from non-system plugin cards (Robin feedback) - User-directory plugin UI refactor - migrated to evonic standard styling with profile section cleanup (#331)
- Evonet GUI improvements - Clear button in toolbar (#343), version number in window title, FyneApp.toml for macOS metadata
- Translate remaining Indonesian to English - all Indonesian copy in
cli/commands.pytranslated (#342) - Backup file format - standardized naming to
evonic-backup-[YYYYMMDD]-[HHMM].tar.gz(#341) send_agent_messagefocus mode guard - reject message when target agent is in focus mode- Script placement rule - all scripts must be in
scripts/directory; migrations inscripts/migrations/ - Smart quote normalization -
normalize_code_quotesreplaces smart quotes with ASCII equivalents instr_replaceandpatch - Remove TONE_PRESETS mechanism - replaced with
{communication_style}placeholder in super agent prompt template - Add
tmuxto tools Dockerfile - added for long-running command execution support - Long-running guard error message - inline run script into error message for weaker models
- Upload evonic helpers to SSH - auto-upload evonic helpers to remote SSH host on first
run_pythoncall nohupPID file fallback - nohup fallback now saves PID to file for cross-session tracking- Migration scripts cleanup - moved all migration scripts to
scripts/migrations/ - Remove
_scripts/directory - consolidated intoscripts/ - Auto-load all skill tools for super agent - skills auto-loaded for super agent; fix scheduler config type handling
- Get version from GitHub Releases API - instead of local git tags for more reliable update detection
- Make
patchhandle JSON\\uXXXXescapes - handles LLM double-escaping and JSON unicode escapes in context matching portal_copytool - binary file transfer between workspaces and portals- Treat code files as plain text - in artifacts explorer for better inline preview (#312)
- Improve
read_attachmenttool - with file parsing, access checks, and cross-agent isolation - Delete attachments on session clear - purge files on session delete and clear-all sessions
- Add
ghCLI installation guide - comprehensive guide for all OS in GitHub skill KB - Add EVONIC_BANNER refactor - deduplicate banner, import from
cli.commands - Structured logging for agent_messaging - add agent_messaging tool inclusion in agent log routes
- Intent-based Skill Injection - dynamic tool guidance by injecting relevant skill context based on agent intent
- Write-vs-Edit guard -
write_filenow refuses to overwrite existing files, guiding agents to usestr_replaceorpatchfor surgical edits - Improved
patchtool - tiered fuzzy matching with exact, indent-tolerant, and unescape-tolerant fallback tiers - Process tracker - immediate
/stopinterrupt for running tool executions via PID-based process tracking - Dynamic edit tool suggestion - writes overwrite guard dynamically suggests the best edit tool based on agent's assigned tools
- Channel user identity injection - inject channel user identity into agent context for personalized responses
- Dynamic enabled-agent roster injection - inject live list of enabled agents into super agent system prompt
- Cloud \u2192 Tunnel rename - full rename across DB schema, migration, routes, config, templates, tests, KB files, and README
- Scheduler
session_promptaction type - trigger full LLM sessions from scheduled jobs with tool access - Scheduler detail modal - display
static_messagecontent in scheduler detail view - Improve
webhookinput filter - per-event-type JSON filter configuration for webhook payloads - Sanitize Docker/container language - remove container terminology from tool descriptions for non-sandbox agents
- Telegram username allowlist - enhance Telegram user allowlist to include username-based filtering
- Accurate tiktoken token counts - compiled context now shows memories and summary with precise token counts
- Extract user-directory plugin - moved user-directory plugin to its own independent git repository
Bug Fixes (44)
- False-positive continuation nudge - fixed on report-style responses, completion/summary responses, and permission-seeking responses (sessions 67fd3ea1, 25ac767d)
- Continuation nudge negation fix -
PLANNING_REnudge negation broke out of loop instead of falling through - Spaced character evasion false positive - fixed false positive on normal words
- Safety pipeline import graceful fallback - all tool files (
bash.py,patch.py,str_replace.py,write_file.py) now wrapsafety_pipelineimport in try/except with warning log and graceful degradation _skip_safetyflag hardening - requires strict booleanTrueto skip safety checks- Kanban
tool_guardself-heal - clears stale pending status for done/reassigned tasks - Dark mode UI fixes - hover text on Advanced Settings button (#352), hover styling for session items (#360), fix dark mode for user-directory plugin modals and table
- EvoNET build fix - fixed evonet build and
portal_copyfor absolute paths - Old CHECK constraint migration - handle old CHECK constraint during cloud-to-tunnel workplace migration
/clearchat input fix - clear chat input after/clearcommand submission (#392)- Task text sanitization - prevent inconsistent status indicator rendering from sanitized task text
- Loaded skill badge persistence - clear in-memory
_session_skill_mds/_session_skill_toolsin slash command handler (#373) - Add
from __future__ import annotations- for Python 3.9 compatibility - Max_lines zero head/tail - fix max_lines=0 behavior in token compressor
ls -laregex fix - handlels -laoutput in token compressor filtergit addempty-input - handle empty input in git add operations- False-positive SSH path detection - fix false positive for normal paths containing
.ssh - Artifact CSS fix - missing
group-hover:opacity-100CSS rule for artifact action buttons (#344) - Replace native
confirm()withshowConfirm()- indeleteArtifact()for consistent UI (#344) - Fix misleading
Execution stopped by user- for sudo/signal deaths that were not user-initiated /helpcommand visibility - fix/helpshowing/cdand/cwdcommands to non-super agents- Auto-detect task completion status - from embedded markers in text
- Tool date booking L3 test fix
- Fix smart quote in
showTab()- replaced smart quote with regular quote - Use Jinja
{{ plugin_id }}- instead of globalPLUGIN_IDin widget scripts - Fix
spaced_character_evasionrule - false positive on normal words - Fix nohup fallback - PID file for cross-session tracking
- Update token compressor filters - fix filters for ls command
- Fix agent detail Advanced Settings - dark mode hover text
- Fix eval page real-time logs - escape HTML in Real-Time Logs (#335)
- Fix session state task list display - not shown in chat UI right panel (#226)
- Fix
renderAgentState- now passessession_idand renders task list correctly (#226) - Fix portal Add button - 6 JavaScript/HTML ID mismatches causing silent failure
- Forward sub-agent replies to parent agent - ensure replies reach correct session
- Fix
escalate_to_user- deliver messages to both channel and web sessions - Fix slash command interception - in
send_as_userand scheduler routing for real users - Fix session persistence for mobile web - ensure mobile chat state survives navigations
- Fix trailing newline in patch.py - when no lines remain after patch application
- Fix normalize curly quotes - in SQL answer extraction for reliable parsing
- Fix restart ready message - proper web chat thinking bubble for slash commands
- Show webhook secret as plain text - instead of masked for copy-paste (#212)
- Fix missing build script - chat-ui.js not regenerated after changes
- Re-route SSE adapter after turn_split - maintain real-time updates in monolith mode
- Update progress persistence - survive crashes during update with progress tracking and pre-flight checks