From 140ec5b713f3bfe1efeef9a975a376c284911cfe Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Wed, 7 Oct 2026 02:51:53 +0400 Subject: [PATCH] =?UTF-8?q?docs(openspec):=20=D1=81=D0=BF=D0=B5=D0=BA?= =?UTF-8?q?=D0=B0=20=E2=80=94=20schema=5Fversion=20=D1=80=D0=B5=D0=B7?= =?UTF-8?q?=D1=83=D0=BB=D1=8C=D1=82=D0=B0=D1=82=D0=B0=201.0=20(=E2=84=9614?= =?UTF-8?q?),=20cleanup=20=D1=83=D0=B4=D0=B0=D0=BB=D1=8F=D0=B5=D1=82=20?= =?UTF-8?q?=D0=B2=D1=81=D1=91=20=D1=81=D0=BE=D0=B4=D0=B5=D1=80=D0=B6=D0=B8?= =?UTF-8?q?=D0=BC=D0=BE=D0=B5=20Output//?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2 --- .../specs/image-recognition-gateway/spec.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openspec/changes/slice-3a-ocr-normalizer/specs/image-recognition-gateway/spec.md b/openspec/changes/slice-3a-ocr-normalizer/specs/image-recognition-gateway/spec.md index 7dd5e64..3401f24 100644 --- a/openspec/changes/slice-3a-ocr-normalizer/specs/image-recognition-gateway/spec.md +++ b/openspec/changes/slice-3a-ocr-normalizer/specs/image-recognition-gateway/spec.md @@ -64,7 +64,7 @@ ### Requirement: Результат по контракту Сервис SHALL публиковать в `recognition.result` конверт по `recognition-result-message.schema.json` с `service.name = "scan-gateway"`, `Nats-Msg-Id = result::`; при `status ∈ {done, needs_check}` — файл -результата (`recognition-result.schema.json`, `schema_version = "1.2"`) в `results/{file_id}/{job_id}/result.json` и `result_s3`; +результата (`recognition-result.schema.json`, `schema_version = "1.0"` — `CONTRACT_VERSION` сервиса, решение №14; схема допускает любой MINOR) в `results/{file_id}/{job_id}/result.json` и `result_s3`; при неудаче публикации SHALL повторить её до трёх раз. Нормализатор получает склеенный ответ и SHALL считать файл успешным, если `error.code == ""` (поле `error` реального успешного ответа — `{"code": "", "message": ""}`, а не `null`; отсутствующий или `null` `error` ошибкой не считается), и ошибочным, если `error.code` непуст, `parse_error` не `null` @@ -125,7 +125,7 @@ ### Requirement: Очистка горячей папки под флагом При `SCAN_CLEANUP=true` после того, как готовый набор ответа прочитан и склеен в `raw/{job_id}.json` (независимо от -исхода нормализации), сервис SHALL удалить `//*.json`, сам каталог ``, входящий файл +исхода нормализации), сервис SHALL удалить всё содержимое `//` (json-файлы ответа и любые прочие) и сам каталог ``, входящий файл `/.`, его вариант `/..done` и временный `/...part`, если они существуют. При `SCAN_CLEANUP=false` (по умолчанию) сервис MUST NOT удалять ничего, включая осиротевшие временные файлы (`.part`, ставший целью успешной публикации, снимается самой записью — это завершение «rename без замены», а не очистка; ошибка его снятия