Say in the canon what the platform now does: an operator mints the bearer token out of band, and the character count is exact only for UTF-8 text
This commit is contained in:
parent
3e8471683e
commit
3ab23a9136
3 changed files with 22 additions and 4 deletions
File diff suppressed because one or more lines are too long
|
|
@ -1628,7 +1628,7 @@ head-1 это семнадцать бюджетируемых операций,
|
|||
3. **После пополнения баланса прогон возобновляется ЯВНЫМ действием пользователя, а не сам.** Пункт «авто-резюм `paused`» висел в листе владельца с 08.08 в форме, умершей вместе с оконной моделью; зона записала вывод сама (`PLATFORM_DIRECTION.md`), владелец его подтвердил — **пункт снят с листа**, вывод зоны становится ратифицированным.
|
||||
4. **Фразы, которые видит пользователь (В-3 · К-6 · Приложение А), ДЕЛЕГИРОВАНЫ проекту** — слово: «оставляю проектирование фраз на вас, главное чтоб это было интернациональным». ⚠ Это не «свобода формулировки», а **инженерное требование**: фраза не может быть литералом ни в Go платформы, ни в TSX фронта — только данными, ключуемыми машинным кодом причины и локалью (механизм языков интерфейса уже построен, `ПТ-36`/`В-9`). Следствия: словарь фраз — носитель ДАННЫХ, один на продукт; `PD-246` (граница `attention`/`glance` — сегодня ДОГАДКА платформы по 15 причинам движка) закрывается вместе с ним, а не отдельно; строка **204** (движок не публикует причины флагов данными) становится его гейтом. Проектирование — оркестратор + зоны, подпись владельца больше не ожидается.
|
||||
5. **Осталось на владельце из платформенного листа — ОДИН пункт, и он переформулирован** (`PD-421`): держит ли ОТКРЫТЫЙ поток событий сессию живой. Владелец ответа не дал, попросив раскрыть предмет; вопрос переформулирован в терминах продукта и вынесен заново.
|
||||
6. ⚠ **Ключи провайдеров — развилка снята фактом, а не решением:** движок берёт их ДВУМЯ путями (`--keys-file` деплоя ПОБЕЖДАЕТ конвенционный `.env` рядом с `book.yaml` — `backend/cmd/tmctl/invocation.go:145`=`keys-file`), формат обоих — `KEY=VALUE`. Владелец 30.08 сообщил, что чинил ключи движка; **из этого следует, что холодный прогон движка (очередь №20 п.2) разблокирован, а живой прогон через API (п.3) — нет**: платформа читает СВОЙ путь (`TM_PLATFORM_ENGINE_KEYS_PATH`, `platform/internal/config/config.go:530`=`ENGINE_KEYS_PATH`), и по записи P9 живых ключей в нём не было. Лечение — операционное и $0: направить переменную платформы на уже заполненный файл (формат совпадает), проверять — прогоном, не чтением (гардрейл `.env` в силе, оркестратор файлов ключей не открывал).
|
||||
6. ⚠ **Ключи провайдеров — развилка снята фактом, а не решением:** движок берёт их ДВУМЯ путями (`--keys-file` деплоя ПОБЕЖДАЕТ конвенционный `.env` рядом с `book.yaml` — `backend/cmd/tmctl/invocation.go:145`=`keys-file`), формат обоих — `KEY=VALUE`. Владелец 30.08 сообщил, что чинил ключи движка; **из этого следует, что холодный прогон движка (очередь №20 п.2) разблокирован, а живой прогон через API (п.3) — нет**: платформа читает СВОЙ путь (`TM_PLATFORM_ENGINE_KEYS_PATH`, `platform/internal/config/config.go:531`=`ENGINE_KEYS_PATH`), и по записи P9 живых ключей в нём не было. Лечение — операционное и $0: направить переменную платформы на уже заполненный файл (формат совпадает), проверять — прогоном, не чтением (гардрейл `.env` в силе, оркестратор файлов ключей не открывал).
|
||||
|
||||
## D39.177 — ПЕРЕДАЧА РОЛИ ОРКЕСТРАТОРА №20 → №21: что смена приняла и построила, четыре моих ошибки (две поймал владелец) и очередь, сверенная деревом (31.08). ✅
|
||||
|
||||
|
|
|
|||
|
|
@ -985,8 +985,13 @@ components:
|
|||
A server-side session as an opaque token, for a client that is not a browser. The principal
|
||||
is established in middleware only; no endpoint may assume a cookie.
|
||||
|
||||
⚠ **Nothing issues such a token today** — the server accepts one, but no call here or in the
|
||||
session mechanics hands one out. The companion carries who owes that and when.
|
||||
⚠ **A token IS issued now, and NOT by an endpoint** (corrected 05.09; the earlier text said
|
||||
"nothing issues such a token today" and stopped being true when the operator command landed).
|
||||
It is minted OUT OF BAND by the operator — `tmplatformctl token issue --user … --client …` —
|
||||
and the session it creates is an ordinary one: it appears in the account's login journal under
|
||||
the operator provider, and `POST /auth/logout` revokes it like any other. No call in this
|
||||
document hands one out, and that is deliberate: a door that issues its own credentials over
|
||||
HTTP is a different threat model and would be ratified separately, not added here.
|
||||
|
||||
headers:
|
||||
RequestId:
|
||||
|
|
@ -1647,6 +1652,19 @@ components:
|
|||
minimum: 0
|
||||
description: |
|
||||
Size of the source in characters, or `null` while the book is still arriving.
|
||||
|
||||
⚠ **THE NUMBER IS EXACT ONLY FOR UTF-8 TEXT, and today nothing on the wire says which
|
||||
case you are in** (measured 04.09; ratified as a defect 05.09). It counts runes of the
|
||||
WRITE STREAM: for a UTF-8 `.txt` upload those are the source's own characters, but for an
|
||||
EPUB they are runes of the ZIP CONTAINER, and for GB18030 or UTF-16 the engine decodes
|
||||
what this side could not. A reader shown "9 972 characters" for an EPUB is shown the size
|
||||
of an archive.
|
||||
|
||||
**The chosen cure is a PRECISION SIGNAL BESIDE the number, not a change to what `null`
|
||||
means** — `null` already says "still arriving", a live client renders it as `0`, and
|
||||
overloading it would break a reader that is deployed. The field lands with the
|
||||
order-form pack, which is the one that makes this number a PRICE; until it does, this
|
||||
description is the only place that says the number can be wrong.
|
||||
added_at: { type: string, format: date-time }
|
||||
note_count:
|
||||
type: integer
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue