0.138.0

Added

  • Todo list для агентов — декларативный tool todo_write, позволяющий LLM планировать и отслеживать многошаговые задачи. Реализован по образцу opencode: LLM присылает полный список, сервер делает DELETE+INSERT в одной транзакции. Todo list привязан к agent_id, переживает рестарт и хранится в SQLite/PostgreSQL (миграция 085_todo). Tool всегда включён (без permission-gate, как read_file/list_dir); LLM обучается через 167-строчное description tool + guidance-секцию в ContextBuilder (buildTodoGuidance). Подмешивание в контекст LLM — только через историю tool-вызовов (как в opencode). Структура элемента: {content, status: pending|in_progress|completed|cancelled, priority: high|medium|low, position}. Ограничения: до 50 элементов, content до 500 символов.
  • Backend (Go): миграции 085_todo (4 файла SQLite+PG), структура store.Todo, методы ReplaceAgentTodos/ListAgentTodos в интерфейсе Store + реализации для SQLite/PostgreSQL/DualStore, tool internal/agent/tools/todo_write.go, guidance-секция, HTTP handler GET/PUT /api/v1/agents/{id}/todos, WS-broadcast todo.updated через WSHub.BroadcastTodoEvent (async, с фильтром по agent_id в hub-loop).
  • Frontend (Svelte 5): interface Todo в types.ts, группа api.todos, store todos.svelte.ts, обработка WS-события todo.updated, компонент TodosPanel.svelte (slide-over с прогресс-баром, статус-иконками и сводкой), кнопка «Задачи» в ChatHeader.
  • Тесты: store CRUD + изоляция агентов (6 тестов), tool execute + валидация (5 тестов), handler CRUD + MaxBytesReader + OnTodoChanged callback (10 тестов).