Files
admin/.tasks/NEXT_SESSION.md

5.8 KiB
Raw Blame History

_last_updated_, session_id, prev_session_id
_last_updated_ session_id prev_session_id
2026-08-12T12:00:00Z 2026-08-12-admin-kreknin-gitea 2026-08-10-admin-pi-inbox-monitor

Next session handoff

Главное за сессию (2026-08-12)

Gitea на kreknin установлен и работает: https://git.kreknin.site/ (LE-серт).

  • Gitea 1.27.1 + postgres 16, чистые контейнеры (/volume1/docker/gitea/), БД на volume1 (не SSD — требование). Админ kreknin (pass kreknin/gitea).
  • Traefik на kreknin починен: лежал с 07-31 (restart policy был no) → restart: unless-stopped. Проброс 80/443→8000/4443 добавлен в GUI Keenetic (API KeeneticOS Viva закрыт для curl — только GUI).
  • ОСТАЛОСЬ: DNS-override на Keenetic — «Домашняя сеть → Доменные имена»: git.kreknin.site → 192.168.1.43, kreknin.site → 192.168.1.43. NAT loopback у Алексея сломан (из его LAN внешние адреса не открываются) — без этой записи он сам не зайдёт на свой gitea. Проверить с его LAN.
  • Пароль Keenetic: pass kreknin/keenetic (t3r1a4k314).
  • Keenetic отваливался на провайдере (не свет) — монитор-расширение сработал, удалён после завершения.

Pi-доставка инбокса (2026-08-10)

  • Глобальное pi-расширение inbox-monitor.ts (source of truth: .common/lib/pi-extensions/, деплой: ~/.pi/agent/extensions/ — byte-identical) — session-scoped: смотрит только <ctx.cwd>/.claude-inbox/ (свой проект). ПЕРВАЯ версия (глобальный скан всех инбоксов) отменена в тот же день — правило vitya: «ты другие инбоксы читать не имеешь права. Только в своей директории». PUSH-поллер 15s (интерактив) + PULL agent_settled sweep, доставка через sendUserMessage с заголовком [inbox] <имя-файла>, move в .read/. Headless (pi -p) — доставки нет, сообщения ждут интерактив.
  • Тесты: inbox-monitor.test.mjs — 3 блока ALL PASS (node --experimental-strip-types). Живой лоад в pi 0.84.1 подтверждён headless-прогоном.
  • Скил: session-inbox-monitor v0.3.0, секция «Pi support» (claude-skills 07e7820). .common 2ad8199.
  • TODO: при следующей интерактивной pi-сессии сделать /reload (или расширение подхватится само при старте новой сессии).

Старый контекст (2026-08-07)

Эпик flat-fields ЗАКРЫТ. fields[] убран — поля в корне объекта. Loader мигрирован.

  • @snolla/snolla → @snolla/web — 7 сайтов пересобраны и передеплоены (вторая волна ренеймов)
  • Content-Type гейтинг — vendor-Accept (application/vnd.snolla.admin+json) только для web-админки. Default = корневые поля. Save: Content без vendor → 400.
  • fields[] → корневые поля — admin-api 0.4.0 (read/write flat), client 0.5.2 (index-signature), schema-gen 0.2.1 (генератор flat). Вся тройка published+pushed.
  • Loader → flat root fields — pilorama98 0db46e1 в проде. Тесты 105/105. yml_category_id + short_description для required-полей.
  • Content-валидация — admin-api 0.5.0 published (snolla), НЕ развёрнута на пилораме.

Open треки

Трек Готовность Entry-point
admin-api 0.5.0 (валидация) → пилорама published, ждёт волны бамп в apps/web + деплой
yml_category_id — маппинг для YML-фида эмпирически сверен, нужен production-тест loader bin/index.js + фид
Коллизия description (контент-поле ↔ колонка) на snolla/schema-gen при следующей встрече
Loader прод-импорт (живой) НЕ запускался после 0.4.0 решение vitya

Спроси user'а

  • Деплоить admin-api 0.5.0 (валидация) на пилораму сейчас или со следующей фичей?
  • Запускать живой импорт loader'а через новый flat API?

Не делать (preemptive guards)

  • НЕ слать vendor-Accept из loader'а — это только для web-админки snolla
  • НЕ деплоить admin-api 0.5.0 без проверки required-полей (79/229 продуктов были без yml_category_id)
  • Portainer PUT: НЕ использовать Env:[] — очищает секреты. Всегда fetch + re-supply.
  • НЕ ротировать sk_6a83…
  • НЕ слать директивы другим сессиям без сверки с vitya

Memory updates за сессию

  • snolla-namespace-wins — подтверждён: вторая волна ренеймов (@snolla/snolla→web)
  • admin-api-vds-deploy — обновлён: стек 25 retire, admin-api в pilonuxt
  • portainer-env-empty-clears-secrets — новый: Portainer PUT с Env:[] = потеря всех секретов
  • admin-api-content-gating-vendor-accept — новый: vendor-Accept = web-admin only, default = flat fields
  • piloruxt-build-needs-generated-dir — новый: src/generated/ gitignored, нужно scp перед docker build