# πŸ“‹ Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (CHANGELOG) ВсС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ измСнСния Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, инструмСнтов ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° SCUD Orion AI Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅[cite: 6]. ## [3.0.0] β€” 2026-08-21 ### πŸš€ Π“Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΉ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ (Unified Clean Architecture) #### Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ: - **ΠŸΠ°ΠΊΠ΅Ρ‚ ядра `core/`:** - `core/connection.py`: Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ SQLite-ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ WAL-Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΈ row_factory. - `core/schema.py`: Сдиная Ρ‚ΠΎΡ‡ΠΊΠ° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ схСмы Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ индСксов. - `core/repositories/`: Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ `scud_repo.py` ΠΈ `zup_repo.py`. - **Π”ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ сСрвисы `services/`:** - `services/tasks/`: полная изоляция Π»ΠΎΠ³ΠΈΠΊΠΈ Π·Π°Π΄Π°Ρ‡ (CRUD, Markdown-экспорт, гСнСрация `ROADMAP.md`). - `services/prompts/`: Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹ΠΉ сСрвис систСмного ΠΏΡ€ΠΎΠΌΠΏΡ‚Π°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€Π΅Π²ΡŒΡŽ, гСнСрация HTML-Diff ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»ΠΎΠ² (`BATCH_DELETE`). - `services/snapshots/`: бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ° срСзов Π‘ΠšΠ£Π” с Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ Ρ„ΠΈΠ½ΠΈΡˆΠ½Ρ‹Ρ… Y-ΡΠ½Π°ΠΏΡˆΠΎΡ‚ΠΎΠ². - `services/knowledge/`: сСрвис Π±Π°Π·Ρ‹ Π·Π½Π°Π½ΠΈΠΉ ΠΏΡ€Π°Π²ΠΈΠ» ΠΈ синонимов ΠΎΡ‚Π΄Π΅Π»ΠΎΠ². - `services/scud_etl/`: ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ETL-ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ (`pipeline.py`, `anomaly_detector.py`, `merger.py`, `sql_queries.py`). - **ИИ-оркСстратор `modules/ai_engine/`:** - ДСкомпозиция ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠ³ΠΎ `agent.py` Π½Π° ΡƒΠ·ΠΊΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ `handlers/` ΠΈ динамичСский контСкст-Π±ΠΈΠ»Π΄Π΅Ρ€ `context_builder.py`. - Двухконтурная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°: Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Function Calling + сСмантичСский ΡΡ‚Ρ€Π°Ρ…ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ½ΠΆΠ΅ΠΊΡ‚ΠΎΡ€ (`tool_injector.py`). - Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Topic Drift ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ с Π²Π΅ΠΆΠ»ΠΈΠ²Ρ‹ΠΌ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ΠΌ Π½Π° 3-ΠΉ шаг ΠΈ автоочисткой эфСмСрных сообщСний Π½Π° 4-ΠΉ. - **Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ UI:** - Кнопка «✏️ Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ» прямо Π² ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ΅ просмотра систСмного ΠΏΡ€ΠΎΠΌΠΏΡ‚Π° с ΠΈΠ½Π»Π°ΠΉΠ½-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ. #### Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ: - УстранСна ΡƒΡ‚Π΅Ρ‡ΠΊΠ° систСмного ΠΏΡ€ΠΎΠΌΠΏΡ‚Π° Π² постоянный контСкст (`chat_messages`). - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ошибки нСсоотвСтствия сигнатур (`TypeError: create_prompt_preview`, `save_full_prompt_draft`, `get_snapshots_registry`) Π² Fast-Path. - УстранСна Π³Π°Π»Π»ΡŽΡ†ΠΈΠ½Π°Ρ†ΠΈΡ слов-ΠΏΠ°Ρ€Π°Π·ΠΈΡ‚ΠΎΠ² (Β«ΠŸΠΎΡ‡Π΅ΠΌΡƒΡ‡ΠΊΠ°Β», Β«ΠŸΠΎΡ‡Π΅ΠΌΡƒΡ‡Ρ‚ΠΎΒ») Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°. - Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 2.3 Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ΅Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡. #### Π£Π΄Π°Π»Π΅Π½ΠΎ: - Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹-Π΄ΡƒΠ±Π»ΠΈ: `modules/web_api/llm/db/db_tasks.py`, `db_snapshots.py`, `prompt_merger.py`. --- ## [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].