Point the moved anchors at the platform config as it now stands, and address two notes by number after their line references drifted overnight
This commit is contained in:
parent
1b67b16f7e
commit
f113675f53
3 changed files with 5 additions and 5 deletions
File diff suppressed because one or more lines are too long
|
|
@ -22,7 +22,7 @@
|
|||
> ⚠ **Эррата 28.08-к (D39.165 §3 + решение оркестратора о глава-полосе) — ДВЕ ошибки, обе найдены широким самопроходом платформенной сессии, обе доказаны исполнением.** **(1) Посылка «смета УЖЕ публикуется в `status --json`» верна только ПОСЛЕ свёртки.** `bank-apply` пишет только ФАЙЛЫ решений, а `status` считает ре-билл от СОХРАНЁННОГО глоссария (`backend/internal/pipeline/status.go:733-744`, `projectStoredMemory` — его собственный комментарий: «A seed-FILE edit not yet re-run is NOT reflected here… that drift surfaces on the next translate's re-seed»). Свёртка происходит внутри СЛЕДУЮЩЕГО `translate`, поэтому сразу после правки движок отвечает `units=0`/`drift=false`. Следствие: продажа «затронуто N юнитов» и холд от сметы В ТЕКУЩЕМ ШВЕ НЕДОСТИЖИМЫ — для них нужен движковый глагол «свернуть банк и оценить ВНЕ translate», которого нет. **(2) Решение оркестратора «полоса пере-прохода — в ГЛАВАХ» ОТМЕНЯЕТСЯ: его посылка опровергнута.** Я рассудил, что $0-репин двигает полосу, потому что идёт через тот же `resumeFromChunkStatus`, — и не проверил анонс. Движок анонсирует юнит ОДИН РАЗ на жизнь книги (announce-once, `backend/internal/pipeline/events.go:49,143-162`), пере-проход не ре-анонсирует ни репины, ни пере-переводы ⇒ `done` остался бы НУЛЁМ навсегда. Это ровно тот класс, от которого предостерегает памятка «не выводить из соседнего механизма, не проверив свой». ⚠ **Что при этом НЕ отменяется:** запрет класть ЮНИТЫ в поле, объявленное в главах, стоит — но объявленная в каноне «одна единица работы» запретом не является, потому что она НЕ молчаливая.
|
||||
> ⚠ **Эррата 29.08-а (D39.172, две строки, объявленные заведёнными) — ошибка ОРКЕСТРАТОРА №19.** Тело ноты дважды утверждает «Заведено строкой» / «строка заведена» — про `Touch`, выбрасывающий `RowsAffected`, и про пересборку `tmctl` в рецепте стенда. **На момент ратификации ни одной из этих строк не существовало:** последняя строка регистра платформы была `PD-430`, и проверка грепом по `Touch|RowsAffected|пересбор` давала только совпадения слов в чужих строках. Утверждение о будущем записано как о свершившемся — ровно тот класс, который эта же смена ловила у сессий трижды. **СНЯТА 29.08: строки заведены зоной — `PD-431` (`Touch`) и `PD-432` (пересборка `tmctl`), `PD-423` получил вторую точку. Проверено грепом по регистру.** Тело ноты не переписывается (D23.3). ⚠ Сюда же третий пункт того же абзаца: `PD-423` предписано ПЕРЕ-ПРОВЕРИТЬ (у сессии `sqlc` тест зелёный в трёх прогонах), и пометки в строке регистра тоже нет.
|
||||
> ⚠ **Эррата 30.08-б (D39.165 §2 и §3, две находки платформенной сессии P12).** (а) **Якорь протух:** §2 цитирует фразу канона о `chapters_done` по `openapi.yaml:1542-1545` — текст уехал на **`1554-1559`**, по прежним строкам сейчас `RejectReason`. Сама цитата верна дословно; нота не битая, битым стал только номер (класс строки бэклога 219). (б) **§3 назвал живое САМОПРОТИВОРЕЧИЕ канона и не дал ему носителя:** правка банка «takes effect on the NEXT run» (`openapi.yaml:504`) против «finished work is not bought twice» плюс подъём потолка только у ПРИОСТАНОВЛЕННОЙ книги (`:590`) — у дочитанной книги следующего прогона купить нечем, поэтому принятая правка умирает молча. Ни в едином бэклоге, ни в регистре платформы строки не было (проверено грепом по обеим фразам) — **заведена строка бэклога 241** 30.08. ⚠ Класс — «названо в теле ноты и не получило карриера»; норма приёмки требует строку ТЕМ ЖЕ лендингом, здесь она не легла два дня.
|
||||
> ⚠ **Эррата 30.08-а (D39.176 п.5, `PD-421`) — ошибка ОРКЕСТРАТОРА №20, пойманная ВЛАДЕЛЬЦЕМ.** Пункт вынесен владельцу с формулировкой «открытая вкладка теряет сессию примерно через час» — **неверно, и ровно тем классом, от которого предостерегает записка передачи: вывод из соседнего числа вместо проверки.** Час — это ПЕРИОДИЧНОСТЬ `SweepSessions`, а срок жизни сессии другой: `SessionIdleTTL` = **14 суток**, `SessionMaxAge` = **30** (`platform/internal/config/config.go:293-294`=`SessionIdleTTL`), причём окно бездействия скользит на любом аутентифицированном запросе (`platform/internal/auth/middleware.go:66`=`a.Sessions.Touch(r.Context(), digest`; поток `Touch` не зовёт — грепом 0, и это не важно при окне в две недели). Реальное следствие `PD-421` — то, что и записано в её теле: сессия, протухшая по бездействию И подметённая, гасит поток с опозданием до часа, то есть после ДВУХ НЕДЕЛЬ без единого действия. **Вопрос СНЯТ с листа владельца как несущественный; правка в паке P12 не нужна, строка остаётся `info`.** Владелец вопросом «ты уверен или придумываешь?» поймал ошибку до того, как она стала заказом на работу.
|
||||
> ⚠ **Эррата 30.08-а (D39.176 п.5, `PD-421`) — ошибка ОРКЕСТРАТОРА №20, пойманная ВЛАДЕЛЬЦЕМ.** Пункт вынесен владельцу с формулировкой «открытая вкладка теряет сессию примерно через час» — **неверно, и ровно тем классом, от которого предостерегает записка передачи: вывод из соседнего числа вместо проверки.** Час — это ПЕРИОДИЧНОСТЬ `SweepSessions`, а срок жизни сессии другой: `SessionIdleTTL` = **14 суток**, `SessionMaxAge` = **30** (`platform/internal/config/config.go:427-428`=`defaultSessionIdle`), причём окно бездействия скользит на любом аутентифицированном запросе (`platform/internal/auth/middleware.go:66`=`a.Sessions.Touch(r.Context(), digest`; поток `Touch` не зовёт — грепом 0, и это не важно при окне в две недели). Реальное следствие `PD-421` — то, что и записано в её теле: сессия, протухшая по бездействию И подметённая, гасит поток с опозданием до часа, то есть после ДВУХ НЕДЕЛЬ без единого действия. **Вопрос СНЯТ с листа владельца как несущественный; правка в паке P12 не нужна, строка остаётся `info`.** Владелец вопросом «ты уверен или придумываешь?» поймал ошибку до того, как она стала заказом на работу.
|
||||
> ⚠ **Эррата 29.08-б (D39.171 механизм cgroup + D39.172 число операторов) — ДВЕ ошибки ОРКЕСТРАТОРА №19.**
|
||||
> (а) **Механизм, который я объявил причиной неприменения `MemoryMax`, НЕВЕРЕН.** Я вывел «вызывающий
|
||||
> процесс обязан жить внутри `user@<uid>.service`» из пробы `systemd-run --user --scope` без
|
||||
|
|
@ -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:466`=`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:530`=`ENGINE_KEYS_PATH`), и по записи P9 живых ключей в нём не было. Лечение — операционное и $0: направить переменную платформы на уже заполненный файл (формат совпадает), проверять — прогоном, не чтением (гардрейл `.env` в силе, оркестратор файлов ключей не открывал).
|
||||
|
||||
## D39.177 — ПЕРЕДАЧА РОЛИ ОРКЕСТРАТОРА №20 → №21: что смена приняла и построила, четыре моих ошибки (две поймал владелец) и очередь, сверенная деревом (31.08). ✅
|
||||
|
||||
|
|
@ -2189,7 +2189,7 @@ CJK-цели · закон-блок редактора единый, марке
|
|||
**2. ⛔ ЗАПРЕТ «ДЕНЕЖНЫХ ПОЛЕЙ В UI НЕТ ВОВСЕ» ОТОЗВАН ВЛАДЕЛЬЦЕМ 05.09.** Дословно: **«я такого правила не ставил, надо от него избавляться»**.
|
||||
⚠ **ЭРРАТА К ЭТОМУ ЖЕ ПУНКТУ, вписана оркестратором сразу: первая редакция утверждала «текста правила в журнале НЕТ» — это ЛОЖНОЕ ОТРИЦАНИЕ, выведенное из СЛОМАННОЙ КОМАНДЫ.** Греп шёл с `|` без `-E`, то есть в basic-regex вертикальная черта — литерал, и находил только собственную цитату паттерна. Правильный `grep -E` даёт два хита. **Текст ЕСТЬ и записан как СЛОВО ВЛАДЕЛЬЦА** — тело D39.84, перечень «(1) Восемь решений владельца»: «оплат в MVP нет, денежных полей в UI нет вовсе (расход остаётся телеметрией владельца; потолки/rebill-согласие движка канон §5 не трогает)». ⇒ Верная форма — **владелец ОТОЗВАЛ собственное решение** (суперсид п.(1) D39.84 в части денег), а не «оркестратор приписал ему чужое». ⚠ Оговорка, которую из текста снять нельзя: нота пришла РЕЛЕЕМ отчёта фронт-сессии, и что там было прямой речью владельца, а что пересказом релея — по тексту не различимо; ровно та же неразличимость, что D39.112 п.3 пометил у СОСЕДНЕЙ ноты.
|
||||
⚠ **Класс ошибки — мой, и он тот самый, который я весь день правил у других: отрицательное утверждение, выведенное не из проверки, а из команды, которая не сработала.** Канон это прямо запрещает («отрицательное утверждение из отсутствия упоминания НЕ выводится»), и я нарушил его в НОТЕ. Поймал внешний рецензент, пере-запустив мою же команду. **Норма, купленная этим: команда, на которой стоит отрицание, приводится В ТЕКСТЕ и обязана быть воспроизведена другим исполнителем.**
|
||||
**Носителей запрета БОЛЬШЕ ДВУХ — все обязаны быть закрыты паком формы заказа:** `05-decisions-log.md:222` (тело D39.84) · `05-decisions-log.md:246` (D39.100 К-8: «запрет денег на экране D39.84 в силе и НЕ superseded») · `docs/product-requirements.md` ПТ-35 · `docs/architecture/15-money-path.md` §«Запрет денег на экране» · `14-api-contract/openapi.yaml` §Transport и §Credit · зеркало фронта `frontend/docs/api-contract/openapi.yaml` · `frontend/docs/API_CONTRACT_INPUT.md` §4.8 · `platform/docs/ENGINEERING_STANDARDS.md` (зонный, чинит зона).
|
||||
**Носителей запрета БОЛЬШЕ ДВУХ — все обязаны быть закрыты паком формы заказа:** тело **D39.84** (греп `^## D39.84`, перечень «Восемь решений владельца») · **D39.100** К-8 (греп `^## D39.100`, дословно «запрет денег на экране D39.84 в силе и НЕ superseded») ⚠ *(испр. 05.09: обе ссылки стояли СТРОКАМИ журнала — `:222` и `:246`, — и уехали за сутки от собственных правок шапки; ноту адресуют НОМЕРОМ, строка подрезку не переживает)* · `docs/product-requirements.md` ПТ-35 · `docs/architecture/15-money-path.md` §«Запрет денег на экране» · `14-api-contract/openapi.yaml` §Transport и §Credit · зеркало фронта `frontend/docs/api-contract/openapi.yaml` · `frontend/docs/API_CONTRACT_INPUT.md` §4.8 · `platform/docs/ENGINEERING_STANDARDS.md` (зонный, чинит зона).
|
||||
|
||||
**2а. Что теперь верно.** На аккаунте — **баланс в ДЕНЬГАХ**, и он виден. Потолок заказа — деньгами. Наружу выходят баланс, потолок и холд. НЕ выходят: цены моделей, стоимость стадий, структура наших расходов (ПТ-33 цел — это отдельная норма и она владельцем не отменялась).
|
||||
|
||||
|
|
|
|||
|
|
@ -950,7 +950,7 @@ first built format»), и условие наступило. Набор — то
|
|||
|
||||
**Что случилось.** Норма «оплат в MVP нет, денежных полей в UI нет вовсе» месяц определяла форму
|
||||
продукта. Владелец 05.09: **«я такого правила не ставил, надо от него избавляться»**. Форма —
|
||||
**отзыв собственного решения**: текст записан в теле D39.84 (`05-decisions-log.md:222`) в перечне
|
||||
**отзыв собственного решения**: текст записан в теле **D39.84** (адресовать НОМЕРОМ: греп `^## D39.84`; ⚠ испр. 05.09 — здесь стояла строка `:222`, которая за сутки уехала на `:225` от правок шапки того же файла) в перечне
|
||||
«(1) Восемь решений владельца». ⚠ Нота пришла РЕЛЕЕМ отчёта фронт-сессии, и что в ней прямая речь, а
|
||||
что пересказ релея, по тексту не различимо — та же неразличимость, которую D39.112 п.3 пометил у
|
||||
соседней ноты.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue