Files
flynn/CHANGELOG.md
T
William Valentin 6bb424cddc feat: add agent tools and sanitize tool names for Anthropic API
Add 8 new agent-callable tools (sessions.list/history/create/delete,
agents.list, message.send, cron.list/trigger) and sanitize tool names
at the API boundary (dots → underscores) to comply with Anthropic's
`^[a-zA-Z0-9_-]{1,128}` requirement. Reverse-maps sanitized names
back to internal names for hook callbacks and tool execution.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 12:23:09 -08:00

70 lines
4.2 KiB
Markdown

# Changelog
All notable changes to Flynn are documented in this file.
## [Unreleased]
### Added
- **Agent Tools: sessions.\*** -- 4 new agent-callable tools (`sessions.list`,
`sessions.history`, `sessions.create`, `sessions.delete`) wrapping SessionManager
for runtime session management by the AI agent
- **Agent Tools: agents.list** -- New tool exposing AgentConfigRegistry to the agent,
listing all registered agent configurations with tiers, profiles, and sandbox status
- **Agent Tools: message.send** -- Cross-channel messaging tool allowing the agent to
proactively send messages to any connected channel (Telegram, Discord, Slack, etc.)
- **Agent Tools: cron.\*** -- 2 new tools (`cron.list`, `cron.trigger`) for runtime
cron job management, allowing the agent to list and manually trigger scheduled jobs
- **Web UI Dashboard (P7)** -- Full SPA control dashboard at the gateway web UI with
four pages: Dashboard (health stats, channels, auto-refresh), Chat (session selector,
streaming tool events, markdown rendering), Sessions (list, history viewer, delete),
and Settings (hook pattern editor, tool list, config viewer). No build step — vanilla
JS with ES modules, hash-based routing, and WebSocket JSON-RPC client with auto-reconnect.
- **Gateway: sessions.delete** -- New handler to clear a session's message history
- **Gateway: sessions.switch** -- New handler to switch a WebSocket connection to a
different session
- **Gateway: system.channels** -- New handler listing active channel adapters and their
connection status
- **Gateway: system.usage** -- New handler returning aggregated usage stats (uptime,
sessions, connections, tools)
- **CLI Surface** -- Full command-line interface via `flynn` binary with 6 commands:
`start`, `tui`, `send`, `sessions`, `doctor`, `config`
- **Doctor Diagnostics** -- `flynn doctor` validates config, YAML parsing, schema,
env vars, data directory, session DB, model config, Telegram, MCP servers, and skills
- **Cron Scheduling** -- `automation.cron` config for scheduled agent messages with
output channel routing (e.g. fire a prompt at 9 AM, send the response to Telegram)
- **CronScheduler Channel Adapter** -- Implements `ChannelAdapter` interface for
cron-triggered messages through the standard agent pipeline
- **CLI Shared Utilities** -- Config loading, data dir resolution, secret redaction,
status formatting for all CLI commands
- **CronJobConfig Type Export** -- `CronJobConfig` type available from `config/index.ts`
### Changed
- **Gateway Server** -- `GatewayServerConfig` now accepts `channelRegistry` for
channel status reporting; static file server supports `.mjs`, `.png`, `.ico`, `.woff2`
- **Entry Points Refactored** -- `src/index.ts` and `src/tui.ts` now delegate to
the CLI module (`src/cli/index.ts`) instead of directly starting the daemon/TUI
- **Daemon Wiring** -- CronScheduler auto-registers in the channel registry when
`automation.cron` jobs are configured; channelRegistry passed to GatewayServer
## [0.1.0] - 2026-02-05
### Added
- **Core Agent** -- NativeAgent with conversation history and iterative tool use
- **Model Providers** -- Anthropic Claude, OpenAI, Ollama, llama.cpp with streaming
- **Model Router** -- Intelligent routing with fallback chains and tier switching
- **Telegram Bot** -- Full Telegram frontend with commands, confirmations, tool status
- **Terminal UI** -- Minimal (readline) and fullscreen (React/Ink) modes with
markdown rendering, streaming, model switching, and session transfer
- **Session Persistence** -- SQLite-backed sessions with multi-frontend support
- **Hook Engine** -- Pattern-based confirmation system for sensitive tool operations
- **Tool Framework** -- Registry, executor, and builtin tools (shell, file, web-fetch)
- **Channel Abstraction** -- Unified ChannelAdapter interface with Telegram and WebChat
- **WebSocket Gateway** -- JSON-RPC protocol with API key auth and web UI dashboard
- **MCP Integration** -- External tool server support via Model Context Protocol
- **Skills System** -- Extensible capability packages (bundled, managed, workspace tiers)
- **Config System** -- YAML config with Zod validation and env var expansion
- **Daemon Lifecycle** -- Graceful shutdown with ordered cleanup handlers