Files
Deal/.superpowers/sdd/channel-discovery/task-8-brief.md
T
Rustam Khalimov 27c7831910
ci / build-test (push) Canceled after 0s
Deal — единая кодовая база
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 зелёные.
2026-09-11 23:56:47 +03:00

1.6 KiB

Task 8: Фронтенд — store + каркас подвкладки «Поиск»

Files:

  • Modify: frontend/src/store.js
  • Create: frontend/src/views/DiscoveryView.vue
  • Modify: frontend/src/views/ChannelsView.vue

Interfaces:

  • state: channelsTab: 'list' | 'search', discTasks: [], discCandidates: [], discBlacklist: [], discLog: [], discActiveTaskId: null, discCandidateStatus: 'review', discBusy: false.

  • store-функции: gotoChannelsTab(tab), loadDiscTasks(), saveDiscTask(form, id=null) (create/patch), deleteDiscTask(id), startDiscTask(id), pauseDiscTask(id), generateDiscKeywords(taskId), loadDiscCandidates(taskId, status), joinDiscCandidate(c), rejectDiscCandidate(c), loadDiscBlacklist(), removeDiscBlacklist(id), loadDiscLog(taskId).

  • Step 1: store.js — состояние + функции (паттерны: api.get/post/patch/delete, toast, errMsg).

  • Step 2: ChannelsView.vue — в шапке сегмент: «Каналы | Поиск» (state.channelsTab), содержимое по табу.

  • Step 3: DiscoveryView.vue (каркас): левая колонка — список задач (+ «Новая задача»); правая — панель задачи: мастер (name, description, «Сгенерировать ключи ИИ», чипы ключей редактируемые, minSubscribers, lang select ru/any, threshold, sampleSize, planJoins, autoJoin toggle, кнопки «Запустить/Пауза/Удалить»).

  • Step 4: npm run build — без ошибок.