Repository navigation
v0.5.0
Changelog
All notable changes to Enno will be documented in this file.
The project follows Semantic Versioning. While the public API is still evolving, releases use the v0.x.y series.
0.5.0 - 2025-07-11
Added
tools/taskgraph: persistent DAG task plan (task_create,task_update,task_list,task_get). CLI stores JSON under~/.enno/tasks/<session_id>/(UUID v4 per run); library default remainsRoot/.tasks/whenTasksDiris empty. CLI YAMLtask_graph/--no-task-graph(default: enabled). Replaces the removedtodotool.tools/grep:Greptool (Claude Code–compatible name) runningrgwith path scope underConfig.Root; CLI YAMLgrep/ flag--no-grep(default: grep enabled). Requires ripgrep installed.tools/glob:Globtool (Claude Code–compatible name) listing files withrg --filesunderConfig.Root; CLI YAMLglob/ flag--no-glob(default: glob enabled). Requires ripgrep onPATH.- Optional context compaction (
Config.Compaction): micro-trimming of older long tool results, automatic summarization when estimated input usage crosses a threshold (writes JSONL transcripts underTranscriptDir, default~/.enno/transcriptswhen enabled), and a manualcompacttool (same summarization path; must be the only tool call in that turn). Default off; extra model calls and disk writes when enabled. Implementation lives incompaction_impl.goin the root package (a separatecompactionsubpackage would import-cycle withenno). tools/compact: registers thecompacttool name for the runtime; CLI appends it whencompactionis set inconfig.yaml.tools/subagent: optionaltasktool that runs a childenno.Agentwith isolated history; CLI can enable it withsubagent: truein~/.enno/config.yamlor disable with--no-subagent.tools/loadskill: loadSKILL.mdskills from a directory, inject short descriptions into the system prompt, and registerload_skillfor on-demand full text; CLI merges default~/.enno/skillswith optionalskills_extra_dirs,skills_dir, and--skills-dir(later roots override same skill name).
Fixed
- TUI: use button-level mouse mode (not full motion/drag reporting) so the main transcript can be click-dragged for copy again; keep wheel scroll routing.
Removed
tools/todoand thetodotool: usetask_*task graph tools instead. Agent “plan reminder” now trackstask_create/task_update/task_list/task_getand injects<reminder>Update your task plan.</reminder>.
Changed
- CLI:首次自动创建的
~/.enno/config.yaml模板默认包含compaction.enabled: true(仍可改为false);库 API 仍为Compaction == nil时不启用压缩。 - Compaction:摘要提示改为
<analysis>/<summary>结构并后处理为正文;支持ModelContextTokens+ buffer 阈值、MicroCompactToolNames、上一轮 APIInputTokens与估算取 max、摘要失败时半量重试、SkipOnSummarizeError与同一Run内连续失败熔断;手动compact仍严格失败即报错。 - TUI: the main transcript scrolls only with the mouse wheel over that pane; keyboard paging keys no longer scroll it.
0.4.0 - 2026-05-08
Added
- Save user input history to
~/.enno/history.jsonlin JSONL format with display text, timestamp, project path, and session ID. - TUI prompt supports Up/Down arrow keys to navigate input history with draft preservation.
- Load last 500 history entries on TUI startup for immediate navigation.
- Add
internal/historypackage withRecorder(append-only writer) andLoadRecent(reader). - Add
ProjectandSessionIDfields to CLI config for history tracking. - Generate random session ID per CLI invocation.
Changed
- Main view scrolling changed from Up/Down arrows to PgUp/PgDn, freeing Up/Down for input history navigation.
- Updated status bar hints to reflect new key bindings.
0.3.1 - 2026-05-07
Fixed
- TUI: keep the main transcript following the end of the output when "follow latest" is enabled (avoid canceling tview track-end mode after scroll).
Changed
- TUI: softer rounded borders, muted border and title colors, and consistent focus border glyphs between the transcript and prompt panes.
- TUI: animated transcript title while waiting on the model during network latency.
- TUI: use a distinct color for the
tool:channel label versus the tool name in the conversation stream.
0.3.0 - 2026-05-07
Changed
- Replaced the CLI terminal UI dependency from
tui-gototview.
Added
- Added Agent events and CLI observability panels for model calls, tool calls, tool results, and token usage.
0.2.0 - 2026-05-07
Changed
- Changed CLI provider configuration to read model, API key, base URL, and max tokens from
config.yamlonly. - Moved CLI REPL/TUI implementation from the public
runnerpackage tointernal/cliui. - Removed
workdirandpromptfrom CLI YAML configuration. - Changed the CLI interactive mode to use a
tui-goterminal UI. - Removed CLI support for
ENNO_*provider configuration environment variables.
Added
- Added automatic creation of a commented
~/.enno/config.yamltemplate when the default CLI config file is missing. - Added internal CLI UI tests for the non-terminal REPL fallback.
- Added CLI YAML config loading from
~/.enno/config.yamland--config. - Added CLI config tests for YAML-only provider configuration.
- Added CLI configuration tests for required model and OpenAI-compatible base URL settings.
0.1.0 - 2026-05-07
Added
- Introduced the provider-neutral
ennocore package withAgent,Config,Provider,Tool, and message types. - Added OpenAI-compatible and Anthropic provider packages.
- Added optional built-in tools for todo tracking, filesystem access, and shell execution.
- Added reusable
runner.REPLandrunner.Oncehelpers. - Added installable CLI under
cmd/enno. - Added usage, design, README, and agent guidance documentation.
- Added repository verification through
make verify.
Full Changelog: v0.4.0...v0.5.0