diff --git a/.gitattributes b/.gitattributes index 9464a26..c911825 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,3 +5,8 @@ *.jpg binary *.wav binary *.mp3 binary +# Источники заказчика в docs/spec/source/ +*.pdf binary +*.docx binary +*.xlsx binary +*.zip binary diff --git a/backend/app/domain/events.py b/backend/app/domain/events.py index 43da60f..4afdb9d 100644 --- a/backend/app/domain/events.py +++ b/backend/app/domain/events.py @@ -440,7 +440,7 @@ class CardReceived(BaseModel): class CardAck(BaseModel): - """Останавливает норматив `dds_ack` (≤ 4 с).""" + """Останавливает норматив `dds_ack` (≤ 30 с).""" type: Literal["card.ack"] = "card.ack" diff --git a/backend/app/domain/timers.py b/backend/app/domain/timers.py index c08dbd7..d222edc 100644 --- a/backend/app/domain/timers.py +++ b/backend/app/domain/timers.py @@ -55,7 +55,12 @@ NORMATIVES: dict[TimerCode, Normative] = { code=TimerCode.DDS_NOTIFY, title="Оповещение ДДС", limit_ms=60_000 ), TimerCode.DDS_ACK: Normative( - code=TimerCode.DDS_ACK, title="Подтверждение получения карточки", limit_ms=4_000 + # 30 секунд — ПП РФ № 1931 и памятка АРМ-112, а не ГОСТ: до получения + # датасета здесь стояло 4 секунды, взятые по догадке (docs/spec/DATASET.md). + code=TimerCode.DDS_ACK, + title="Подтверждение получения карточки", + limit_ms=30_000, + ref="ПП РФ № 1931", ), TimerCode.ZONE_CHECK: Normative( code=TimerCode.ZONE_CHECK, title="Проверка зоны ответственности", limit_ms=30_000 diff --git a/backend/scripts/llm_check.py b/backend/scripts/llm_check.py index 73b537c..0ff93ef 100644 --- a/backend/scripts/llm_check.py +++ b/backend/scripts/llm_check.py @@ -1,7 +1,9 @@ """make llm-check: один запрос к LLM, чтобы убедиться, что ключ и адрес рабочие. -Ключ берётся из backend/.env и никуда не печатается. Запускать там, где есть -сеть до провайдера: из WSL под VPN российские адреса недоступны. +Ключ берётся из backend/.env и никуда не печатается. Провайдер отвечает с машины +разработки напрямую; таймаут почти всегда означает не отказ провайдера, а окружение — +VPN-туннель или песочница, через которые российские адреса не проходят. Поэтому +проверять отсюда, а не из обёрток, и с той машины, на которой пойдёт занятие. """ import sys @@ -46,7 +48,8 @@ def main() -> int: ) except httpx.HTTPError as exc: print(f"\nсеть: {type(exc).__name__} — до провайдера не достучались.") - print("Проверь, что российские адреса идут мимо VPN.") + print("Это чаще про окружение, чем про провайдера: проверь, что российские") + print("адреса идут мимо VPN, и повтори с самой машины стенда.") return 2 elapsed = time.monotonic() - started diff --git a/frontend/src/shared/types/generated.ts b/frontend/src/shared/types/generated.ts index 812d80a..f2d013a 100644 --- a/frontend/src/shared/types/generated.ts +++ b/frontend/src/shared/types/generated.ts @@ -58,7 +58,7 @@ export interface CallerUtterance { mood: Mood; } -/** Останавливает норматив `dds_ack` (≤ 4 с). */ +/** Останавливает норматив `dds_ack` (≤ 30 с). */ export interface CardAck { type: "card.ack"; } diff --git a/ТЗ_ДГОЧСиПБ_финал_01092026ГСИ.docx b/ТЗ_ДГОЧСиПБ_финал_01092026ГСИ.docx deleted file mode 100644 index 532441e..0000000 Binary files a/ТЗ_ДГОЧСиПБ_финал_01092026ГСИ.docx and /dev/null differ