Phase 3 — Frontend + Polish

Digest System · feed-gathering
UI для просмотра дайджестов, safety scanner, temporal tracking.
Production readiness.
Нажми на карточку чтобы раскрыть детали
1

3.1 Temporal Model

Знания устаревают: confidence decay, supersession, stale flagging

Tracking:

  • last_confirmed — обновляется когда re-extraction находит совпадение (dedup уже детектит)
  • Не confirmed за N окон → potentially_stale
  • Decay rate настраивается per profile (AI tooling = быстро, кулинария = медленно)

Связи (уже хранятся из Phase 2):

  • supersedes / superseded_by — query-time: показать последнюю версию, ссылка на историю
  • conflicts_with — показать вместе с визуальным индикатором конфликта
app/digest/temporal.py
2

3.2 Human Review Helpers

Инструменты оценки и улучшения качества экстракции

Функции:

  • Stratified sampling: N items per type per confidence для ревью
  • Error taxonomy: hallucination, misattribution, under-extraction, stale, pointer corruption
  • Трекинг error rates per channel/profile
  • Feedback → gold set updates + few-shot examples
app/digest/review.py
3

3.3 Frontend: Digest Timeline

Страница /feed-gathering/discord/digests — лента дайджестов

Карточка дайджеста:

  • Window range, канал, message count, title, overview excerpt
  • Signal quality индикатор (цветовой: empty/low/medium/high)
  • Badges: кол-во decisions, action items, knowledge items
  • Trigger кнопка per channel
  • Job status (pending/running) для активных

Фильтры:

  • Server, channel, date range
  • "Has action items" / "Has decisions" / "Has knowledge items" toggles
  • "Signal quality ≥ medium" toggle
  • Empty digests collapsed, "Show empty" toggle
front-console
4

3.4 Frontend: Digest Detail

Полный просмотр дайджеста: overview, items, source links

Содержимое:

  • Title + overview (markdown rendered)
  • Decisions с confidence индикаторами
  • Action items со status badges
  • Knowledge items: pointer content в monospace, synthesized обычным текстом
  • context_version badge, entity refs как кликабельные теги
  • Open questions, links с контекстом, artifacts
  • Source message previews → Discord deep links
  • supersedes / conflicts_with визуальные связи
front-console
5

3.5 Frontend: Digest Settings

Per-channel настройки дайджестов + управление профилями

На странице source detail:

  • digest_enabled toggle
  • digest_schedule_minutes input (presets: 6h/12h/daily/weekly)
  • digest_profile_id selector

Profile management:

  • Список профилей, модули, entity dictionary
front-console
6

3.6 Server Rollups

Агрегация channel digests в server-level дайджест
  • Merge channel-level digests — без re-processing сырых сообщений
  • Дедупликация cross-channel items
  • Server digest = union highlights + merged items
  • Trigger после завершения всех channel digests в окне
app/digest/pipeline.py
7

3.7 Search

Полнотекстовый поиск по дайджестам + entity-based search
  • Text index уже есть: overview + topics.label + search_keywords
  • GraphQL: searchFeedGatheringDigests(query, filters)
  • Entity-based: найти дайджесты по entity_refs
  • Результаты с matching excerpts и highlights
app/graphql/digest.py
8

3.8 Ops Dashboard

Мониторинг: качество, стоимость, тренды
  • Дайджесты per channel over time (chart)
  • Items extracted per run тренд
  • Pass 1 elimination rate per channel
  • Validation failure rates
  • Job duration distribution
  • Signal quality distribution
front-console
Temporal
Frontend
Backend
Ops

✅ Exit Criteria

Дайджесты видны в front-console с фильтрами и detail view.
Safety scanner ловит секреты/PII перед хранением.
Temporal tracking помечает stale knowledge items.

← Назад к общему плану · GitHub Issue #12