Add non-blocking thought save path with deferred metadata/embedding enrichment #26

Closed
opened 2026-04-13 20:13:29 +00:00 by sgcommand · 0 comments
Member

Problem

Thought capture must not fail or time out because downstream metadata extraction or embedding generation is slow or unavailable. The current reliability concerns suggest user-facing save requests may still be coupled too tightly to enrichment work.

Impact

  • User-visible timeout/errors during thought save
  • Lost confidence in capture reliability
  • Slow AI/background dependencies can break core write path

Expected behavior

Saving a thought should succeed quickly once the core record is persisted. Metadata extraction and embedding generation should be deferred to background processing and must not block the user request.

Acceptance criteria

  • Thought save returns success after core persistence without waiting for metadata/embedding completion
  • Metadata extraction and embedding generation are queued or scheduled asynchronously
  • If enrichment fails, the thought remains saved and available
  • Failures are recorded for later retry instead of surfacing as request failure
  • Logging/metrics make deferred enrichment failures visible without breaking capture flow
## Problem Thought capture must not fail or time out because downstream metadata extraction or embedding generation is slow or unavailable. The current reliability concerns suggest user-facing save requests may still be coupled too tightly to enrichment work. ## Impact - User-visible timeout/errors during thought save - Lost confidence in capture reliability - Slow AI/background dependencies can break core write path ## Expected behavior Saving a thought should succeed quickly once the core record is persisted. Metadata extraction and embedding generation should be deferred to background processing and must not block the user request. ## Acceptance criteria - Thought save returns success after core persistence without waiting for metadata/embedding completion - Metadata extraction and embedding generation are queued or scheduled asynchronously - If enrichment fails, the thought remains saved and available - Failures are recorded for later retry instead of surfacing as request failure - Logging/metrics make deferred enrichment failures visible without breaking capture flow
Sign in to join this conversation.