From 9fd1d3eb65001627335c9005acb28befc43a9045 Mon Sep 17 00:00:00 2001 From: heaven Date: Fri, 28 Aug 2026 01:17:04 +0300 Subject: [PATCH] Add engine idempotency to the unissued backend prompt: the canon promises a retry that converges and the engine refuses the same document on one path --- docs/BACKEND_SILENT_HARM_SESSION_PROMPT.md | 25 +++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/BACKEND_SILENT_HARM_SESSION_PROMPT.md b/docs/BACKEND_SILENT_HARM_SESSION_PROMPT.md index 5a2d0ee1..3fdc04e5 100644 --- a/docs/BACKEND_SILENT_HARM_SESSION_PROMPT.md +++ b/docs/BACKEND_SILENT_HARM_SESSION_PROMPT.md @@ -135,7 +135,30 @@ P9**, и положить туда новую причину НЕКУДА. Пр второй якорь показывает ветку `DispOK` с громким отказом на пустой `final_hash`, а не то, что строка обещает. **Установи текущую правду сам** — код первичен, строка бэклога вторична. -### §3.3. Чего в паке НЕТ — пропуски подписаны +### §3.3. ТРЕТИЙ пункт — идемпотентность, от которой зависит обещание канона + +⛔ **Добавлено 28.08 по находке воркфлоу-ревью платформы. Это НЕ «ещё один дефект» — это обещание, +которое канон УЖЕ даёт на проводе, а движок не держит.** + +Канон 0.5.0 обещает дословно: «**The remedy is to re-send the SAME document — the retry converges:** +what already landed is recognised, not duplicated, and a fully-landed document answers `200` with +`changed: false`». На этом обещании стоит вся раскладка класса **15** («шли тот же документ»). + +**Движок его нарушает как минимум в одном случае** (доказано исполнением через оракул репозитория): +`decline` поверхности ПОДПИСАННОГО сид-терма, у которой есть строка в дельте, — первый вызов принят, +**повтор ТОГО ЖЕ документа отказывает**. При частичной записи ре-сенд отбивается целиком, и +пользователь остаётся без пути вперёд: документ не применён, повторить нельзя. + +**Заказано:** повтор принятого документа обязан сходиться — молча признавать применённое, а не +отказывать. **Форма твоя.** Проверь заодно родню из того же ревью: **Д1** — `decline` не энтити-широк +на обратном пути (алиас возвращает отклонённую сущность, память глушит стоп навсегда); **Д3** — +потеря маркера после стопа съедает оплаченный подписной стоп молча (гард `LiftBankStop` писан до +памяти предъявления v16). По каждой реши: чинить здесь либо строкой с причиной. + +⚠ **Почему здесь, а не «когда-нибудь».** Смягчать канон я не стал: обещание правильное, дефект в +движке. Пока он открыт, деплой объявляет то, чего не держит — класс `PD-370`. + +### §3.4. Чего в паке НЕТ — пропуски подписаны - **Читающая сторона банка** (строки **221**/**224**/**226**) — форма разобрана консилиумом 27.08, но её потребитель (экран подписи) ЗАМОРОЖЕН, и строить проекцию без живого потребителя значило бы