0.100.0

Added

  • Курсор для batch-consolidator (consolidator_cursor:<agent_id>:<scope>): фоновый сервис больше не пересчитывает одни и те же сообщения. Хранится максимальный обработанный message.ID в settings. После каждой консолидации (даже с пустым результатом) курсор продвигается. Это убирает основную причину избыточных факт-рефраз (см. аудит P1).
  • Auto-cleanup устаревших фактов (internal/memory/cleanup.go): новый фоновый сервис FactCleanupService деактивирует факты, у которых: access_count=0 AND age > cleanup_age_days(14) AND confidence < cleanup_min_confidence(0.6), кроме source_type=manual. История события — action="auto_cleanup". Интервал: cleanup_interval_hours (default 24, первый запуск через 10 минут).
  • Метрики памяти в /api/v1/metrics и Prometheus:
  • taigaclaw_memory_auto_cleanup_deactivated_total (counter)
  • taigaclaw_memory_active_facts{agent_id} (gauge)
  • taigaclaw_memory_facts_access_zero{agent_id} (gauge)
  • taigaclaw_memory_facts_unused_30d{agent_id} (gauge)
  • taigaclaw_memory_facts_by_category{agent_id, category} (gauge)
  • taigaclaw_memory_facts_by_subject{agent_id, subject} (gauge)
  • В JSON: Snapshot.Memory с теми же полями
  • UI: evidence и subject в карточке факта на странице /agents/<id>/memory:
  • Цитата-источник под content (italic, в кавычках «...»)
  • Badge subject (user/agent/world) рядом с category
  • Поля evidence/subject добавлены в MemoryFact в web/src/lib/api/client.ts
  • Новые тесты (internal/memory/iter19_test.go): CursorSkipsAlreadyProcessed, CursorAdvancesEvenWhenEmpty, RemovesStaleZeroAccess, KeepsHighConfidence, KeepsRecentlyAccessed, PublishesMemoryMetrics, RecordsCounter, ParseFactTime, Prometheus_MemoryFormat (10 кейсов).

Changed

  • internal/memory/consolidator.go: consolidateAgentMessages использует курсор и продвигает его после persist (даже на пустом результате).
  • cmd/taigaclaw/main.go: FactCleanupService подключён к жизненному циклу, останавливается в gracefulShutdown.

Docs

  • ADR docs/adr/2026-05-22-fact-cursor-cleanup-metrics.md — решения и альтернативы.
  • docs/features-matrix.md — раздел 2.5 расширен.