kaifarikman
a35aa3f6a2
fix: защитить вход на втором узле от гонок
2026-09-27 18:11:51 +03:00
kaifarikman
88bb54fc24
lct-39: пауза останавливает действия и голос
2026-09-27 18:06:49 +03:00
kaifarikman
2757a34ed5
fix: сигнал не на связи переживает рестарт, самый строгий сигнал красит строку
2026-09-27 17:57:17 +03:00
kaifarikman
69b483f570
feat: сигналы реестра занятий: очередь, повторные отказы, курсант не на связи
2026-09-27 17:57:17 +03:00
kaifarikman
2304d94877
lct-39: пауза не искажает оценку ДДС и не блокирует завершённое занятие
2026-09-27 17:18:27 +03:00
kaifarikman
42f1da7f83
fix: разовая проверка не затирает более свежий локальный отзыв
...
lct-42: стейл-ответ SELECT, пришедший после конкурентного invalidate_login
на том же узле, откатывал поколение назад и снова принимал отозванную
cookie. После ожидания перепроверяем кэш и не перезаписываем более свежее
значение. Детерминированный тест гонки; SCALE-OUT.md отделяет старые
замеры от непроверенного кластерным смоуком изменения.
2026-09-27 17:13:01 +03:00
kaifarikman
b6617d7df8
fix: неизвестный узлу логин проверяется разово, не отзывается сразу
...
lct-42: узел кластера принимал вход другого узла первую секунду за отзыв
и рвал сокет FORBIDDEN. Неизвестный логин теперь проверяется разовым
SELECT auth_version, результат кэшируется, параллельные запросы одного
логина дедуплицируются; логина нет в users или БД недоступна — как раньше.
2026-09-27 17:05:29 +03:00
Ivan Gerasimov
3ce3e768e1
lct-38: каталог 209 служб из «СЛУЖБЫ 112» для ручного добавления в карточку
2026-09-27 16:52:11 +03:00
kaifarikman
b77d65c82e
lct-39: пауза занятия с пульта, таймеры и очередь ДДС стоят на время простоя
2026-09-27 16:35:13 +03:00
Ivan Gerasimov
a998b0c2f7
lct-37: норматив реакции ДДС на доклад бригады, отметка D6 и настраиваемый лимит
2026-09-27 16:26:13 +03:00
Ivan Gerasimov
3f5f57877a
test: HTTP-тесты разбора отметок не требуют PostgreSQL
2026-09-27 16:25:02 +03:00
Ivan Gerasimov
f98c464f4b
lct-35: преподаватель подтверждает, снимает и добавляет отметки D1–D6 с пересчётом балла
2026-09-27 16:13:21 +03:00
Ivan Gerasimov
b1797786d2
fix: partition smoke засчитывает 1012 и 1013 как fail-closed закрытие каналов
2026-09-27 15:41:41 +03:00
Ivan Gerasimov
aa6860fc6c
test: тесты не зависят от LLM-настроек личного .env и сети WSL2
2026-09-27 15:35:21 +03:00
Ivan Gerasimov
a2ce08f46a
fix: отозванная cookie не оживает, когда логина нет в users
2026-09-27 15:35:20 +03:00
GGlamer
b4420cea16
docs: README для жюри со скриншотами экранов
2026-09-27 13:20:56 +03:00
gglamer
9f2ef7691f
refactor: оценка занятия по неизменяемому снимку, грамматика параметром, тесты без SimpleNamespace
2026-09-27 08:06:05 +00:00
gglamer
a11206527a
refactor: одна функция метрики норматива времени для карточки 112 и карточки ДДС
2026-09-27 08:06:05 +00:00
gglamer
36a9862a94
refactor: общий вход в сокет занятия и выполнение команды с fencing вместо копий в четырёх каналах
2026-09-27 07:56:12 +00:00
gglamer
f9b6fafb7c
refactor: завершение занятия — одна операция end_session вместо четырёх копий в сокетах
2026-09-27 07:40:31 +00:00
gglamer
0d7bbf39b3
refactor: lease занятий ведёт хаб поверх SessionStore, main и admin не читают реестр хаба напрямую
2026-09-26 23:17:04 +00:00
gglamer
47cb85ee02
refactor: запись хода занятия — один commit SessionStore на операцию вместо журнала и checkpoint
...
Правка балла с пульта и из отчёта идёт одной доменной операцией: раньше WS-путь не обновлял full_report живой сессии.
2026-09-26 22:48:24 +00:00
gglamer
72c6a7cfa3
refactor: снимок занятия — model_dump сохраняемой части сессии вместо ручного перечисления полей
2026-09-26 22:13:35 +00:00
gglamer
64313a62fb
refactor: прогресс звонящего вынесен в модели SlotProgress и PersonaProgress
2026-09-26 22:13:35 +00:00
gglamer
fca353fdd0
refactor: правила пульта ДДС перенесены в DdsDesk.apply, сокет станции — только транспорт
2026-09-26 22:01:27 +00:00
gglamer
5a3761a830
refactor: пульт ДДС владеет живыми карточками, сессия не копирует их поля
...
Связка 112→ДДС больше не подменяет таймеры оператора таймерами первой
карточки ДДС, поэтому время заполнения карточки 112 снова попадает в оценку.
2026-09-26 21:38:09 +00:00
GGlamer
c0fa0a50a1
Merge branch 'feat/finish-card-status'
...
fix: card_status в отчёте ДДС берётся у карточки, активной при завершении
2026-09-27 00:12:18 +03:00
gglamer
12329e7c5d
fix: card_status в отчёте ДДС берётся у карточки, активной при завершении
2026-09-26 21:12:00 +00:00
GGlamer
783b63a683
Merge branch 'feat/session-report-hook'
...
refactor: общий hook отчёта сессии и объект параметров useControl.start
2026-09-27 00:09:40 +03:00
gglamer
3dc116534d
refactor: useControl.start принимает объект параметров вместо 14 позиционных
2026-09-26 20:59:50 +00:00
gglamer
f6d0653e68
refactor: отчёт сессии загружается одним hook useSessionReport с повтором 409
2026-09-26 20:59:50 +00:00
gglamer
a36ec619e4
fix: пульт не теряет команду при опросе fencing — чтение сокета больше не отменяется
2026-09-26 20:58:02 +00:00
gglamer
93c5f063f3
fix: кириллический шрифт DejaVu в пакете для экспорта PDF без системных шрифтов
2026-09-26 20:47:10 +00:00
GGlamer
02c86e457d
Merge branch 'feat/dds-ack-limit'
...
lct-11: срок решения на пульте ДДС из снимка сервера
2026-09-26 23:01:15 +03:00
GGlamer
69de83f232
Merge branch 'feat/checkpoint-fields'
...
fix: снимок сессии сохраняет раскрытые факты и поля завершённых карточек ДДС
2026-09-26 23:01:11 +03:00
gglamer
47bda8fba9
lct-11: срок решения на пульте ДДС из снимка сервера
2026-09-26 19:58:17 +00:00
gglamer
83b7f8ffdd
fix: timer.tick доходит до пульта ДДС
2026-09-26 19:57:43 +00:00
gglamer
eb5de96ed7
fix: снимок сессии сохраняет раскрытые факты и поля завершённых карточек ДДС
2026-09-26 19:56:50 +00:00
gglamer
1d6b4d67da
fix: отчёт и чек-лист при передаче 112→ДДС по сценарию оператора
2026-09-26 19:55:12 +00:00
gglamer
491655de5c
fix: сокеты dev не закрываются при недоступной БД поколений
2026-09-26 19:27:52 +00:00
gglamer
fb9c27977d
perf: разбор библиотеки сценариев один раз на прогон тестов
2026-09-26 19:27:52 +00:00
gglamer
d26cf2365d
perf: разбор YAML сценариев через libyaml
2026-09-26 19:27:52 +00:00
gglamer
daa4f8c4f1
fix: подключить рекомендации модели к разбору, убрать лишнюю проверку грамматики ответа ДДС, задать настроение персоне worried
2026-09-26 17:14:04 +00:00
gglamer
3ae682a354
docs: актуализировать документацию под текущий продукт и код
...
Продукт сместился на упражнение ДДС с готовой карточкой, а часть
документов описывала голосовой тренажёр, LLM-судью и несуществующие
модули. Всё сверено с кодом.
- tasks/README.md: статусы карточек по коду, lct-13 снята
- arch: дерево модулей BACKEND/FRONTEND по коду, STT по умолчанию
Whisper small, события и маршруты CONTRACT по events.py и API
- product: разбор, методика, режимы и звонящий без судьи и
нереализованных функций (автопроигрывание эталона, ЭРА-ГЛОНАСС)
- spec, hackathon: нормативы настраиваемые, формат сценария по схеме,
питч под ДДС, исторические решения помечены датой
- удалены посторонний 1.md и отработанные гайды lct-01 из корня
2026-09-26 17:13:56 +00:00
andreysk0304
7237265833
Complete training workflow and acceptance hardening
2026-09-26 17:13:45 +00:00
andreysk0304
4c4b91064f
Complete DDS training workflow and delivery package
2026-09-24 01:10:49 +03:00
andreysk0304
68dd83c7c2
Complete incident selection and 112 to DDS workflow
2026-09-21 20:10:57 +03:00
andreysk0304
0526b11f91
Implement DDS exercise, customer UI and local demo
2026-09-21 19:56:13 +03:00
andreysk0304
cec84ffcd0
Implement local task 09 training workflows
2026-09-21 17:40:54 +03:00
Ivan Gerasimov
e081fa410b
новое чуть
2026-09-20 10:05:43 +03:00