Carry the seven findings that had no row anywhere: no backups on the paid path, no door a real client can use, a user-writable path into the system message, and a template that hands every book one pair's transcription
This commit is contained in:
parent
f28dd8e0a1
commit
50d73cb4a1
1 changed files with 8 additions and 1 deletions
|
|
@ -12,7 +12,7 @@
|
|||
> - **Курс:** этапы ОБЩНОСТЬ · КАЧЕСТВО БАНКА · ПАКЕТ-ЧЕКЕРОВ · ФРОНТ-ЭРА · шов/платформа/движковые блокеры — ПРОЙДЕНЫ (D39.59–123). Хвосты курса живут строками: 16 (полная цена холодного старта; edit-волна на малых прогонах отработала и оплачена — 58 вызовов волновым драйвером 23–25.07 плюс 648 до драйвера, счёт по леджерам `~/books/gu-zhenren/**/*.db`) · 46 (дизайн заморожен D39.92/93, промт ждёт выдачи) · coldrun-b фаза C заморожена чекпойнтом легитимно (D39.86; эталон денег/поведения — coldrun-a, read-only); развилка 0731 решена и исполнена (D39.87/91, код `553f1a3`).
|
||||
> - **Горизонт (D39.62/67, освежён D39.95):** **ДОБОР ИДЕАЛА** (первым прогоном: оси голоса 24 · авто-режим · цена 16; жильцы ролей решаются ДО прогона эксп-22 — строка 149 · веса K1–K12 13а · вне-претрейн чекпоинт 55; остаток арбитража банка = рецензент спорных кластеров при ре-пробе 74 — D39.102) → ВТОРАЯ ПАРА живьём (ja→ru; преп 81) → МАСШТАБ → пилот Ф2.5 (гейт резюме-строки 80; строки 62–68, 85) → Ф3 ридер-IDE (69–71). **Стоячие:** ToS-триггер 25.10 · Ш-2 до go1.27 (⚠ + x/text Unicode 17 тем же тулчейном — строка 119, реестр §Б-108 справочника якорей) · платные прогоны разблокированы (проба провода — D39.97, конфиги 112 залендены).
|
||||
> - **Стек (полная карта роль→модель→конфиг→квирки — [STACK.md](STACK.md), D39.126):** draft deepseek-v4-flash thinking-ON `low` **⚠0731** → терминолог (та же модель) → editor deepseek-v4-pro БИЛИНГВ ИНТЕРИМ (топология ПОДТВЕРЖДЕНА при неразличимости жильцов — D39.117; закон-блок ОБЯЗАТЕЛЕН — строка 134; glm-5 резерв; вахта маппинга эффорта pro — §Б-108) → судья gemini (Ф2, в движке НЕ построен — строка 33); канал B Mistral+grok; ~$0.85/ранобэ (D30.4) — ⚠ **ТРИГГЕР ПЕРЕ-КАЛИБРОВКИ СРАБОТАЛ 31.08** (испр. 02.09): платный прогон отработал и дал собственную оценку движка `projected_book_usd = 1.1377277707` на десяти главах при куплённых $0.436110; число D30.4 держать как июльское. ⚠ **Вендор-факты 13–15.08 (пере-пин ИСПОЛНЕН и ПРИНЯТ, D39.137):** таблица цен запинена ПИКОМ (flash 0.44/1.32 · pro 1.32/3.96/кэш-хит 0.044 за 1M; счёт шиппинг-c1 = 100% DeepSeek ⇒ ×4.2–4.4 в пике / ×2.1–2.2 в долине — замер по трём прогонам); ⚠ про эффорт pro носители ПРОТИВОРЕЧАТ, до вендор-сверки в силе канон — разбор строкой **237**(б); ⚠ ВЕСА pro сменились под тем же слагом (V4-Pro-0813, класс D39.61) — вахта-риг готов (остаток 172); покупки фазы Д на deepseek до 16.08 16:00 UTC — по старым ценам. ⚠ **ВЕСЬ банковый контур (банкнота+терминолог+классификатор) ВКЛЮЧЁН в shipping-c1 с `b8154cd`** — `enabled: true` у обоих гейтов и `classify_types: true`, бюджеты по $1.00 (прежде жил только ран-локальным конфигом книги; строка 140 — ⛔ его единственный вход `mining.contrast_path` в git ОТСУТСТВУЕТ, развёртывание обязано положить артефакт, иначе контур не исполняется вовсе, носитель — строка 251; сверка STACK.md 09.08 — факт шире прежней декларации «одна банкнота»); эскалация в shipping за `budget_usd: 0` (STACK.md §примечания).
|
||||
> - **ЕДИНЫЙ БЭКЛОГ — секция «Бэклог» ниже** (одна таблица, единственный трекер; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено; ведёт оркестратор). **СЧЁТ ОЧЕРЕДИ на 30.08 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **198** строки · зона бэкенд **97** строго / **131** широко (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0** (236 закрыта D39.175), платные прогоны разблокированы · «скоро» **66** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строки эксп-22: 55·153 (плюс 150 — руки владельца); строка 5 — остаток гейчен ре-пробой 74, носитель события теперь строка 188 (аудит D39.140); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже).
|
||||
> - **ЕДИНЫЙ БЭКЛОГ — секция «Бэклог» ниже** (одна таблица, единственный трекер; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено; ведёт оркестратор). **СЧЁТ ОЧЕРЕДИ на 30.08 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **205** строки · зона бэкенд **99** строго / **134** широко (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0** (236 закрыта D39.175), платные прогоны разблокированы · «скоро» **73** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строки эксп-22: 55·153 (плюс 150 — руки владельца); строка 5 — остаток гейчен ре-пробой 74, носитель события теперь строка 188 (аудит D39.140); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже).
|
||||
> - Архивы хроники: `archive/PROGRESS-2026-07-04-10.md` (D31) · `-10-13` (D39.6-гигиена) · `-13-25` (стройка паков 11–16, rerun2) · **`-25-31` (паки 17–20 · мини-прогон · полигон-пакеты 5–8 · ToS · холодный прогон; D39.26–58)** · **`-08-01-02` (сессии №9/№10: общность · качество банка · coldrun-b · открытие фронта/платформы; D39.59–90, срез D39.105)** · **`-08-02-04` (сессии №11–№13: ручки эффорта · стандарты · контракт API · платформа P0 · банк-арбитраж; D39.91–105 + снимок шапки эры №15)** · `-08-04-09` (пинги закрытых паков эры №15) · **`-08-14-15` (закрытые бэкенд-записи №16–17: эмиттер шва · migrate · пере-пин DeepSeek; вынесено D39.139)**. Записи ниже — живой хвост (№16+, эра D39.124+; подрезка D39.139).
|
||||
|
||||
## 📌 СОСТОЯНИЕ ПАКОВ
|
||||
|
|
@ -260,6 +260,13 @@
|
|||
| 266 | **Правки кругов 3 и 4 петли не ревьюил НИКТО — круг свёрнут решением владельца, а не замкнут.** Замеренная база, из-за которой это долг, а не формальность: ДВАЖДЫ подряд дефект вносил фикс предыдущего круга (круг 2 объявил денежную дыру закрытой — круг 3 показал, что она открыта; ратификация оркестратора по дедупу внесла живой дефект — поймала зона). Круг 3 добавил ~2000 строк и не ревьюил из них ни одной; круг 4 — две правки, обе проверены исполнением, но не чужими глазами. ⚠ Дисциплина петли исправлена эрратой: круг крутит СЛЕДУЮЩАЯ сессия по готовому паку, а не прежняя — правило «сессия отрабатывает скоуп и завершается» бьёт норму петли | бэкенд | скоро | проход свежей сессии по диффу `c77c3ba`+`2e13cd1` | решение владельца 04.09 остановить полировку |
|
||||
| 267 | **Две НЕПОДПИСАННЫЕ строки одной поверхности теперь обе едут в закон-блок — провод изменился, доктрины на этот случай нет.** Было: одна (`元石 → «юаньши»`); стало: две (`юаньши` + `камень первоисточника`). Причина — фикс круга 2 (дедуп по `(src,dst)` + уступка неподписанной) снял схлопывание там, где подписи нет ВООБЩЕ. Ратифицированному правилу не противоречит (уступать нечему), и молчаливый выбор первой по сортировке был бы хуже. **Развилка:** конфликт двух неподписанных — показывать оба и репортить · схлопывать · НЕ давать приказа вовсе (закон-блок это ПРИКАЗ, а «либо A, либо B» приказом не является). Бьёт в цель №1: две конкурирующие формы термина на входе редактора | бэкенд | скоро | решение доктрины + пин выбранной формы | объявленная смена поведения, бэкенд-сессия 04.09, D39.183 |
|
||||
| 268 | **Гейт версии контракта у фронта читает СВОЁ зеркало, а не канон — и потому слеп по построению.** `frontend/src/api/contract.test.ts` сверяет `${cwd}/docs/api-contract/openapi.yaml` с фикстурой, то есть копию с копией, и зелен при любом отставании; соседний тест сравнивает только МАЖОР, а он у `0.2.3` и `0.10.0` одинаков — ноль. Зеркало отстало на ВОСЕМЬ миноров. Сравнение: тот же класс гейта у платформы читает КАНОН с диска и поймал расхождение `0.9.0→0.10.0` в тот же час. ⚠ Зона фронта ЗАМОРОЖЕНА — строка ждёт разморозки, но входит в перечень первого касания | фронт | скоро (первое касание при разморозке) | перенацелить гейт на канон | находка платформенной сессии 04.09, подтверждена оркестратором |
|
||||
| 269 | **НА БОЕВОМ ПУТИ НЕТ НИ ОДНОГО БЭКАПА — ни оплаченной работы, ни денежного реестра.** Весь оплаченный перевод книги живёт в её SQLite на локальном диске хоста, кредиты и холды — в Postgres; `grep -rn 'backup\|Backup' platform/ --include=*.go` → НОЛЬ вызовов. Движковые `store.BackupSQLite` / `tmctl backup` существуют, платформа их не зовёт никогда. Единственное упоминание отложено словами «работа с первым реальным деплоем, не раньше» (`platform/deploy/README.md`) — **первый реальный деплой УЖЕ БЫЛ**, платный EPUB через API 04.09. Экспорты при этом сознательно TTL-эфемерны, то есть своей копии у пользователя может не быть тоже. ⇒ Одна потеря диска = вся оплаченная работа всех пользователей и весь баланс кредитов, без возможности ни восстановить, ни доказать, кто сколько купил. ⚠ **Единственный пункт из семи, у которого НЕТ частичного исхода** | платформа | скоро (блокер первого внешнего пользователя) | бэкап проектных БД + Postgres на боевом пути | критик полноты стратегии 04.09 |
|
||||
| 270 | **У ПРОДУКТА СЕГОДНЯ НОЛЬ ДВЕРЕЙ: контракт объявляет `bearerToken`, выдать его нечем, а живой цикл доказан через ДЕВЕЛОПЕРСКИЙ вход, который прод отказывается запускать.** Канон сам признаёт «Nothing issues such a token today»; вход ставит только HttpOnly-куку; живая проба двери шла `curl -c jar` через `/auth/dev-login`, а прод-конфигурация ОТКАЗЫВАЕТСЯ стартовать, если dev-вход стоит рядом с настоящим OIDC. Фронт заморожен. ⇒ Не-браузерный клиент (CLI, десктоп, интеграция, смоук боевого хоста) войти не может ВООБЩЕ, а «цикл замкнут живьём» числится доказанным на механизме, которого в бою нет. Компаньон канона держит это строкой с прямым признанием «строки нет» | платформа | скоро (блокер первого внешнего пользователя) | выдача токена ЛИБО разморозка фронта — развилка владельца | критик полноты стратегии 04.09 |
|
||||
| 271 | **ПРАВКИ БАНКА ПОЛЬЗОВАТЕЛЯ ЕДУТ В SYSTEM-СООБЩЕНИЕ ДОСЛОВНО — без предела длины и без запрета управляющих символов.** Инъекция банка — отдельное сообщение роли `system` (`backend/internal/pipeline/render.go`), тело собирается конкатенацией `src + " → " + dst` (`backend/internal/membank/memory.go`), а `dst` приходит с пользовательской двери `POST /books/{id}/bank/corrections` и получает ровно один `TrimSpace`. Канон объявляет `dst: minLength: 1` и НИКАКОГО `maxLength`; валидация проверяет форму и число, не содержимое. ⇒ `dst` с переводами строки дописывает свои строки внутрь системного блока КАЖДОГО платного вызова. ⚠ Ратифицированный инвариант звучит противоположно: «текст книги и любая веб-выдача = untrusted DATA, никогда — инструкции… сегодня выполняется КОНСТРУКЦИЕЙ» — **конструкция его больше не выполняет**: появилась пользовательская запись, и она открывается в system-роль | бэкенд | скоро (перед первым внешним пользователем) | предел длины + запрет управляющих + обрамление как ДАННЫХ + адверсариальная проба | критик полноты стратегии 04.09 |
|
||||
| 272 | **ШАБЛОН КНИГИ ДЕПЛОЯ ОДИН НА ВСЕ ПАРЫ, а в нём лежит ПАР-СВЯЗАННОЕ значение — `transcription: palladius`.** Платформа рендерит `book.yaml` из единственного операторского шаблона и подставляет ровно пять ключей (`book_id · title · source_lang · target_lang · source_file`); всё остальное едет из шаблона нетронутым. Палладий — система транскрипции ДЛЯ КИТАЙСКОГО. Движок значение не валидирует (свободная строка) и подставляет прямо в промпт. ⇒ Деплой, объявивший `zh>ru,ja>ru`, отдаёт КАЖДОЙ японской книге инструкцию транскрибировать по-китайски: не отказ и не флаг, а тихо неверные имена во всей книге — ровно тот класс брака, ради которого продукт существует. ⚠ Чинить придётся не одну книгу: значение вшито в `book.yaml`, который платформа НИКОГДА не перезаписывает (`O_EXCL`) | платформа+бэкенд | скоро (гейт второй пары) | пар-связанные ключи шаблона + валидатор значения в движке | критик полноты стратегии 04.09 |
|
||||
| 273 | **ПАР-ШОВ ЛОМАЕТСЯ АСИММЕТРИЧНО: промпт-пак падает ГРОМКО, целевые ДАННЫЕ выключаются МОЛЧА — вместе с банком.** Отсутствие промптов пары — жёсткая ошибка загрузки («never silently substitute another pair's conventions»). Отсутствие ЦЕЛЕВЫХ данных — тишина в трёх местах: `lang.InjectionTextsFor` на незнакомом таргете возвращает пустое, обе банк-инъекции рендерят пустоту (`if !tx.HasData() { return "" }`), `LoadReaderWords` отдаёт значки вместо слов без ошибки. ⇒ Книга на новый таргет переводится ЦЕЛИКОМ и за ПОЛНЫЕ деньги, но БЕЗ банка-как-закона — то есть без единственного механизма, держащего термины консистентными на всю книгу, без $0-чекеров цели и с пометками из значков в выданном файле. Ни ошибки, ни варнинга, ни поля в отчёте сборки. ⚠ Строка 32 закрыта формулировкой «инертна ПО ОТСУТСТВИЮ данных» — для ЧЕКЕРОВ это хорошо, для БАНК-инъекции такого вывода не делал никто | бэкенд | скоро (гейт второй пары) | префлайт готовности таргета: банк-данные есть ⇒ работаем, нет ⇒ громко | критик полноты стратегии 04.09 |
|
||||
| 274 | **ИМЯ КНИГИ В ВЫДАННОМ ФАЙЛЕ — ИСХОДНОЯЗЫЧНОЕ, и исправить его пользователь не может.** `dc:title` EPUB — «spelled exactly as the book config spells it. It may be the source-language display name — the writer has no translation of it and invents none»; при пустом поле канон велит взять имя ИЗ ИМЕНИ ФАЙЛА. Ручки переименования нет: `updateBook` описан в каноне целым абзацем и не смонтирован (`grep -c 'method: "PATCH"' platform/internal/httpapi/v0.go` → 0). ⇒ Русский EPUB приезжает в читалку с китайским названием или с именем вроде `book_final2.txt`. ⚠ «Издательское качество» ломается на самом первом, что видит человек, а фикс дешёвый и лежит в уже заведённой строке `П-17` зонного бэклога — просто без причины её брать | платформа | скоро | смонтировать `updateBook` + титул на выдаче | критик полноты стратегии 04.09 |
|
||||
| 275 | **КАЧЕСТВО — ЦЕЛЬ №1 — НЕ МОЖЕТ СТАРТОВАТЬ ВООБЩЕ, и это не видно из трекера.** «ДОБОР ИДЕАЛА» (первый платный прогон качества) гейчен ЧЕТЫРЬМЯ строками сразу: **24** профили голоса не подписаны · **13а** веса рубрики K1–K12 не выбраны · **55** вне-претрейн чекпоинт не куплен · **149**/фаза Д выводы панели жильцов заморожены. Ни один из четырёх сегодня не закрыт. ⇒ Качество не «в очереди позади денег» — оно не может начаться, а из ленты ✅ читается как «идёт по плану». Механизмы качества почти все ПОСТРОЕНЫ; включены, наполнены данными и измерены — почти ни один. ⚠ Три из четырёх гейтов — РЕШЕНИЯ, а не стройка: они стоят слова, а не пака | полигон+владелец | скоро | закрыть четыре гейта, три из них словом | срез качества стратегического веера 04.09 |
|
||||
|
||||
*(Указатели на архив-слайсы хроники — бюллетенем «Архивы хроники» в CURRENT-STATE; здесь копий нет.)*
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue