Correct the executed S3 prompt where it told the frontend to subtract open holds from the balance twice

This commit is contained in:
heaven 2026-08-08 02:32:20 +03:00
parent f0d8fedc4f
commit dde6d389a9
2 changed files with 9 additions and 1 deletions

View file

@ -184,7 +184,7 @@ contract» и ссылался на компаньон по пути, котор
жёсткая: D39.84 запрещает денежные суммы на пользовательском проводе и экране, и П-5 показывает
процент ровно поэтому. Доллары на этой шкале = амендмент D39.84, а он не выдан. Побочная
выгода: минимум шкалы объясняет себя сам — одна глава.
17. **Максимум шкалы = ДОСТУПНЫЙ остаток, то есть баланс МИНУС открытые холды** — не весь баланс.
17. **Максимум шкалы = ДОСТУПНЫЙ остаток.** ⚠ **Первая редакция этого пункта говорила «баланс МИНУС открытые холды» — ошибка оркестратора, вычитание дважды; исправлено 08.08 по находке самой S3 (D39.115).** Холд — дебет в момент взятия, поэтому баланс уже без него.
Платформа берёт холд на сумму потолка ДО спавна прогона, поэтому шкала, упёртая в полный
баланс, запирает всё на одну книгу и вторую начать нельзя. Два числа платформа уже различает.
18. **Это потолок ПРОГОНА, не книги.** Он едет со стартом прогона и не является свойством книги;

View file

@ -49,6 +49,14 @@ info:
MUST tolerate unknown enum values without failing. **Major** — a client MUST refuse an
unsupported version and tell the user.
⚠ **While the version is 0.x, a MINOR bump is the lane for breaking changes** (semver §4:
"Major version zero … anything MAY change at any time"), and 0.2.0 carries several — a required
`next_cursor` on every list, a required `ceiling_chapters` on a run request. A client pins the
exact 0.x version it was generated against and does not assume compatibility across minors.
From 1.0.0 the rule above applies unqualified. Ratified by the orchestrator at the S3 landing:
session S3 named the contradiction between this section and its own bump instead of resolving
it by its own hand, which was correct — the versioning rule is the contract owner's.
Every `enum` below is the vocabulary of THIS version, not a closed world. Generated types are
closed unions and do NOT protect against an unknown value, so the unknown-value branch
belongs on the client seam (`src/api/`), where values enter, not in every component.