Files
Deal/backlog.md
T
Rustam Khalimov c06ee1cf79 Добавить сухой прогон текста по конвейеру
POST /api/admin/check-message прогоняет текст через стоп-правила, глобальные исключения, ML и ИИ без создания карточки (PipelineWorkerService.DryRunAsync), отдаёт этапы, разбор и целевой контейнер. UI тестера в настройках переведён на новый контракт. Зафиксированы решения по вложениям (медиа-посты пропускаем).
2026-09-11 17:08:34 +03:00

12 KiB
Raw Blame History

Бэклог (техдолг и отложенные задачи) — «Дейл»

Назначение: единый источник отложенного/запланированного. Роудмап черпается отсюда. Статусы: BACKLOG (сделаем при потребности), DEFERRED (отложено осознанно, вне текущих рамок), MANUAL (нужны внешние условия: креды, хост, прод), TECHDEBT (качество/архитектура). Приоритет: P1 (важно), P2 (полезно), P3 (когда-нибудь). Обновлять при каждом заходе; выполненные пункты переносить в docs/superpowers/STATUS.md и вычёркивать здесь.

1. Продуктовые фичи (по потребности)

ID Пункт Источник Приоритет Статус
BL-I18N Переключатель языка в UI + второй язык (en) + locale-aware форматирование (Intl), плюрализация. Основа (вынос строк в ресурсы, registerLocale) готова ТЗ §11, этап 11 P3 BACKLOG
BL-TG-MULTI Мультиаккаунтность Telegram (сейчас 1 аккаунт на тенант) ТЗ §12 P2 DEFERRED
BL-ML-EXP Экспорт/импорт ML-моделей (перенос «мозгов» между инстансами) обсуждение этапа 12 P3 DEFERRED (решено не делать; вернуться при SaaS-масштабе)
BL-RECLASS-SSE Стриминг-прогресс пакетной переклассификации + финальный тост (сейчас синхронный проход + событие cards_reclassified) этап 12, D P3 BACKLOG
TD-CARD-MERGE Полное слияние внутренних DTO карточки в единый CardDto (наружу уже единый) этап 9/11 P3 TECHDEBT
TD-PROTO-COMMENTS Сделано (2026-09-11): из комментариев убраны ссылки на процесс/прототип (Task/Ruling/этап/python L…/main.py/прототип/LEADRADAR_*), удалены блоки <remarks>, <summary> сжаты до короткой фразы; //-комментарии со ссылками удалены, в .proto — тоже. Строк комментариев 27 210 → ~19 100 запрос владельца 2026-09-11 P2 DONE
TD-COMMENTS-IFACE Привести код к правилам код-стайла (docs/spec/Код-стайл-Дейл.md). Сделано (2026-09-11): (1) <summary> только блочно — исправлено 5286 шт. в 833 файлах; (2) комментарии только на public/protected — понижено 2028 XML-доков с private/internal (359 файлов). Осталось: (3) не дублировать <summary> интерфейса в реализации (нужен Roslyn-анализ); (4) явная реализация интерфейсов там, где возможно (61 интерфейс, точечный ревью). Скрипты: scripts/fix_summary_blocks.py, scripts/fix_private_docs.py. Детали — docs/spec/Код-стайл-аудит-2026-09-11.md запрос владельца 2026-09-11 P2 TECHDEBT (1,2 — DONE; 3,4 — BACKLOG)
TD-STYLE-ANALYZERS Остаток мягких правил код-стайла: var для встроенных/неочевидных типов (1529, сейчас silent), дедупликация <summary><inheritdoc/> (Roslyn), решение по переводам строк (.editorconfig = CRLF, фактически 231 CRLF / 697 LF). Уже закрыто в .editorconfig (+build-проверка): запрет this. и именование приватных полей (_camelCase; const/static readonly — Pascal). Детали — docs/spec/Код-стайл-аудит-2026-09-11.md аудит 2026-09-11 P3 BACKLOG

2. Инфраструктура и эксплуатация

ID Пункт Источник Приоритет Статус
BL-K8S Kubernetes-манифесты (сейчас docker-compose; k8s — при масштабировании) ТЗ §11/§12, R6 P3 DEFERRED
BL-KAFKA Kafka как шина данных между сервисами (сейчас gRPC + БД-outbox) ТЗ §12, обсуждение P3 DEFERRED
BL-CF Cloudflare / внешний периметр (сейчас Caddy, mTLS; конфиг вне кода) ТЗ §11, техдок §10 P2 MANUAL
BL-CI Внешний CI/CD + SAST + скан зависимостей в пайплайне (сейчас вручную) техдок §8 P2 BACKLOG
BL-IMG-HARDEN non-root/read-only дефолты контейнеров, seccomp/limits техдок §10 P2 TECHDEBT
BL-BACKUP-CRON Автоматизация бэкапов (cron/systemd-примеры есть, реальный прогон — MANUAL) техдок §9 P2 MANUAL

3. SaaS / мультитенантность

ID Пункт Источник Приоритет Статус
BL-BILLING Биллинг и тарифные планы, провайдер платежей ТЗ §12 P3 DEFERRED
BL-SIGNUP Саморегистрация тенантов (сейчас инвайты/оператор) ТЗ §12 P3 DEFERRED
BL-SCALE-1000 Механизм миграций/провижининга на 1000+ схем (пакетная миграция уже есть; шардирование обхода) roadmap этап 0, этап 12 P2 BACKLOG

