ci / build-test (push) Canceled after 0s
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 зелёные.
96 lines
10 KiB
Markdown
96 lines
10 KiB
Markdown
# Финальная «подбивка» документации «Дейл» (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` встречаются только в документах, получивших историческую пометку.
|
||
|
||
## Осталось спорным / намеренно не тронуто
|
||
|
||
1. **Ссылка из spec на исторический архдизайн.** `docs/spec/ТЗ-дейл-новая-архитектура.md` (шапка)
|
||
указывает среди связанных `docs/architecture/2026-09-05-deal-architecture-design.md` — документ теперь
|
||
помечен историческим. Формально не ошибка (файл существует, помечен), но при следующей редакции ссылку,
|
||
возможно, стоит заменить на `2026-09-10-unified-api-contract.md`.
|
||
2. **`tgKeys` в historical §13.4b технического дока** (`GET /api/settings` перечисляет `tgKeys`): раздел
|
||
помечен историческим (§13 шапка + заметка §13.4a о переносе ключей к оператору). По правилам задачи
|
||
содержание исторических разделов не переписывалось.
|
||
3. **Счётчики тестов сервисов** (telegram 125, ai 52, ml 38): не перепроверялись кодом/прогоном
|
||
(запрет на долгие процессы); в актуальных доках они не противоречат друг другу.
|
||
4. **«Live SaaS 15/15»** — цифра из исторических приёмок, независимо не подтверждалась.
|
||
5. **Число операторских ручек (25)** в api-map §5 — подсчёт по `Endpoints/Operator*` + `/api/join`;
|
||
группировка может отличаться от авторской (ранее было 21). Не перепроверялось.
|
||
6. **Исторический журнал §11 техдока** (этапы 1–7) и §13.4c/4d/4e намеренно сохраняют легаси-термины
|
||
под пометками; сведение их в ссылки на §3 — задача следующей редакции, а не этой подбивки.
|
||
7. **`docs/architecture/2026-09-10-*`** (контракты) по условию задачи не редактировались; они актуальны.
|