docs: update CHANGELOG and ROADMAP with section 10 (svodka/otchet split, Y-23:59:59)
This commit is contained in:
+61
-23
@@ -1,6 +1,58 @@
|
||||
# 📋 История изменений (CHANGELOG)
|
||||
|
||||
Все ключевые изменения архитектуры, инструментов и модулей проекта SCUD Orion AI фиксируются в данном файле[cite: 6].
|
||||
Все ключевые изменения архитектуры, инструментов и модулей проекта SCUD Orion AI фиксируются в данном файле.
|
||||
|
||||
## [3.2.0] — 2026-08-27
|
||||
### 🧠 Интеллектуальный арбитраж личностей, агрегация мульти-пропусков и автозакрытие смен
|
||||
|
||||
#### ✨ Добавлено:
|
||||
- **Кэш сопоставлений личностей (`person_identity_mapping`)**:
|
||||
- Создана таблица в SQLite (`core/schema.py`) для постоянного хранения подтвержденных связок между сырыми ФИО СКУД и эталонными ФИО 1С:ЗУП.
|
||||
- Поддержка мгновенного извлечения проверенных сопоставлений в `merger.py` (время выборки < 1 мс).
|
||||
- **Агрегация дубликатов пропусков и мульти-учеток СКУД (`merger.py`)**:
|
||||
- Функция `aggregate_scud_by_person` объединяет все карты/записи одного физлица: фиксирует самый ранний вход `min(valid_ins)`, самый поздний выход `max(valid_outs)` и итоговый статус присутствия.
|
||||
- Исключено ложное попадание сотрудников с несколькими пропусками (например, Кондрашова Е.В.) в категорию «неизвестно».
|
||||
- **Интеллектуальный выбор ставки совместителей 1С (`merger.py`)**:
|
||||
- Функция `select_best_zup_position` сопоставляет множественные должности одного сотрудника в 1С со СКУД и подтягивает ставку того подразделения, где человек находится физически.
|
||||
- **Автозакрытие незакрытых смен по Правилу 8.5ч (`excel_exporter.py`)**:
|
||||
- При наличии утреннего входа и отсутствии вечернего выхода у офисных сотрудников в детальном отчете за вчера расчетный выход ставится как `Вход + 8ч 30мин`, норма 8 часов и нулевое отклонение `0:00` (вместо ложного штрафа `-8:00`).
|
||||
- **Теневой ИИ-арбитраж нераспознанных ФИО (`text_reporter.py`)**:
|
||||
- Модуль `find_ai_identity_suggestions` выявляет нечеткие совпадения и опечатки операторов СКУД, выводя рекомендации для кадровой службы в блоке «💡 Предложения ИИ по сопоставлению ФИО».
|
||||
- **Расширение CLI-утилиты (`scripts/db_cli.py`)**:
|
||||
- Добавлены команды управления связками: `python scripts/db_cli.py mapping [list|add|del]`.
|
||||
|
||||
#### 🔧 Изменено:
|
||||
- **`services/scud_etl/anomaly_detector.py`**:
|
||||
- Добавлено авто-детектирование задвоенных карточек СКУД (`DUPLICATE_SCUD_CARD`) с передачей информации в ИИ-сводку.
|
||||
- **`main_etl.py`**:
|
||||
- Восстановлена передача сырых датасетов (`raw_scud_df`, `raw_staff_df`, `raw_absent_df`) в ИИ-аудитор и генерация диагностического дампа `СКУД_Сырые_данные_ДД.ММ.ГГГГ.xlsx`.
|
||||
|
||||
---
|
||||
|
||||
## [3.1.0] — 2026-08-25
|
||||
### 🛡️ Реляционный реестр исключений, Белый список и отказоустойчивость выгрузок
|
||||
|
||||
#### ✨ Добавлено:
|
||||
- **Реляционный реестр исключений (`exceptions_registry`)**:
|
||||
- Перенос исключений (`departments`, `positions`, `fio`, `position_keywords`) и белого списка (`include_fio`) из статического JSON в базу данных SQLite (`core/schema.py`).
|
||||
- Репозиторий `services/exceptions_repo.py` с функциями CRUD и авто-миграцией из `exceptions.json`.
|
||||
- **Белый список (`include_fio`)**:
|
||||
- Поддержка явного включения сотрудников в расчет контроллинга в обход должностных и отдельских фильтров (Тарасенко А.А., Журиков М.Н.).
|
||||
- **Управление исключениями в CLI (`scripts/db_cli.py`)**:
|
||||
- Добавлены команды `exceptions list`, `exceptions add -c ... -v ...`, `exceptions del`, `exceptions sync`.
|
||||
- **Резервный загрузчик кадровых отсутствий (`data_loader.py`)**:
|
||||
- Реализован каскадный fallback: `MS SQL 1C:ЗУП` (таймаут 30с) $\rightarrow$ резервный парсинг скопированных Excel-файлов `Отсутствия_*.xlsx` $\rightarrow$ `static_reason_workers.csv`.
|
||||
|
||||
#### 🔧 Изменено:
|
||||
- **Структура отчетов Excel (`excel_exporter.py`)**:
|
||||
- Изменен базовый путь сохранения отчетов на `output/reports/ГОД/МЕСЯЦ/`.
|
||||
- В Ежедневной сводке блок «В том числе на удаленной работе» вынесен под «Итого на работе», а блок «Исключения» размещен в самом низу с поддержкой группировки.
|
||||
- Добавлена защита от блокировок Excel (`PermissionError`/`OSError`): при занятости файла создается резервная копия с временной меткой.
|
||||
- **Подключение к СКУД (`services/scud_export.py`)**:
|
||||
- Актуализирован адрес сервера MS SQL Орион (`172.16.200.147\SQL`).
|
||||
- Добавлена защита инициализации файлового логгера от ошибок доступа прав пользователей.
|
||||
|
||||
---
|
||||
|
||||
## [3.0.0] — 2026-08-21
|
||||
### 🚀 Глубокий архитектурный рефакторинг (Unified Clean Architecture)
|
||||
@@ -71,42 +123,28 @@
|
||||
- Мягкий счетчик отвлечений (`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].
|
||||
* **`scripts/db_cli.py`**: Добавлена команда `context` для инспекции истории сообщений `chat_messages` по сессиям с визуальным отображением флагов `[ЭФЕМЕРНОЕ]`.
|
||||
* **`ROADMAP.md`**: Сформирована актуальная дорожная карта с планом отказа от регулярных выражений в пользу нативного Function Calling.
|
||||
|
||||
---
|
||||
|
||||
## [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].
|
||||
* **`system_prompt_nodes`**: Создана таблица реляционных узлов промпта с индексацией по разделам и пунктам (`section_id`, `item_id`).
|
||||
* **`db_prompt_node_edit`**: Добавлен инструмент точечного добавления, изменения и удаления пунктов системного промпта.
|
||||
* **Инлайн-редактор**: Добавлен визуальный diff-просмотр изменений с подсветкой и кнопкой `[✏️ Редактировать]`.
|
||||
|
||||
---
|
||||
|
||||
## [2026-08-10] — Механизм эфемерных сообщений и очистки диалога
|
||||
|
||||
### ✨ Добавлено
|
||||
* **Эфемерные сообщения (`is_ephemeral`)**: Маркировка временных сервисных ответов и черновиков[cite: 6].
|
||||
* **`db_purge_ephemeral_messages`**: Механизм физической зачистки временных записей из SQLite при завершении операций[cite: 6].
|
||||
* **Интерактивные виджеты**: Поддержка карточек задач (`TASK_INTERACTIVE_CARD`) с кнопками быстрого действия[cite: 6].
|
||||
* **Эфемерные сообщения (`is_ephemeral`)**: Маркировка временных сервисных ответов и черновиков.
|
||||
* **`db_purge_ephemeral_messages`**: Механизм физической зачистки временных записей из SQLite при завершении операций.
|
||||
* **Интерактивные виджеты**: Поддержка карточек задач (`TASK_INTERACTIVE_CARD`) с кнопками быстрого действия.
|
||||
Reference in New Issue
Block a user