SaaS-мониторинг Telegram: ядро (модули Cards/Kanban/Pipeline/Tenants/Settings/ Discovery, Api, Infrastructure), сервисы telegram/ai/ml/storage, фронт Vue, контракты и grpc-hosting, деплой-конфиги (dev/prod/observability/CI-раннер), Gitea Actions CI, документация (ТЗ, техдок, api-map, код-стайл, планы, бэклог). Текущее состояние: все этапы роадмапа 0–12 закрыты, сборка 5 sln 0/0, тесты 1340/130/52/38/9 зелёные.
10 KiB
Финальная «подбивка» документации «Дейл» (2026-09-11)
Дата: 2026-09-11 Периметр: все
docs/**(актуальные доки — spec/user-guide/technical/api/STATUS; исторические —plans/*,reviews/*,specs/*, старыеarchitecture/*). Метод: сквозной поиск по проблемным терминам (Boards,ProjectCards,Deal.Modules.Projects,ProjectStages, корневойdocker-compose.yml,DEAL_DEMO, демо-эндпоинты,l_/pr_,app_settings, «лид» как сущность, старые порты/пути/счётчики тестов) + чтение актуальных доков и сверка с кодом (src/**,deploy/compose.*.yml,scripts/dev-smoke.sh,deploy/observability/grafana/dashboards/). Докер не поднимался, тесты не перезапускались. Предшествующий аудит —2026-09-10-docs-audit.md(30 расхождений, уже помечен как исторический).
Сводка
- Найдено новых расхождений: 9 (по таблице ниже).
- Исправлено в актуальных доках: 9.
- Добавлено исторических пометок: 20 файлов.
- Переписывание содержания исторических артефактов не выполнялось (по правилам задачи).
Расхождения (файл:строка → в доке → реальность → действие)
| # | Файл:строка | В доке | Реальность | Действие |
|---|---|---|---|---|
| 1 | docs/superpowers/STATUS.md ~L4 |
«Все этапы 0–10 выполнены (100%)» | таблица этапов — 0–12, «Итого 0–12 = 100%» (строка ниже) | ✅ исправлено на 0–12 |
| 2 | docs/superpowers/STATUS.md ~L25 |
этап 10 — «ELK-дашборды» | стек — Loki + promtail + Grafana (deploy/observability/grafana/dashboards/Deal-*.json); Elasticsearch/Kibana нет |
✅ «Grafana/Loki-дашборды» |
| 3 | docs/superpowers/STATUS.md ~L54 |
«Настройки (ключи AI/Telegram enc:, промпты, валюты)» у тенанта | ключи Telegram — глобально у оператора (public.global_settings); у тенанта только подключение аккаунта |
✅ «ключи AI enc: …; Telegram-ключи — глобально у оператора» |
| 4 | docs/superpowers/STATUS.md ~L134 |
«судьба legacy docker-compose.yml» (открытый вопрос) |
файл перенесён в archive/leadradar-legacy/ (2026-09-10) |
✅ «перенесён в archive/leadradar-legacy/» |
| 5 | docs/superpowers/STATUS.md ~L141 |
«Core-тесты 1245/1245» | актуально 1275/1275 (в том же разделе ниже уже 1275) | ✅ исправлено на 1275/1275 |
| 6 | docs/superpowers/STATUS.md ~L167 |
«реестр id-стадий ProjectStages» |
с этапа 9 каталог — CardsDefaultContainers (Deal.Modules.Cards/Application/CardsDefaultContainers.cs) |
✅ аннотировано «(с этапа 9 — CardsDefaultContainers)» |
| 7 | docs/superpowers/STATUS.md ~L7, ~L94 |
«dev-smoke 12/12» (в двух местах) | scripts/dev-smoke.sh выполняет 14 проверок (config + 6 контейнеров + login/status/containers/create/list/trash/ML-флашер); таблица этапа 9 уже фиксирует PASS=14 |
✅ исправлено на 14/14 |
| 8 | docs/technical/Техническая-документация-Дейл.md §8 ~L319 |
dev-smoke.sh: «… → /api/tg/status → simulate-lead → флашер MlOutbox …» |
скрипт: /api/tg/status → POST /api/cards → trash → флашер MlOutbox |
✅ заменено на POST /api/cards → trash |
| 9 | docs/user-guide/Инструкция-пользователя-Дейл.md ~L6, L32-34, L41, L262 |
«dev/демо-окружение», «демо-пространство с входом admin/admin» |
демо удалено; dev-seed создаёт bootstrap-тенанта Default (env DEAL_BOOTSTRAP_LOGIN/PASSWORD, дефолт admin/admin) |
✅ «Dev-окружение», «bootstrap-пространство Default» |
Добавленные исторические пометки
Единая шапка: > Исторический документ этапа N. Актуальное состояние — docs/superpowers/STATUS.md и docs/technical/Техническая-документация-Дейл.md.
Планы (docs/superpowers/plans/, 15 файлов):
2026-09-04-channel-discovery.md (план Discovery прототипа LeadRadar),
2026-09-05-deal-roadmap.md (roadmap этапов 0–7),
2026-09-05-deal-scaffold.md (этап 0),
2026-09-05-deal-stage1-tenancy.md … 2026-09-05-deal-stage7-saas.md (этапы 1–7),
2026-09-09-deal-stage9-unified-card.md (этап 9),
2026-09-10-deal-stage10-operator-analytics.md (этап 10),
2026-09-10-deal-stage11-i18n.md (этап 11),
2026-09-10-deal-stage12-observability-hardening.md (этап 12).
Ревью (docs/superpowers/reviews/):
2026-09-08-code-quality-review.md (этап 8),
2026-09-10-tz-compliance-audit.md (аудит соответствия ТЗ),
2026-09-10-docs-audit.md (аудит документации; добавлена ссылка на текущий отчёт).
Специи/архитектура:
docs/superpowers/specs/2026-09-04-channel-discovery-design.md (дизайн Discovery прототипа),
docs/architecture/2026-09-05-deal-architecture-design.md (архдизайн-черновик),
docs/architecture/2026-09-09-unified-card.md (дизайн единой карточки, этап 9).
Не тронуты по существу (актуальны): docs/architecture/2026-09-10-unified-api-contract.md,
docs/architecture/2026-09-10-operator-analytics-contract.md.
Проверено и сходится
- Единый API:
/api/cards+/api/containers;api-map§1/§3.5 корректно фиксирует удаление/api/leads|projects|boards|columnsи переименованиеnew_lead → new_card; ссылки на «бывшие» домены — в контексте «удалено», а не как действующие. - Ключи Telegram: spec §4.1/§8, user-guide §3, api-map §6, technical §13.7/§13.10 — везде у оператора
(
/api/operator/settings/telegram-keys,public.global_settings). - Оператор-консоль/активация:
#/operator,#/join?code=…— spec §10, user-guide §11, technical §13.10, api-map — совпадают. - Порты: core 5080/5082, telegram 5101, ai 5102, ml 5103, metrics 9464, postgres 5433, minio 9000/9001, grafana 3001, prometheus 9090 — совпадают между spec/user-guide/technical/api и compose-файлами.
- Core-тесты: 1275 (technical §13.6/§16, STATUS таблица/итоги) — противоречий в актуальных доках нет.
- Префиксы id:
c_(единый) — api-map §4.1, technical §11/§12/§8;l_/pr_в актуальных доках отсутствуют (остались только в помеченных исторических разделах и внешних исторических артефактах). app_settings: в актуальных доках нет; актуальная таблица —global_settings(public).- Исторические артефакты:
Boards/ProjectCards/Deal.Modules.Projects/ProjectStages/DEAL_DEMO/ демо-ручки/docker-compose.ymlвстречаются только в документах, получивших историческую пометку.
Осталось спорным / намеренно не тронуто
- Ссылка из spec на исторический архдизайн.
docs/spec/ТЗ-дейл-новая-архитектура.md(шапка) указывает среди связанныхdocs/architecture/2026-09-05-deal-architecture-design.md— документ теперь помечен историческим. Формально не ошибка (файл существует, помечен), но при следующей редакции ссылку, возможно, стоит заменить на2026-09-10-unified-api-contract.md. tgKeysв historical §13.4b технического дока (GET /api/settingsперечисляетtgKeys): раздел помечен историческим (§13 шапка + заметка §13.4a о переносе ключей к оператору). По правилам задачи содержание исторических разделов не переписывалось.- Счётчики тестов сервисов (telegram 125, ai 52, ml 38): не перепроверялись кодом/прогоном (запрет на долгие процессы); в актуальных доках они не противоречат друг другу.
- «Live SaaS 15/15» — цифра из исторических приёмок, независимо не подтверждалась.
- Число операторских ручек (25) в api-map §5 — подсчёт по
Endpoints/Operator*+/api/join; группировка может отличаться от авторской (ранее было 21). Не перепроверялось. - Исторический журнал §11 техдока (этапы 1–7) и §13.4c/4d/4e намеренно сохраняют легаси-термины под пометками; сведение их в ссылки на §3 — задача следующей редакции, а не этой подбивки.
docs/architecture/2026-09-10-*(контракты) по условию задачи не редактировались; они актуальны.