diff --git a/openspec/changes/nats-files-subjects/.openspec.yaml b/openspec/changes/archive/2026-10-08-nats-files-subjects/.openspec.yaml similarity index 100% rename from openspec/changes/nats-files-subjects/.openspec.yaml rename to openspec/changes/archive/2026-10-08-nats-files-subjects/.openspec.yaml diff --git a/openspec/changes/nats-files-subjects/design.md b/openspec/changes/archive/2026-10-08-nats-files-subjects/design.md similarity index 100% rename from openspec/changes/nats-files-subjects/design.md rename to openspec/changes/archive/2026-10-08-nats-files-subjects/design.md diff --git a/openspec/changes/nats-files-subjects/proposal.md b/openspec/changes/archive/2026-10-08-nats-files-subjects/proposal.md similarity index 100% rename from openspec/changes/nats-files-subjects/proposal.md rename to openspec/changes/archive/2026-10-08-nats-files-subjects/proposal.md diff --git a/openspec/changes/nats-files-subjects/specs/recognition-job-exchange/spec.md b/openspec/changes/archive/2026-10-08-nats-files-subjects/specs/recognition-job-exchange/spec.md similarity index 100% rename from openspec/changes/nats-files-subjects/specs/recognition-job-exchange/spec.md rename to openspec/changes/archive/2026-10-08-nats-files-subjects/specs/recognition-job-exchange/spec.md diff --git a/openspec/changes/nats-files-subjects/tasks.md b/openspec/changes/archive/2026-10-08-nats-files-subjects/tasks.md similarity index 100% rename from openspec/changes/nats-files-subjects/tasks.md rename to openspec/changes/archive/2026-10-08-nats-files-subjects/tasks.md diff --git a/openspec/specs/recognition-job-exchange/spec.md b/openspec/specs/recognition-job-exchange/spec.md index a727a4f..5f6d20f 100644 --- a/openspec/specs/recognition-job-exchange/spec.md +++ b/openspec/specs/recognition-job-exchange/spec.md @@ -16,7 +16,7 @@ #### Scenario: Публикация запроса парсеру - **WHEN** в `recognition_job` вставлена строка `queued` с `pipeline = tabular`, связанная со `stored_file` (XLSX) и его `s3_object` -- **THEN** в течение 10 с в `recognition.tabular.request` появляется сообщение, проходящее схему запроса, с `job_id`, +- **THEN** в течение 10 с в `files.tabular_uploaded` появляется сообщение, проходящее схему запроса, с `job_id`, `file_id`, `s3.key` исходника, `reply_deadline`, `attempt = 1`, а строка переходит в `published` с заполненным `request_msg_id` #### Scenario: NATS недоступен @@ -24,7 +24,7 @@ - **THEN** задание остаётся `queued`, ошибка залогирована, следующий цикл повторяет публикацию ### Requirement: Ack сервиса переводит задание в `processing` -Получив в `recognition.result` конверт со `status = processing` для задания в `published`, ядро SHALL установить +Получив в `files.tabular_parsed` конверт со `status = processing` для задания в `published`, ядро SHALL установить `status = processing`, `started_at`, `service_name`, `service_version` и перевести файл задания в `stored_file.status = PROCESSING`, если `current_recognition_job_id` файла равен этому заданию. Повторный ack для задания в `processing` SHALL игнорироваться; ack для задания в другом статусе SHALL логироваться и не менять задание. @@ -91,7 +91,7 @@ ### Requirement: Соединение с NATS по шаблону, без JetStream Ядро SHALL подключаться к NATS с nkeys-seed и JWT, если заданы `OPENBAO__NATS__NATS_SEED/NATS_JWT`, и без учётных данных, -если они пусты; подписываться на `recognition.result` в queue group `arm-core`; переподключаться автоматически. +если они пусты; подписываться на `files.tabular_parsed` в queue group `arm-core`; переподключаться автоматически. Stream'ы и consumer'ы JetStream MUST NOT требоваться. Фоновые задачи SHALL запускаться при `NATS_ENABLED=true`. #### Scenario: Dev-окружение compose