Re-point nine anchors into the platform code that has landed and into the archived prompt that outlived its original path
This commit is contained in:
parent
c470f935a7
commit
fa2c4504e7
3 changed files with 9 additions and 9 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:427-428`=`defaultSessionIdle`), причём окно бездействия скользит на любом аутентифицированном запросе (`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:338-339`=`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` без
|
||||
|
|
@ -1635,7 +1635,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:531`=`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:544`=`ENGINE_KEYS_PATH`), и по записи P9 живых ключей в нём не было. Лечение — операционное и $0: направить переменную платформы на уже заполненный файл (формат совпадает), проверять — прогоном, не чтением (гардрейл `.env` в силе, оркестратор файлов ключей не открывал).
|
||||
|
||||
## D39.177 — ПЕРЕДАЧА РОЛИ ОРКЕСТРАТОРА №20 → №21: что смена приняла и построила, четыре моих ошибки (две поймал владелец) и очередь, сверенная деревом (31.08). ✅
|
||||
|
||||
|
|
@ -2527,7 +2527,7 @@ $2.00» не мерил никто), **а утверждение о ПРОШЛО
|
|||
|
||||
**3. Находки вне карты и диспозиции (мои).**
|
||||
· **F1 ⛔ ИСПРАВЛЕНО ТЕМ ЖЕ ЗАХОДОМ.** `docs/PROGRESS.md` нёс три числа под подписью «final counts», протухшие через три часа: `1172 → 1208 (+36)` вместо `+41`, каталог `158 → 191` вместо `201`, и — переворачивающее — «**0 SURVIVED**» вместо ЧЕТЫРЁХ аргументированных выживших. Механика: `ba4fd34` заленджен через девять секунд после пака и за три с лишним часа ДО дофикса `616a8e4`. Числа были верны в свою минуту; их подписали «финальными» и после дофикса не тронули. Акт всё это время нёс верные числа ⇒ разошлись НОСИТЕЛИ, а не факт. Абзац не переписан — на нём датированная поправка, потому что следующая смена открывает журнал РАНЬШЕ акта.
|
||||
· **F2 + F3 ⛔ СТРОКА 299.** Имя в Go-комментарии, которое ни во что не разрешается, — и таких класса два: указатель `runevents.go:187` на `docs/BACKEND_MONEYSTOP_SESSION_PROMPT.md:78`, файл которого удалён (промт уведён в архив ТЕМ ЖЕ коммитом, что писал акт `D39.206`, а через шесть минут `e7d6b3f` пере-навёл соседний указатель и Go-комментарий не тронул); и ДВА комментария, называющих тесты `TestSyntheticStageSeamIsSingle` и `TestProviderEgressSeamIsSingle`, которых в дереве нет вовсе. ⚠ Инварианты при этом РЕАЛЬНО сторожатся — вет-анализаторами `StageSeam`/`EgressSeam` (`backend/internal/archguard/archguard.go:80,377`): гарантия цела, **выдуман назначенный ей сторож**.
|
||||
· **F2 + F3 ⛔ СТРОКА 299.** Имя в Go-комментарии, которое ни во что не разрешается, — и таких класса два: указатель `runevents.go:187` на `docs/archive/prompts/BACKEND_MONEYSTOP_SESSION_PROMPT_2026-09-05.md:82`, файл которого удалён (промт уведён в архив ТЕМ ЖЕ коммитом, что писал акт `D39.206`, а через шесть минут `e7d6b3f` пере-навёл соседний указатель и Go-комментарий не тронул); и ДВА комментария, называющих тесты `TestSyntheticStageSeamIsSingle` и `TestProviderEgressSeamIsSingle`, которых в дереве нет вовсе. ⚠ Инварианты при этом РЕАЛЬНО сторожатся — вет-анализаторами `StageSeam`/`EgressSeam` (`backend/internal/archguard/archguard.go:80,377`): гарантия цела, **выдуман назначенный ей сторож**.
|
||||
· **F4 ⚠ ЭРРАТА 05.09-ж.** `D39.201` §2(в) объяснял непроверку тем, что стенд зоны неисполним («Failed to connect to bus»). На этой машине пользовательский systemd ДОСТУПЕН (`make conditions` печатает `systemctl --user reachable`; пробник `systemd-run --user` вернул 0) ⇒ блокер был свойством ОКРУЖЕНИЯ той сессии, а не «непроизводственного хоста». Находка не портится; неверна приписанная ей ПРИЧИНА.
|
||||
· **F5 ⛔ ЛОВУШКА СРЕДЫ, УЖЕ СТОИВШАЯ ДЕНЕГ ВНИМАНИЯ.** `/tmp/.git` — пустой посторонний каталог (31.08), git репозиторием его не считает, но поиск корня VCS в Go на нём ОСТАНАВЛИВАЕТСЯ ⇒ `error obtaining VCS status: exit status 128` у любого модуля, собираемого под `/tmp`. Цена уже уплачена: утилита-стриппер движковой зоны не собралась ровно с этим сообщением, оба выхода вышли ПУСТЫМИ, `diff` напечатал «ИДЕНТИЧНО», и зона едва не оперлась на это как на доказательство (`MONEYSTOP_REPORT.md:55`); корень тогда назван не был. ⇒ **любая работа под `/tmp` — с `GOFLAGS=-buildvcs=false`**. ⚠ И это опровергает МОЁ утверждение в заказе верификатору («воркри — настоящий git-checkout, `-buildvcs` обходить не нужно»): у линкованного воркри `.git` — ФАЙЛ, поиск Go его пропускает и уходит выше, где и находит битый корень. Сам каталог не трогаю: он вне репозитория, это машина владельца, и вопрос о его удалении — к нему.
|
||||
· **F6 ⚠** С выставленным `TM_PLATFORM_TEST_DSN`, но без права `CREATEDB`, тесты уходят в `t.Skipf` ⇒ **неверный DSN тоже зелёный**. Таблица условий это признаёт (`CREATEDB … unprobed`) и ответить не может по построению. Передано зоне платформы.
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
**(б) фикс-имена ратифицированной конвенции шва** — `events.jsonl` никто платформе не «сообщает», это константа
|
||||
(`platform/internal/ingest/tail.go:17`=`const JournalFile = "events.jsonl"`, D39.106); без этого выноса буква ломает главный канал самого шва.
|
||||
*Прецеденты:* потолок аргументом (D39.110 п.2б → `--ceiling-usd`, D39.122) · `--verify-bank`
|
||||
флагом (`platform/internal/runner/engine.go:99`=`func TranslateArgs(workdir string, verifyBank bool`) · дефолт `project_db` по конвенции каталога
|
||||
флагом (`platform/internal/runner/engine.go:116`=`func TranslateArgs(workdir string, verifyBank bool`) · дефолт `project_db` по конвенции каталога
|
||||
(`backend/internal/config/book.go:200`=`b.ProjectDB = filepath.Join(dir, b.BookID+".db")`) · конвенционное опциональное чтение `.auto-bank.yaml`
|
||||
(`backend/internal/pipeline/mining.go:618`=`.auto-bank.yaml`).
|
||||
|
||||
|
|
@ -66,7 +66,7 @@
|
|||
4. **Незнакомый флаг = громкий отказ при спавне.** Сегодня это так по устройству разбора аргументов
|
||||
(`backend/cmd/tmctl/invocation.go:128`=`flag.NewFlagSet(cmd, flag.ContinueOnError)`); зафиксировать законом, а не полагаться на случайность.
|
||||
|
||||
5. **Глагол зовётся ТЕМ ЖЕ пиннутым бинарём, что и возобновляемая попытка** (`runs/spawn.go:240-248`=`engineBinary is the path an attempt is PINNED to`,
|
||||
5. **Глагол зовётся ТЕМ ЖЕ пиннутым бинарём, что и возобновляемая попытка** (`runs/spawn.go:250-258`=`engineBinary is the path an attempt is PINNED to`,
|
||||
строка бэклога 139). Иначе файл, записанный новым бинарём, читается старым — а при нестрогом
|
||||
загрузчике сида (строка **212**) новое поле теряется МОЛЧА.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue