diff --git a/worker/src/handlers/ai_text_process.rs b/worker/src/handlers/ai_text_process.rs index 1919214..c834e01 100644 --- a/worker/src/handlers/ai_text_process.rs +++ b/worker/src/handlers/ai_text_process.rs @@ -245,11 +245,19 @@ impl AiTextProcessHandler { .await .context("Feil ved oppdatering av metadata")?; - // 9. Oppdater SpacetimeDB — dette er primær-kanalen til frontend. - // Gjøres ETTER PG-metadata slik at enrichMessageFromPg finner fersk data. - self.update_spacetimedb(&message_id, workspace_id, &ai_resp.content) + // 9. Oppdater SpacetimeDB + PG body. + // SpacetimeDB er primær når frontend bruker sanntid, men meldingen + // kan også være opprettet via PG-polling — da finnes den ikke i STDB. + if let Err(e) = self.update_spacetimedb(&message_id, workspace_id, &ai_resp.content).await { + warn!(message_id = %message_id, error = %e, "SpacetimeDB-oppdatering feilet, oppdaterer PG direkte"); + } + // Oppdater alltid PG body som fallback (sync ville gjort dette, men kan ta tid) + sqlx::query("UPDATE messages SET body = $1, edited_at = now() WHERE id = $2") + .bind(&ai_resp.content) + .bind(message_id) + .execute(pool) .await - .context("Kunne ikke oppdatere SpacetimeDB med AI-resultat")?; + .context("Feil ved oppdatering av body i PG")?; // 10. Logg tokenforbruk til ai_usage_log sqlx::query(