Skip to content

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 08 May 12:32
· 13 commits to main since this release

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/sdk for high-level built-in tool configuration and tool permissions.

Changed (breaking)

  • Move built-in tool implementations from public tools/* packages to internal/builtintools/*.
  • Migrate CLI assembly to sdk.Config.BuiltinTools and add YAML allowed_tools, disallowed_tools, and permission_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 with Agent.Run(ctx, session, input) (RunResult, error).
  • Remove Agent.RunDetailed, Agent.RunSession, Agent.Messages, and Agent.Reset; callers now own conversation state through Session.
  • Update Agent.RunStream to require an explicit Session.

CLI

  • Migrate cmd/enno, plain REPL fallback, and Bubble Tea TUI to the explicit Session API.
  • 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

0.6.1 - 2026-05-07

Fixed

  • compaction_impl: declare compaction default const values 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 now grep and glob (were Grep / Glob).
  • subagent: child-agent tool registered name is subagent (was task).

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 remains Root/.tasks/ when TasksDir is empty. CLI YAML task_graph / --no-task-graph (default: enabled). Replaces the removed todo tool.
  • tools/grep: Grep tool (Claude Code–compatible name) running rg with path scope under Config.Root; CLI YAML grep / flag --no-grep (default: grep enabled). Requires ripgrep installed.
  • tools/glob: Glob tool (Claude Code–compatible name) listing files with rg --files under Config.Root; CLI YAML glob / flag --no-glob (default: glob enabled). Requires ripgrep on PATH.
  • Optional context compaction (Config.Compaction): micro-trimming of older long tool results, automatic summarization when estimated input usage crosses a threshold (writes JSONL transcripts under TranscriptDir, default ~/.enno/transcripts when enabled), and a manual compact tool (same summarization path; must be the only tool call in that turn). Default off; extra model calls and disk writes when enabled. Implementation lives in compaction_impl.go in the root package (a separate compaction subpackage would import-cycle with enno).
  • tools/compact: registers the compact tool name for the runtime; CLI appends it when compaction is set in config.yaml.
  • tools/subagent: optional task tool that runs a child enno.Agent with isolated history; CLI can enable it with subagent: true in ~/.enno/config.yaml or disable with --no-subagent.
  • tools/loadskill: load SKILL.md skills from a directory, inject short descriptions into the system prompt, and register load_skill for on-demand full text; CLI merges default ~/.enno/skills with optional skills_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/todo and the todo tool: use task_* task graph tools instead. Agent “plan reminder” now tracks task_create / task_update / task_list / task_get and 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、上一轮 API InputTokens 与估算取 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.jsonl in 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/history package with Recorder (append-only writer) and LoadRecent (reader).
  • Add Project and SessionID fields 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-go to tview.

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.yaml only.
  • Moved CLI REPL/TUI implementation from the public runner package to internal/cliui.
  • Removed workdir and prompt from CLI YAML configuration.
  • Changed the CLI interactive mode to use a tui-go terminal UI.
  • Removed CLI support for ENNO_* provider configuration environment variables.

Added

  • Added automatic creation of a commented ~/.enno/config.yaml template 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.yaml and --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 enno core package with Agent, 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.REPL and runner.Once helpers.
  • Added installable CLI under cmd/enno.
  • Added usage, design, README, and agent guidance documentation.
  • Added repository verification through make verify.

Full Changelog: v0.8.0...v0.9.0