Repository navigation
Releases: dean2021/enno
Release list
v0.13.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.13.0] - 2026-05-09
Changed (breaking)
- Remove the
sdkpackage; merge all types and configuration into the rootennopackage. Users now callenno.NewAgent(enno.Config{...})directly instead ofsdk.NewAgent(sdk.Config{...}). - Add a
setuppackage (github.com/dean2021/enno/setup) that must be blank-imported to enable built-in tool assembly. Withoutimport _ "github.com/dean2021/enno/setup", usingBuiltinToolsinenno.Configreturns an error. - Move
SystemPromptSection,BuiltinTools, all tool config types (TaskGraphTool,FilesystemTool,ShellTool,GrepTool,GlobTool,FetchURLTool,SubagentTool,LoadSkillTool,CompactTool),ToolPermissions, andPermissionModeconstants into the rootennopackage. - Move
AssembleConfig(previouslysdk.AssembleConfig) into the rootennopackage. enno.Confignow includesSystemPromptSections,BuiltinTools,Permissions, andCustomToolsfields alongside existingTools,SystemPrompt, etc.
Migration
// Before (v0.12.0):
import (
"github.com/dean2021/enno"
"github.com/dean2021/enno/sdk"
)
agent, err := sdk.NewAgent(sdk.Config{...})
// After (v0.13.0):
import (
"github.com/dean2021/enno"
_ "github.com/dean2021/enno/setup"
)
agent, err := enno.NewAgent(enno.Config{...})[0.12.0] - 2026-05-09
Changed (breaking)
- Move built-in tool implementations from
internal/builtintools/*tobuiltintools/*. - Move SDK runtime prompt helpers from
internal/systemprompttoprompt. - Update all documentation to reflect the new package paths.
[0.11.0] - 2026-05-09
Changed
- Move the former in-repo CLI to the standalone Godo project at
../godo-coding-agent; Enno now focuses on SDK, providers, and built-in tool assembly. - Remove CLI-owned code and CLI release/install targets from the Enno SDK repository.
Documentation
- Document the future standalone CLI module boundary, including public SDK import shape, migration directories, and split changelog strategy.
[0.10.0] - 2026-05-09
Added
- Add the built-in
fetch_urltool for fetching HTTP/HTTPS pages and converting HTML to readable markdown. - Refactor CLI system prompt assembly into named sections, add best-effort project instruction loading from
AGENTS.md/CLAUDE.md, and keep SDKSystemPromptcontrol explicit. - Add
sdk.SystemPromptSectionandConfig.SystemPromptSectionsso applications can inject named prompt sections while keeping agent identity application-owned.
Changed
- Remove default coding-agent identity from the SDK; CLI now owns its identity explicitly through
internal/cliconfig.
[0.9.0] - 2026-05-08
Added
- Add a complete offline SDK walkthrough under
examples/sdk_walkthrough. - Add
github.com/dean2021/enno/sdkfor high-level built-in tool configuration and tool permissions.
Changed (breaking)
- Move built-in tool implementations from public
tools/*packages tobuiltintools/*. - Migrate CLI assembly to
sdk.Config.BuiltinToolsand add YAMLallowed_tools,disallowed_tools, andpermission_mode.
Documentation
- Clarify high-level SDK guidance and refresh architecture/config references for the built-in tool API.
[0.8.0] - 2026-05-08
Changed (breaking)
- Replace the legacy text-only
Agent.Run(ctx, input)path withAgent.Run(ctx, session, input) (RunResult, error). - Remove
Agent.RunDetailed,Agent.RunSession,Agent.Messages, andAgent.Reset; callers now own conversation state throughSession. - Update
Agent.RunStreamto require an explicitSession.
CLI
- Migrate
cmd/enno, plain REPL fallback, and Bubble Tea TUI to the explicitSessionAPI. - Keep CLI output behavior unchanged by printing
RunResult.Content.
Documentation
- Update README, SDK guide, design notes, migration guide, examples, and agent guidance for the explicit-session SDK.
[0.7.0] - 2026-05-08
Added
- SDK detailed run APIs with
RunDetailed,RunStream,RunSession,RunResult, per-round usage, stop reasons, and tool-call metadata. - Provider-neutral request options for temperature, max output tokens, tool choice, response formats, and metadata.
- Lifecycle hooks and policies for provider calls, tool calls, compaction, and task reminders.
- Session cloning/reset support for applications that persist or branch conversation state.
- Schema builder helpers, structured tool results, and early tool definition validation.
- Consistent built-in tool output limits and timeout options across filesystem, shell, grep, glob, and subagent tools.
Changed
- Refactored the agent loop around explicit sessions, policies, hooks, and detailed execution state.
- OpenAI-compatible and Anthropic providers now map shared SDK request options where supported.
- OpenAI-compatible provider now supports Chat Completions streaming.
Documentation
- Expanded SDK usage and design docs for advanced APIs, hooks, streaming, sessions, and built-in tool options.
- Added a migration guide and marked the SDK improvement checklist complete.
[0.6.2] - 2026-05-08
Documentation
- Split
docs/usage.mdinto separate guides: SDK 使用指南 and CLI 使用指南. - Update cross-references in
README.md,CLAUDE.md, anddocs/usage.md.
[0.6.1] - 2026-05-07
Fixed
compaction_impl: declare compaction defaultconstvalues as untyped integers in one block (avoids “only the first constant has an explicit type” / mixed typing in the same group). Behavior unchanged.
[0.6.0] - 2026-05-07
Changed (breaking)
grep/glob: registered tool names are nowgrepandglob(wereGrep/Glob).subagent: child-agent tool registered name issubagent(wastask).
CLI / TUI
- Button-only mouse tracking (
MouseButtonEvents): wheel scrolls the main transcript when the pointer is over that pane; ↑ / ↓ navigate input history; drag-select may require Shift in some terminals. - Removed F9 transcript-to-clipboard shortcut.
Documentation
- README, usage, design, examples, and agent guidance updated for renames and TUI behavior.
[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/Do...
v0.11.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.
[Unreleased]
[0.11.0] - 2026-05-09
Changed
- Move the former in-repo CLI to the standalone Godo project at
../godo-coding-agent; Enno now focuses on SDK, providers, and built-in tool assembly. - Remove CLI-owned code and CLI release/install targets from the Enno SDK repository.
Documentation
- Document the future standalone CLI module boundary, including public SDK import shape, migration directories, and split changelog strategy.
[0.10.0] - 2026-05-09
Added
- Add the built-in
fetch_urltool for fetching HTTP/HTTPS pages and converting HTML to readable markdown. - Refactor CLI system prompt assembly into named sections, add best-effort project instruction loading from
AGENTS.md/CLAUDE.md, and keep SDKSystemPromptcontrol explicit. - Add
sdk.SystemPromptSectionandConfig.SystemPromptSectionsso applications can inject named prompt sections while keeping agent identity application-owned.
Changed
- Remove default coding-agent identity from the SDK; CLI now owns its identity explicitly through
internal/cliconfig.
[0.9.0] - 2026-05-08
Added
- Add a complete offline SDK walkthrough under
examples/sdk_walkthrough. - Add
github.com/dean2021/enno/sdkfor high-level built-in tool configuration and tool permissions.
Changed (breaking)
- Move built-in tool implementations from public
tools/*packages tointernal/builtintools/*. - Migrate CLI assembly to
sdk.Config.BuiltinToolsand add YAMLallowed_tools,disallowed_tools, andpermission_mode.
Documentation
- Clarify high-level SDK guidance and refresh architecture/config references for the built-in tool API.
[0.8.0] - 2026-05-08
Changed (breaking)
- Replace the legacy text-only
Agent.Run(ctx, input)path withAgent.Run(ctx, session, input) (RunResult, error). - Remove
Agent.RunDetailed,Agent.RunSession,Agent.Messages, andAgent.Reset; callers now own conversation state throughSession. - Update
Agent.RunStreamto require an explicitSession.
CLI
- Migrate
cmd/enno, plain REPL fallback, and Bubble Tea TUI to the explicitSessionAPI. - Keep CLI output behavior unchanged by printing
RunResult.Content.
Documentation
- Update README, SDK guide, design notes, migration guide, examples, and agent guidance for the explicit-session SDK.
[0.7.0] - 2026-05-08
Added
- SDK detailed run APIs with
RunDetailed,RunStream,RunSession,RunResult, per-round usage, stop reasons, and tool-call metadata. - Provider-neutral request options for temperature, max output tokens, tool choice, response formats, and metadata.
- Lifecycle hooks and policies for provider calls, tool calls, compaction, and task reminders.
- Session cloning/reset support for applications that persist or branch conversation state.
- Schema builder helpers, structured tool results, and early tool definition validation.
- Consistent built-in tool output limits and timeout options across filesystem, shell, grep, glob, and subagent tools.
Changed
- Refactored the agent loop around explicit sessions, policies, hooks, and detailed execution state.
- OpenAI-compatible and Anthropic providers now map shared SDK request options where supported.
- OpenAI-compatible provider now supports Chat Completions streaming.
Documentation
- Expanded SDK usage and design docs for advanced APIs, hooks, streaming, sessions, and built-in tool options.
- Added a migration guide and marked the SDK improvement checklist complete.
[0.6.2] - 2026-05-08
Documentation
- Split
docs/usage.mdinto separate guides: SDK 使用指南 and CLI 使用指南. - Update cross-references in
README.md,CLAUDE.md, anddocs/usage.md.
[0.6.1] - 2026-05-07
Fixed
compaction_impl: declare compaction defaultconstvalues as untyped integers in one block (avoids “only the first constant has an explicit type” / mixed typing in the same group). Behavior unchanged.
[0.6.0] - 2026-05-07
Changed (breaking)
grep/glob: registered tool names are nowgrepandglob(wereGrep/Glob).subagent: child-agent tool registered name issubagent(wastask).
CLI / TUI
- Button-only mouse tracking (
MouseButtonEvents): wheel scrolls the main transcript when the pointer is over that pane; ↑ / ↓ navigate input history; drag-select may require Shift in some terminals. - Removed F9 transcript-to-clipboard shortcut.
Documentation
- README, usage, design, examples, and agent guidance updated for renames and TUI behavior.
[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...
v0.9.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.
Unreleased
0.9.0 - 2026-05-08
Added
- Add a complete offline SDK walkthrough under
examples/sdk_walkthrough. - Add
github.com/dean2021/enno/sdkfor high-level built-in tool configuration and tool permissions.
Changed (breaking)
- Move built-in tool implementations from public
tools/*packages tointernal/builtintools/*. - Migrate CLI assembly to
sdk.Config.BuiltinToolsand add YAMLallowed_tools,disallowed_tools, andpermission_mode.
Documentation
- Clarify high-level SDK guidance and refresh architecture/config references for the built-in tool API.
0.8.0 - 2026-05-08
Changed (breaking)
- Replace the legacy text-only
Agent.Run(ctx, input)path withAgent.Run(ctx, session, input) (RunResult, error). - Remove
Agent.RunDetailed,Agent.RunSession,Agent.Messages, andAgent.Reset; callers now own conversation state throughSession. - Update
Agent.RunStreamto require an explicitSession.
CLI
- Migrate
cmd/enno, plain REPL fallback, and Bubble Tea TUI to the explicitSessionAPI. - Keep CLI output behavior unchanged by printing
RunResult.Content.
Documentation
- Update README, SDK guide, design notes, migration guide, examples, and agent guidance for the explicit-session SDK.
0.7.0 - 2026-05-08
Added
- SDK detailed run APIs with
RunDetailed,RunStream,RunSession,RunResult, per-round usage, stop reasons, and tool-call metadata. - Provider-neutral request options for temperature, max output tokens, tool choice, response formats, and metadata.
- Lifecycle hooks and policies for provider calls, tool calls, compaction, and task reminders.
- Session cloning/reset support for applications that persist or branch conversation state.
- Schema builder helpers, structured tool results, and early tool definition validation.
- Consistent built-in tool output limits and timeout options across filesystem, shell, grep, glob, and subagent tools.
Changed
- Refactored the agent loop around explicit sessions, policies, hooks, and detailed execution state.
- OpenAI-compatible and Anthropic providers now map shared SDK request options where supported.
- OpenAI-compatible provider now supports Chat Completions streaming.
Documentation
- Expanded SDK usage and design docs for advanced APIs, hooks, streaming, sessions, and built-in tool options.
- Added a migration guide and marked the SDK improvement checklist complete.
0.6.2 - 2026-05-08
Documentation
- Split
docs/usage.mdinto separate guides: SDK 使用指南 and CLI 使用指南. - Update cross-references in
README.md,CLAUDE.md, anddocs/usage.md.
0.6.1 - 2026-05-07
Fixed
compaction_impl: declare compaction defaultconstvalues as untyped integers in one block (avoids “only the first constant has an explicit type” / mixed typing in the same group). Behavior unchanged.
[0.6.0] - 2026-05-07
Changed (breaking)
grep/glob: registered tool names are nowgrepandglob(wereGrep/Glob).subagent: child-agent tool registered name issubagent(wastask).
CLI / TUI
- Button-only mouse tracking (
MouseButtonEvents): wheel scrolls the main transcript when the pointer is over that pane; ↑ / ↓ navigate input history; drag-select may require Shift in some terminals. - Removed F9 transcript-to-clipboard shortcut.
Documentation
- README, usage, design, examples, and agent guidance updated for renames and TUI behavior.
[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.
v0.8.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.8.0 - 2026-05-08
Changed (breaking)
- Replace the legacy text-only
Agent.Run(ctx, input)path withAgent.Run(ctx, session, input) (RunResult, error). - Remove
Agent.RunDetailed,Agent.RunSession,Agent.Messages, andAgent.Reset; callers now own conversation state throughSession. - Update
Agent.RunStreamto require an explicitSession.
CLI
- Migrate
cmd/enno, plain REPL fallback, and Bubble Tea TUI to the explicitSessionAPI. - Keep CLI output behavior unchanged by printing
RunResult.Content.
Documentation
- Update README, SDK guide, design notes, migration guide, examples, and agent guidance for the explicit-session SDK.
0.7.0 - 2026-05-08
Added
- SDK detailed run APIs with
RunDetailed,RunStream,RunSession,RunResult, per-round usage, stop reasons, and tool-call metadata. - Provider-neutral request options for temperature, max output tokens, tool choice, response formats, and metadata.
- Lifecycle hooks and policies for provider calls, tool calls, compaction, and task reminders.
- Session cloning/reset support for applications that persist or branch conversation state.
- Schema builder helpers, structured tool results, and early tool definition validation.
- Consistent built-in tool output limits and timeout options across filesystem, shell, grep, glob, and subagent tools.
Changed
- Refactored the agent loop around explicit sessions, policies, hooks, and detailed execution state.
- OpenAI-compatible and Anthropic providers now map shared SDK request options where supported.
- OpenAI-compatible provider now supports Chat Completions streaming.
Documentation
- Expanded SDK usage and design docs for advanced APIs, hooks, streaming, sessions, and built-in tool options.
- Added a migration guide and marked the SDK improvement checklist complete.
0.6.2 - 2026-05-08
Documentation
- Split
docs/usage.mdinto separate guides: SDK 使用指南 and CLI 使用指南. - Update cross-references in
README.md,CLAUDE.md, anddocs/usage.md.
0.6.1 - 2026-05-07
Fixed
compaction_impl: declare compaction defaultconstvalues as untyped integers in one block (avoids “only the first constant has an explicit type” / mixed typing in the same group). Behavior unchanged.
0.6.0 - 2026-05-07
Changed (breaking)
grep/glob: registered tool names are nowgrepandglob(wereGrep/Glob).subagent: child-agent tool registered name issubagent(wastask).
CLI / TUI
- Button-only mouse tracking (
MouseButtonEvents): wheel scrolls the main transcript when the pointer is over that pane; ↑ / ↓ navigate input history; drag-select may require Shift in some terminals. - Removed F9 transcript-to-clipboard shortcut.
Documentation
- README, usage, design, examples, and agent guidance updated for renames and TUI behavior.
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.7.0...v0.8.0
v0.7.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.7.0 - 2026-05-08
Added
- SDK detailed run APIs with
RunDetailed,RunStream,RunSession,RunResult, per-round usage, stop reasons, and tool-call metadata. - Provider-neutral request options for temperature, max output tokens, tool choice, response formats, and metadata.
- Lifecycle hooks and policies for provider calls, tool calls, compaction, and task reminders.
- Session cloning/reset support for applications that persist or branch conversation state.
- Schema builder helpers, structured tool results, and early tool definition validation.
- Consistent built-in tool output limits and timeout options across filesystem, shell, grep, glob, and subagent tools.
Changed
- Refactored the agent loop around explicit sessions, policies, hooks, and detailed execution state.
- OpenAI-compatible and Anthropic providers now map shared SDK request options where supported.
- OpenAI-compatible provider now supports Chat Completions streaming.
Documentation
- Expanded SDK usage and design docs for advanced APIs, hooks, streaming, sessions, and built-in tool options.
- Added a migration guide and marked the SDK improvement checklist complete.
0.6.2 - 2026-05-08
Documentation
- Split
docs/usage.mdinto separate guides: SDK 使用指南 and CLI 使用指南. - Update cross-references in
README.md,CLAUDE.md, anddocs/usage.md.
0.6.1 - 2026-05-07
Fixed
compaction_impl: declare compaction defaultconstvalues as untyped integers in one block (avoids “only the first constant has an explicit type” / mixed typing in the same group). Behavior unchanged.
0.6.0 - 2026-05-07
Changed (breaking)
grep/glob: registered tool names are nowgrepandglob(wereGrep/Glob).subagent: child-agent tool registered name issubagent(wastask).
CLI / TUI
- Button-only mouse tracking (
MouseButtonEvents): wheel scrolls the main transcript when the pointer is over that pane; ↑ / ↓ navigate input history; drag-select may require Shift in some terminals. - Removed F9 transcript-to-clipboard shortcut.
Documentation
- README, usage, design, examples, and agent guidance updated for renames and TUI behavior.
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.6.2...v0.7.0
v0.6.2
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.6.2 - 2026-05-08
Documentation
- Split
docs/usage.mdinto separate guides: SDK 使用指南 and CLI 使用指南. - Update cross-references in
README.md,CLAUDE.md, anddocs/usage.md.
0.6.1 - 2026-05-07
Fixed
compaction_impl: declare compaction defaultconstvalues as untyped integers in one block (avoids “only the first constant has an explicit type” / mixed typing in the same group). Behavior unchanged.
0.6.0 - 2026-05-07
Changed (breaking)
grep/glob: registered tool names are nowgrepandglob(wereGrep/Glob).subagent: child-agent tool registered name issubagent(wastask).
CLI / TUI
- Button-only mouse tracking (
MouseButtonEvents): wheel scrolls the main transcript when the pointer is over that pane; ↑ / ↓ navigate input history; drag-select may require Shift in some terminals. - Removed F9 transcript-to-clipboard shortcut.
Documentation
- README, usage, design, examples, and agent guidance updated for renames and TUI behavior.
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.5.0...v0.6.2
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
v0.4.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.
Unreleased
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.3.1...v0.4.0
v0.3.1
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.
Unreleased
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.1.0...v0.3.1
v0.1.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.
Unreleased
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: https://github.com/dean2021/enno/commits/v0.1.0