151c756b89
After chat() returns, fire-and-forget background thread POSTs the (user message + assistant response) as one episode to /episodes. Default extraction (Sonnet). Errors logged, never raised — chat is not gated on the write. Wall-clock cost in the background is ~20 min per episode against the current ~4,300-entity graph. The chat experience is unaffected; the graph catches up with a delay. Search_facts queries reflect new turns once the sidecar has finished processing them. Kill-switch: SKIP_GRAPHITI_CHAT_PUSH=1 in the api service environment disables the push without code changes. Useful if dedup contention surfaces under sustained load. Companions to this commit: search_facts tool (e96bf40), orientation indexer worker (e96bf40), FalkorDB vector index patches (d2ec20e,313c0f0).