_last_updated_: 2026-08-21T07:55:00Z session_id: publish-mock-green-idempotency-2026-08-21 --- # Next session handoff Сессия: **мок-publish кампания ЗАКРЫТА** — оба пира зелёные в моке, идемпотентность подтверждена, режекты закрыты. Осталось: реальный деплой (отмашка юзера) + кейс обновления спеки (сработает сам при апдейте апстрима). ## Recent commits - .admin `96a4deb7` chore(stand): мок обоих зелёный — readmeTemplate для ozon (bind-mount), state сброшен - ozon `8633f25` fix(publish): package-readme.md — npm-карточка + GH-штамп из шаблона, фолбэк-префикс убран (212/212) - yandex `a4b3432` fix: версия — первый ран без бампа, база = state.publishedVersion (130/130) - yandex `24235b1` fix(worker): gh-distro README-штамп из шаблона + сборка до создания репо - yandex `a131fd2` fix: publish cwd=out + --access public (ENEEDAUTH) — вставил я (admin) ## Состояние мок-стенда (sched-pipelines local) - Оба рана (ozon `3b35cb48`, yandex `898c395a`): ✅ succeeded, чистый мок - verdaccio: `@apilki/ozon-seller@0.1.0`, `@apilki/yandex-market@0.1.0` (первый publish без бампа) - Gitea apilki: 4 репо (typescript+postman у обоих), 4 release `v0.1.0` - README по спеке: GH-дистро штамп `Версия: X · API от Y`, npm-карточка кастомная, бойлерплейт: 0 - Повторные раны (ozon `bbf39c1a`, yandex `869d037f`): **noop** — идемпотентность ✅ - Кейс «спека изменилась → minor++ → 0.2.0»: не выстрелил (апстрим yandex-market не менялся, всё ещё 6be0108668e6); покроется сам при следующем апдейте ## Стенд-особенности - Ozon `package-readme.md` НЕ в образе (их Dockerfile без COPY) — работает через `data.readmeTemplate=/app/data/package-readme.md` (bind-mount, tasks.json в .admin). Если озон добавит COPY в Dockerfile — оверрайд можно снять. - `tasks.generated.json` gitignored (в нём токен в PUBLISH_REMOTE_BASE). - Токены/ключи: `pass sched-pipelines/local/*` (admin-key/SCHED_API_KEY и т.д.). ## Спроси user'а - **Реальный деплой**: npmjs + github.com (не мок). Требует отмашки + настоящие NPM_TOKEN/GITHUB_TOKEN (в pass). Юзер ранее: «в следующей сессии» / «жди обоих». Не гонять без явной команды. - (нет на этом раунде) ## Не делать (preemptive guards) - Не запускать реальный publish в npmjs/github.com без явной отмашки. - Не писать токены в git/handoff/письма (secrets rule: только pass). - Не лезть в код агентов самим (юзер: «ты сам в код не лезь») — фиксы через режект-письма; исключение — стенд-конфиг (.admin) и мои инжекции типа a131fd2. - Не трогать `llm-router-failover-proxy` (юзер закрыл 2026-08-18). ## Memory updates за сессию - Кандидат на wiki-ingest: паттерн «мок не зеркалит прод-контракт» — 3 случая за кампанию (readFile, fetch-Response .body, npm cwd/.npmrc). Не заингещено — предложить юзеру в след. сессии (shared wiki, concepts/mock-must-mirror-prod-contract). - Кандидат: «репо создаётся до сборки контента → мёртвые пустышки» (github-distro). - Ack-письма обоим пирам отправлены 07:52Z.