From aa88f5387f92e738b8eb873f65738dd05b822215 Mon Sep 17 00:00:00 2001 From: vitya Date: Sat, 22 Aug 2026 01:07:53 +0300 Subject: [PATCH] =?UTF-8?q?docs(handoff):=20=D1=81=D0=B5=D1=81=D1=81=D0=B8?= =?UTF-8?q?=D1=8F=200.2.0-=D1=81=D0=B8=D0=BC=D1=83=D0=BB=D1=8F=D1=86=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=B7=D0=B0=D0=B2=D0=B5=D1=80=D1=88=D0=B5=D0=BD=D0=B0?= =?UTF-8?q?=20=E2=80=94=20=D1=81=D1=82=D0=B5=D0=BD=D0=B4=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=D1=87=D0=B5=D0=BD,=20sched-vds-deploy=20paused?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .tasks/NEXT_SESSION.md | 62 ++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 35 deletions(-) diff --git a/.tasks/NEXT_SESSION.md b/.tasks/NEXT_SESSION.md index 285334e..72ba438 100644 --- a/.tasks/NEXT_SESSION.md +++ b/.tasks/NEXT_SESSION.md @@ -1,59 +1,51 @@ -_last_updated_: 2026-08-21T07:55:00Z -session_id: publish-mock-green-idempotency-2026-08-21 +--- +_last_updated_: 2026-08-21T22:07:38Z +session_id: mock-0.2.0-simulation-2026-08-21 --- # Next session handoff -Сессия: **мок-publish кампания ЗАКРЫТА** — оба пира зелёные в моке, идемпотентность -подтверждена, режекты закрыты. Осталось: реальный деплой (отмашка юзера) + -кейс обновления спеки (сработает сам при апдейте апстрима). +Сессия: **мок-кампания финализирована** — оба пира зелёные (0.1.0 publish), идемпотентность +подтверждена, кейс «спека изменилась → 0.2.0» проверен симуляцией на обоих воркерах и +откачен. Стенд в состоянии «0.1.0 published, повторные раны noop». Осталось: реальный +деплой (за отмашкой юзера). ## 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) +- .admin `2f820d25` meta(tasks): **sched-vds-deploy → 🟡 paused** (решение vitya: ждём результатов миграции books→sched, phase-3) +- .admin `7a3b73c0` chore(stand): кейс спека→0.2.0 проверен симуляцией + откат (handoff-апдейт) ## Состояние мок-стенда (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» ПРОВЕРЕН СИМУЛЯЦИЕЙ** (сессия 2026-08-21 вечер): обоим воркерам подложен апстрим-апдейт с новым эндпоинтом `GET /v1/echo` (ozon — снапшот `snapshots/2026-08-21/`, yandex — локальный mock-репо `data-ym/upstream-mock`, tasks.json `repo=/app/data/upstream-mock`). Оба независимо: publish **0.2.0** → verdaccio `@apilki/*@0.2.0` (0.1.0 в истории), gitea `v0.2.0` на 4 репо, README-штамп `Версия: 0.2.0 · API от 2026-08-21`. **Единообразие алгоритмов подтверждено** (оба: спека→minor, рецепты→patch, ref publish-model.md). -- **Откат сделан**: снапшот 2026-08-21 удалён, upstream-mock удалён, tasks.json repo → реальный github, clone пересоздан с реального апстрима `6be0108668e6`, state восстановлен из `*.bak-2026-08-21` (оба 0.1.0). Контрольный ран: **noop у обоих** ✅ +- Раны этой сессии: ozon `689637b3` ✅ publish **0.1.0** (бутстрап, state был сброшен), yandex `d404ac80` ✅ outcome **published**; повторные `7f982865`/`7cbf1d67` → **noop** ✅ +- **Кейс 0.2.0 проверен симуляцией**: обоим воркерам подложен апстрим-апдейт с `GET /v1/echo` (ozon — снапшот `snapshots/2026-08-21/`, yandex — локальный mock-репо `data-ym/upstream-mock`, tasks.json `repo=/app/data/upstream-mock`). Оба независимо: publish **0.2.0** → verdaccio `@apilki/*@0.2.0` (0.1.0 в истории), gitea `v0.2.0` на 4 репо, README-штамп `Версия: 0.2.0 · API от 2026-08-21`. **Единообразие алгоритмов подтверждено живьём** (оба: спека→minor, рецепты→patch, ref publish-model.md; ozon хэширует один файл, yandex — дерево). +- **Откат**: снапшот 2026-08-21 удалён, upstream-mock удалён, tasks.json repo → реальный github, clone пересоздан с реального апстрима `6be0108668e6`, state восстановлен из `*.bak-2026-08-21` (оба 0.1.0). Контрольный ран: **noop у обоих** ✅ +- Остатки: `data-ozon/state.json.bak-2026-08-21` untracked (мусор, можно gitignore'нуть `*.bak` в data-*). -## Стенд-особенности +## Open треки -- 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 и т.д.). +| Трек | Готовность | Entry-point | +|---|---|---| +| Реальный деплой (npmjs + github.com) | ждёт отмашки | NEXT_SESSION «Спроси user'а» | +| sched-vds-deploy | 🟡 paused | .tasks/STATUS.md — ждёт результатов books→sched | +| books миграция на sched | в процессе | victor/books `sched-migration-phase-3` (blocked до закрытия phase-3), victor/sched `books-sched-integration` (paused) | ## Спроси user'а -- **Реальный деплой**: npmjs + github.com (не мок). Требует отмашки + настоящие - NPM_TOKEN/GITHUB_TOKEN (в pass). Юзер ранее: «в следующей сессии» / «жди обоих». - Не гонять без явной команды. +- **Реальный деплой**: npmjs + github.com (не мок). Требует отмашки + настоящие NPM_TOKEN/GITHUB_TOKEN (в pass). Юзер: «по результатам решим» (в контексте sched-vds-deploy); про реальный деплой apilki-билдеров отмашки не было. Не гонять без явной команды. - (нет на этом раунде) ## Не делать (preemptive guards) - Не запускать реальный publish в npmjs/github.com без явной отмашки. -- Не писать токены в git/handoff/письма (secrets rule: только pass). -- Не лезть в код агентов самим (юзер: «ты сам в код не лезь») — фиксы через - режект-письма; исключение — стенд-конфиг (.admin) и мои инжекции типа a131fd2. +- **sched-vds-deploy не запускать** — paused по решению vitya (2026-08-21), ждём миграцию books→sched. +- Не писать токены в git/handoff/письма (secrets rule: только pass). ⚠️ В tasks.generated.json живёт токен в PUBLISH_REMOTE_BASE — gitignored, не коммитить. +- Не лезть в код агентов самим (юзер: «ты сам в код не лезь») — фиксы через режект-письма; исключение — стенд-конфиг (.admin). - Не трогать `llm-router-failover-proxy` (юзер закрыл 2026-08-18). ## Memory updates за сессию -- **Артефакты для books**: verdaccio.kzntsv.site → `@apilki/ozon-seller@0.1.0`, `@apilki/yandex-market@0.1.0` (юзер скормит их books — там тесты). Доступ к verdaccio — токен из `pass`/стенда. -- Кандидат на wiki-ingest: паттерн «мок не зеркалит прод-контракт» — 3 случая за - кампанию (readFile, fetch-Response .body, npm cwd/.npmrc). Не заингещено — - предложить юзеру в след. сессии (shared wiki, concepts/mock-must-mirror-prod-contract). -- Кандидат: «репо создаётся до сборки контента → мёртвые пустышки» (github-distro). -- Ack-письма обоим пирам отправлены 07:52Z. +- **publish-model подтверждён живьём**: спека→minor (0.1.0→0.2.0), рецепты→patch (0.1.0→0.1.1), старт 0.1.0 без бампа, noop при отсутствии изменений. Оба воркера идентичны. +- **Кандидат на wiki-ingest (shared)**: паттерн «симуляция апстрим-апдейта в мок-стенде» — подложить снапшот (ozon) / локальный git-апстрим (yandex, fetch.js принимает локальный путь) + откат (restore state из .bak + контрольный noop-ран). Не заингещено — предложить юзеру. +- **Кандидат (из прошлой сессии, не заингещено)**: «мок не зеркалит прод-контракт» — 3 случая (readFile, fetch-Response .body, npm cwd/.npmrc) → concepts/mock-must-mirror-prod-contract. +- Бонус-наблюдение: поллер синхронизирует доску (meta-коммиты sched-vds-deploy 10:32–11:30Z) — при пуше .admin бывает не-fast-forward, тянуть `--ff-only` после stash.