March 29, 2026

Kill Topic Classifier & Refactor Digest Worker

The TopicClassifierService, TwoSignalBoundaryService, and RecentTopicService were completely removed, along with all associated tests and benchmarks

The TopicClassifierService, TwoSignalBoundaryService, and RecentTopicService were completely removed, along with all associated tests and benchmarks.

In backend/workers/digest_worker.py, several imports were removed, and the main path logic was drastically simplified to use thread_id as the context topic.

Classification logic in digest_worker.py was replaced with a static synthetic result and a direct call to EmbeddingService().generate_embedding(text).

Several counters and timing metrics in digest_worker.py, thread_conversation_service.py, and metrics_service.py were renamed from ‘classification’ to ‘embedding’ for consistency.

The TopicContext dataclass in backend/services/topic_context.py was cleaned up by removing classifier-specific fields like is_boundary and just_reset_from_silence.

Dead code cleanup included removing stale Redis key patterns referencing the deleted services from backend/api/privacy.py.

The schema service was updated in backend/services/schema_service.py by removing the topics_vec virtual table reference.

Stale benchmark and results artifacts related to the boundary service were deleted from backend/tests/benchmarks/results/.

  • Deleted TopicClassifierService, TwoSignalBoundaryService, RecentTopicService and related code.

  • Digest worker now uses direct EmbeddingService + thread_id as topic key.

  • Metrics counters and operations were renamed from ‘classification’ to ‘embedding’.

  • Removed classifier-specific fields from TopicContext.

  • Stale Redis key patterns referencing the removed services were cleaned up.

  • The topics_vec virtual table was removed from schema definitions.