# 🚀 ПРОМТ СЛЕДУЮЩЕЙ СЕССИИ — добить остаток находок приёмки

> Вставь как первый промт. Кодовая фраза стены: **«роутер-наставник»**.

## Что уже сделано (22.06.2026) — НЕ повторять

По находкам приёмки боевого liderra.ru закрыто кодом **6 находок** (TDD, проверено
глазами/руками), **3 коммита на gitea** (`e8e5c82b` → `37a8a5c1` → `7fd3cde4`),
**НЕ на проде** (владелец накатит всё вместе позже):

- **FN-RESET** — сброс пароля (createUrlUsing). **FN-LOGIN-ROUTE** — 401 JSON вместо
  route('login')-500. **FN-SESSION** — диагностируемость Playwright (launch→exit 4+JSON);
  окружение на проде уже вылечено переустановкой 21.06.
  - FN-RESET — ✅ подтверждено по коду 22.06.2026 (`app/app/Providers/AppServiceProvider.php:88-92`), ✅ НА ПРОДЕ (проверено по боевому 22.06.2026).
- **FN-2** — мёртвый `reminder` убран из DEFAULT notification_preferences (миграция).
  **FN-3** — confirm ставит email_verified_at. **FN-ENC** — CsvLeadsParser чистит битый UTF-8.
  - FN-2 — ✅ подтверждено по коду 22.06.2026 (`app/database/migrations/2026_06_22_120000_drop_reminder_from_notif_prefs_default.php`), ✅ НА ПРОДЕ (проверено по боевому 22.06.2026).
  - FN-3 — ✅ подтверждено по коду 22.06.2026 (`app/app/Services/Auth/RegistrationService.php:115`), ✅ НА ПРОДЕ (проверено по боевому 22.06.2026).
  - FN-ENC — ✅ подтверждено по коду 22.06.2026 (`app/app/Services/Import/CsvLeadsParser.php:37`), ✅ НА ПРОДЕ (проверено по боевому 22.06.2026).
- **No-action (не баги):** FN-1 (supplier «Doubles», джоба ретраит), FN-RLS-CTX (уже
  разрешено), **«лиды не идут» — владелец сам выключил проекты** (намеренно, подтверждено 23.06 —
  не дефект; «омега» = выключены проекты главного клиента tenant 2) →
  [findings/2026-06-23-balance-block/2026-06-23-LEADS-STOPPED-correction.md](../findings/2026-06-23-balance-block/2026-06-23-LEADS-STOPPED-correction.md).

Память: [[project-findings-fix-2026-06-22]]. Статусы — в отчёте приёмки
`docs/superpowers/specs/2026-06-21-acceptance-RUN-report.md` (разделы «Поправка 22.06»,
«Статус мелких находок», «Новые находки»).

## Что осталось (твоя задача)

**Код-фиксов больше нет — все локально-чинимые находки закрыты.** Осталось:

### A. Диагностика прода (read-only, можно делать тебе)
1. **FN-INN-LOOKUP** 🆕 — на боевом Настройки→Реквизиты→ЮРЛИЦО кнопка «Найти по ИНН»
   не находит организацию по валидному ИНН (пример `2460090423`). Это DaData
   party-lookup (`TenantRequisitesController::lookupInn` / `PartyLookup`, флаг
   `services.dadata.party_enabled` + ключ DaData). Проверить read-only: включён ли флаг
   на проде, есть ли ключ, не падает ли запрос (греп лога). Вероятно выключен/мисконфиг.
2. **FN-AUDIT** — `audit:verify-chains` краснеет на свежих app-строках текущего месяца
   (m06) во время прогона, самоизлечивается после teardown. Разобрать почему свежие
   строки sharing-flow не верифицируются + почистить ложные transient-инциденты m06.

### B. Действия владельца / прод (не тебе — напомнить и подготовить)
- **FN-FAILEDJOBS-PILE** — ✅ СДЕЛАНО на проде 22.06.2026: `queue:flush` выполнен, было 494 191 → стало 0.
- **tenant 24** — ✅ СДЕЛАНО на проде 22.06.2026: онбординг-аккаунт `kdv1@bk.ru` (300₽, 0 сделок/транзакций) удалён soft-delete (тенант+пользователь, `deleted_at`), активных тенантов осталось 1 (омега). Обратимо (бэкап `/tmp/tenant24-backup-*.json`).
- **M-1** — админ-зона на nginx-пароле (fail-open) — бизнес-решение defense-in-depth.
- **ops при деплое** — `npx playwright install chromium-headless-shell` под www-data
  (профилактика рецидива FN-SESSION) — см. `docs/superpowers/runbooks/2026-06-22-FN-SESSION-diagnosis-and-ops-fix.md`.
- **Совместный накат** всех 3 gitea-коммитов на боевой liderra.ru.

## Жёсткие правила
- **Прод НЕ чинить вживую.** Диагностика — read-only (`ssh liderra-prod '<одна read-команда>'`,
  `sudo -u postgres psql -c 'SELECT…'`). Без пайпов/цепочек.
- **Омегу (`tenant 2`, 1 835 400₽ / 1013 сделок) НЕ трогать.**
- Коммит/пуш — **только с явного слова владельца**; пуш — в **gitea** (`git push gitea main`),
  github мёртв. Под опущенной стеной: `LEFTHOOK=0 git commit -F файл` (paren-free), gitleaks
  по staged вручную. Память — фраза «memory dump».
- Не уверен — спроси. Не выдумывай — открой и проверь. Каждый фикс — глазами и руками.

## Первый шаг (рекомендация)
Начать с **FN-INN-LOOKUP** (быстрая read-only диагностика DaData на проде: флаг + ключ +
греп лога на ошибку lookup), вывести владельцу вывод, решить — чинить кодом (если флаг/
конфиг) или это owner-действие. Параллельно можно глянуть FN-AUDIT.