4. Безопасность и наблюдаемость (доработки)

ID Пункт Источник Приоритет Статус
BL-ALERT-BUDGET Метрика расхода токенов для алерта бюджета (сейчас алерт не настроен — нет метрики) этап 12, A P2 TECHDEBT
BL-LOG-ACTOR Идентичность актора в access-логах (сейчас login/tenant только в audit_log) этап 12, T6 P3 TECHDEBT
BL-GRACEFUL Дополнительные проверки устойчивости/ретраев (по результатам нагрузочного прогона) этап 12, C P2 BACKLOG
BL-SUSPICIOUS Расширение детектора подозрительной активности (правила/пороги по логам безопасности) ТЗ §10.5, этап 12 P3 BACKLOG

5. Технический долг (качество/архитектура)

ID Пункт Источник Приоритет Статус
TD-SETTINGS-UI Вынос оставшихся вкладок SettingsView в отдельные компоненты (частично сделано) ревью 2026-09-08 P3 TECHDEBT
TD-VIRT Полная виртуализация длинных колонок (сейчас — прогрессивный рендер «Показать ещё») ревью, этап 12 P3 TECHDEBT
TD-SSE-DEAD Мёртвые SSE-ветки фронта boards_changed/pipeline_stats (core их не публикует) этап 12, E P3 TECHDEBT
TD-DBL-CLICK Двойная перезагрузка доски у инициатора batch-reclassify (ответ + SSE) этап 12, E P3 TECHDEBT
TD-TEST-HARNESS Историческая гонка FreeTcpPort — устранена; следить за новыми хост-хелперами этап 12, E P3 TECHDEBT
TD-OLD-DOCS Исторические доки несут старые термины под пометками (переписывать не нужно) docs sweep P3 TECHDEBT
TD-SOURCE-PROVIDER ISourceContentProvider/SourceContentResolver и GET /api/cards/{id}/source добавлены; осталось — реализовать провайдеры источников (telegram/local/file) с ленивой догрузкой generic source 2026-09-11 P1 BACKLOG
TD-STORE-ATTACH Выгрузка вложений источника в Storage-сервис адаптером. Решение (2026-09-11): медиа-посты Telegram пропускаем — извлечение/выгрузка не делаются. Остались на будущее: вложения прочих источников (файл/диск/таблица) и ISourceContentProvider для remote-просмотра generic source 2026-09-11 P3 BACKLOG
TD-TG-CORE-SPLIT Перенести оставшуюся Telegram-специфику ядра (TelegramStore, таблицы Dialogs/TgMessages, Discovery) в telegram-сервис. Сделано (2026-09-11): входящий поток переведён на generic sources.proto/PushSource, PushMessage удалён, приём в ядре generic (SourceIngressGrpcService). Осталось: каталог (SyncDialogs/ReportStatus), TelegramStore, Discovery generic source 2026-09-11 P2 TECHDEBT
TD-SOURCE-CONTACTS Квалификатор контактов знает форматы профилей (t.me/@handle) — вынести в расширяемые правила источников generic source 2026-09-11 P3 BACKLOG
TD-APIMAP-COUNT Ручной подсчёт числа операторских ручек в api-map (может расходиться с группировкой) docs sweep P3 TECHDEBT

6. Manual-проверки (нужны внешние условия)

ID Пункт Источник Приоритет Статус
MN-E2E-TG Реальный Telegram-вход (QR) + приём сообщений, backfill, «Перечитать каналы» ТЗ §4, STATUS P1 MANUAL (креды/аккаунт)
MN-E2E-LLM Живые LLM-вызовы (классификация/фильтр/reclassify/расход токенов) ТЗ §89 P1 MANUAL (LLM-ключ)
MN-PROD Прод-развёртывание (хост/домен, Caddy+mTLS, observability-профиль) техдок §13.8 P2 MANUAL (данные хоста)
MN-GRAFANA Живая проверка Grafana-дашбордов метрик/алертов и логов этап 12, A/T6 P2 MANUAL
MN-LOADTEST Живой нагрузочный прогон (scripts/loadtest/) и baseline этап 12, C P2 MANUAL
MN-BACKUP Живой прогон backup.sh/restore на реальных данных техдок §9 P2 MANUAL
MN-THEME Визуальная приёмка светлой темы в браузере этап 12, «Внешний вид» P3 MANUAL

7. Отложено/решено «не делать» (для истории)

ID Пункт Решение
DEC-DEMO Демо-эндпоинты (DEAL_DEMO, simulate-lead) Удалены (этап 9/12)
DEC-LEGACY Легаси-прототип LeadRadar (backend/, mlservice/, корневой compose) Перенесён в archive/leadradar-legacy/ (2026-09-10)
DEC-ML-EXP Экспорт/импорт ML Отложено владельцем (перенесено в BL-ML-EXP)

Как пользоваться

  • Для нового захода: выбрать пункты по приоритету/теме, оформить SDD-план в docs/superpowers/plans/ и ledger .superpowers/sdd/<этап>/, после приёмки — перенести факт в docs/superpowers/STATUS.md, а пункт здесь пометить выполненным/удалить.
  • Пункты MANUAL не блокируют разработку; выполняются, когда владелец даёт креды/хост.