Files
scud_ai/docs/CHANGELOG.md
T

8.2 KiB
Raw Blame History

📋 История изменений (CHANGELOG)

Все ключевые изменения архитектуры, инструментов и модулей проекта SCUD Orion AI фиксируются в данном файле[cite: 6].


[2026-08-19] — Инлайн-редактор задач, интеллектуальный ContextManager и стабилизация Function Calling

✨ Добавлено

  • Инлайн-редактирование задач (task_widget.js / tasks.py):
    • Добавлена кнопка редактирования (✏️) на каждой карточке задачи.
    • Карточка трансформируется в инлайн-форму с тремя полями: текст задачи, HTML5-пикер календаря планируемого срока и выпадающий список важности (LOW, MEDIUM, HIGH, CRITICAL).
    • Добавлен REST API эндпоинт PATCH /api/v1/tasks/{task_id} с поддержкой комплексного обновления полей в SQLite.
    • В карточки выведено отображение даты создания задачи.
  • Интеллектуальный ContextManager (context_manager.py):
    • Служебные запросы и карточки инструментов сохраняются синхронными парами (is_ephemeral = 1) и атомарно удаляются при завершении операций.
    • Свободные диалоги оператора (включая темы Topic Drift) сохраняются в постоянную историю (is_ephemeral = 0) и не стираются при закрытии сессий промпта/задач.
  • Поддержка Y-снапшотов (db_snapshots.py):
    • Исправлен SQL-запрос db_get_snapshots для точного извлечения ночных и фоновых срезов с префиксом Y (например, Y20260817-003).

🔧 Изменено

  • modules/web_api/llm/agent.py:
    • Полностью удалены эвристические текстовые фильтры и принудительные сортировки инструментов.
    • Настроен нативный возврат и исполнение инструментов без зацикливания модели.
    • Устранена ошибка UnboundLocalError при вызове справочных инструментов.
  • modules/web_api/llm/schemas.py:
    • Очищены описания инструментов от агрессивных директив и капса, стабилизирована селективность Function Calling для Qwen 2.5.
  • modules/web_api/llm/core/ollama_client.py:
    • Оптимизированы параметры генерации для Function Calling (repeat_penalty: 1.0, presence_penalty: 0.0, temperature: 0.0), что исключило спам несколькими вызовами инструментов на один запрос.
  • modules/web_api/static/js/chat/task_widget.js:
    • Фильтр по умолчанию переведен на вкладку «В работе» (IN_PROGRESS).

[2026-08-18] — Двухфазный жизненный цикл сессий, двусторонний Diff и Topic Drift Guard

✨ Добавлено

  • Двусторонний клиентский Diff (core.js): Реализован алгоритм сравнения черновика с baseline-промптом. Удаленные строки остаются на экране с красным зачеркиванием [УДАЛЕНИЕ], а добавленные/измененные строки выделяются красной рамкой с авто-отступами.
  • Topic Drift Guard (agent.py): Внедрен двухуровневый контроль смены темы:
    • Мгновенный сброс стейта и зачистка эфемерных сообщений при вызове сторонних инструментов (задачи, снапшоты, база).
    • Мягкий счетчик отвлечений (idle_turns = 3) в свободном диалоге с выводом напоминания и кнопок из tool_action_registry.
  • Команда context purge в CLI (db_cli.py): Добавлен флаг --all для полной очистки таблицы chat_messages и сброса стейтов сессий.

🔧 Изменено

  • modules/web_api/llm/agent.py:
    • Прямой просмотр промпта (db_get_system_prompt) переведен в прозрачный режим без блокировки строки ввода и без лишних кнопок.
    • В инструмент db_prompt_node_edit добавлена передача исходного baseline_prompt для точного сопоставления правок в UI.
  • modules/web_api/llm/core/fast_path.py: Оптимизирована зачистка эфемерных сообщений при кликах на кнопки фазы follow-up.

[2026-08-17] — Внедрение CLI-инспекции контекста и переход на нативный Function Calling

✨ Добавлено

  • scripts/db_cli.py: Добавлена команда context для инспекции истории сообщений chat_messages по сессиям с визуальным отображением флагов [ЭФЕМЕРНОЕ][cite: 6].
  • ROADMAP.md: Сформирована актуальная дорожная карта с планом отказа от регулярных выражений в пользу нативного Function Calling[cite: 6].

🔧 Изменено

  • modules/web_api/llm/db_tools.py: Удалены устаревшие неиспользуемые функции и заглушки счетчиков простоя[cite: 6].
  • modules/web_api/static/js/chat/core.js: Внедрена поддержка вызова инлайн-редактора черновика промпта прямо из окна диалога[cite: 6].

[2026-08-15] — Реляционная архитектура системного промпта

✨ Добавлено

  • system_prompt_nodes: Создана таблица реляционных узлов промпта с индексацией по разделам и пунктам (section_id, item_id)[cite: 6].
  • db_prompt_node_edit: Добавлен инструмент точечного добавления, изменения и удаления пунктов системного промпта[cite: 6].
  • Инлайн-редактор: Добавлен визуальный diff-просмотр изменений с подсветкой и кнопкой [✏️ Редактировать][cite: 6].

🔧 Изменено

  • modules/web_api/llm/agent.py: Генерация активного системного промпта переведена на динамическую сборку из реляционных узлов SQLite[cite: 6].
  • modules/web_api/llm/core/fast_path.py: Обработка кнопок «Подтвердить» и «Отменить» переведена на атомарную запись узлов в базу данных[cite: 6].

[2026-08-10] — Механизм эфемерных сообщений и очистки диалога

✨ Добавлено

  • Эфемерные сообщения (is_ephemeral): Маркировка временных сервисных ответов и черновиков[cite: 6].
  • db_purge_ephemeral_messages: Механизм физической зачистки временных записей из SQLite при завершении операций[cite: 6].
  • Интерактивные виджеты: Поддержка карточек задач (TASK_INTERACTIVE_CARD) с кнопками быстрого действия[cite: 6].