---
name: kodoceh-cabinet-session-probe
description: "Как проверять авторизованные экраны ВакХантера и Автеро — выпускать сессионную куку их же make_session() для существующих тестовых аккаунтов; пароли не вводить, аккаунты не создавать"
metadata: 
  node_type: memory
  type: reference
  originSessionId: b11e39bd-4f6f-47c9-ba7b-680ccf041a5b
  modified: 2026-08-06T16:36:00.967Z
---

Кабинеты `/app` и `/admin` отдают 200 без входа (гейт клиентский), но реальные экраны видно только
с сессией. Логиниться вводом пароля нельзя и не нужно — обе апы выдают **HMAC-подписанную куку**
своей же функцией, и её можно выпустить на сервере, где лежит секрет. Тот же приём, что с пробником
ops_dashboard ([[ops_dashboard_session_cookie]]).

**Существующие тестовые аккаунты** (новых не заводить): `8688355181` — `Claude_Top`, общий тестовый
(он же в [[tg_playwright_probe_addressing]]); `1005954706` — админ (`ADMIN_IDS` у ВакХантера,
`BOT_ADMIN_USER_IDS` у Автеро).

**Выпуск куки — каждым своим интерпретатором**, общий venv не подойдёт:
- ВакХантер: `~/Services/VakHunter/venv/bin/python`, `from web import webapp as vh` →
  `vh.make_session(user_id, name)`, кука `vh_session`.
- Автеро: `~/Services/avtero-venv/bin/python3`, `from app import webauth as av` →
  `av.make_session({"tg_id":…, "name":…, "account_id":…})`, кука `pk_session`.

**Инструменты уже умеют куку** (2026-08-06): `verify_any.py <url> "имя=значение"` и
`shotauth.py <url> <out> <theme> <width> "имя=значение"` в `~/Services/shared/tools/impeccable/`.
Куку добавили в существующий измеритель, а не завели второй: два измерителя разъезжаются, и разница
в числах оказывается про инструмент, а не про сайт.

**Приватность:** админки показывают реальных пользователей (13 у ВакХантера). Смотреть верстку можно,
переносить персональные данные в заметки, память и отчёты — нельзя.

**Что этот вход сразу вскрыл** (ничего из этого не видно анонимно):
`var(--accent-text)` использовалась в кабинете ВакХантера **74 раза и не была объявлена нигде** —
`color` с неизвестной переменной невалиден и молча наследует цвет родителя; `var(--elevated)` не была
объявлена тоже, из-за чего всплывающая карточка «Зарплата выше вашей» была **сквозной** и её текст
накладывался на карточки под ней. Плюс шапке кабинета не передавали `accentInk`, и «Личный кабинет»
красился чистым акцентом (3.2 и 3.13). Правило: **грепом `var(--x)` против объявленных в `globals.css`
проходить по каждому приложению** — это ловится за секунды и молчит годами.

**Было «ложная тревога, не чинить»** — вкладки «Вакансии»/«Все» в тёмной теме измеритель показывал
как 1.08, потому что фон там рисует абсолютно позиционированный `motion.span` (layoutId-пилюля),
а обход предков его не видит. **Исправлено в самом измерителе 06.08.2026**, см.
[[contrast_meter_occlusion_rule]]: теперь фон берётся из `elementsFromPoint` начиная с самого
элемента. После правки контраст в обоих кабинетах — 0 нарушений в обеих темах.
