revise June 2022 form errors articles
Build and deploy / deploy (push) Successful in 16s

This commit is contained in:
2026-07-31 13:48:48 +03:00
parent 98a64abeb7
commit 2bfc9d929f
7 changed files with 625 additions and 1 deletions
@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="720" viewBox="0 0 1200 720" role="img" aria-labelledby="title desc">
<title id="title">Диагностика retry и локального rollback формы</title>
<desc id="desc">Схема разделяет блокировку локально невалидного ввода, блокировку второго retry, игнорирование старого ответа, принятие нового и одноразовый локальный rollback последнего снимка.</desc>
<rect width="1200" height="720" fill="#f8f9fc"/>
<text x="60" y="66" font-family="Arial, sans-serif" font-size="38" font-weight="700" fill="#172033">Диагностика: что остановить и что можно вернуть</text>
<text x="60" y="110" font-family="Arial, sans-serif" font-size="25" fill="#536079">Retry создаёт новую попытку. Rollback возвращает только локальный accepted snapshot.</text>
<g font-family="Arial, sans-serif">
<rect x="70" y="170" width="255" height="110" rx="16" fill="#fff0f0" stroke="#c73743" stroke-width="3"/>
<text x="98" y="210" font-size="28" font-weight="700" fill="#172033">1. local invalid</text><text x="98" y="244" font-size="22" fill="#33415c">submit blocked</text>
<rect x="70" y="372" width="255" height="110" rx="16" fill="#fff8de" stroke="#b18200" stroke-width="3"/>
<text x="98" y="412" font-size="28" font-weight="700" fill="#172033">2. active attempt</text><text x="98" y="446" font-size="22" fill="#33415c">second retry blocked</text>
<rect x="455" y="170" width="295" height="110" rx="16" fill="#e3f5f4" stroke="#147a75" stroke-width="3"/>
<text x="483" y="210" font-size="28" font-weight="700" fill="#172033">3. old response</text><text x="483" y="244" font-size="22" fill="#33415c">stale → ignored</text>
<rect x="455" y="372" width="295" height="110" rx="16" fill="#e9edff" stroke="#536dfe" stroke-width="3"/>
<text x="483" y="412" font-size="28" font-weight="700" fill="#172033">4. matching retry</text><text x="483" y="446" font-size="22" fill="#33415c">accepted snapshot stored</text>
<rect x="865" y="270" width="270" height="140" rx="16" fill="#e7f6ed" stroke="#198754" stroke-width="3"/>
<text x="893" y="310" font-size="28" font-weight="700" fill="#172033">5. local rollback</text><text x="893" y="344" font-size="22" fill="#33415c">restore accepted values</text><text x="893" y="374" font-size="22" fill="#33415c">version++ · one use</text>
</g>
<g fill="none" stroke="#536079" stroke-width="3" marker-end="url(#arrow)"><path d="M325 225H445"/><path d="M325 427H445"/><path d="M750 427H855"/><path d="M1000 410V510H602V492"/></g>
<g font-family="Arial, sans-serif" font-size="21" fill="#3e4a63"><text x="340" y="206">fix locally</text><text x="339" y="408">wait for result</text><text x="762" y="408">later local edit</text><text x="664" y="536">second rollback: nothing to rollback</text></g>
<rect x="60" y="602" width="1080" height="56" rx="11" fill="#172033"/>
<text x="84" y="637" font-family="Arial, sans-serif" font-size="20" fill="#ffffff">Нет вывода о HTTP abort, status code, server compensation или реальной доступности: это другие проверки.</text>
<defs><marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="#536079"/></marker></defs>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB