From 2ffcf96be448223c72b41e457ef5156072978d6e Mon Sep 17 00:00:00 2001 From: vegard Date: Mon, 16 Mar 2026 14:55:04 +0100 Subject: [PATCH] Fiks: bevar metadata ved rebuildMessages, sett edited_at ved AI-behandling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - rebuildMessages bevarer nå PG-felter (metadata, edited_at, reply_count) fra eksisterende meldinger i stedet for å overskrive med undefined - Worker setter edited_at = now() ved AI-behandling slik at revisjonshistorikk og AI-badge vises umiddelbart Co-Authored-By: Claude Opus 4.6 --- web/src/lib/chat/spacetime.svelte.ts | 15 ++++++++++++++- worker/src/handlers/ai_text_process.rs | 3 ++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/web/src/lib/chat/spacetime.svelte.ts b/web/src/lib/chat/spacetime.svelte.ts index 67dfab7..57ecdcf 100644 --- a/web/src/lib/chat/spacetime.svelte.ts +++ b/web/src/lib/chat/spacetime.svelte.ts @@ -90,7 +90,20 @@ export function createSpacetimeChat( const bMs = extractMs(b.createdAt); return aMs - bMs; }); - messages = rows.map(r => spacetimeRowToMessage(r)); + // Bevar PG-spesifikke felter (metadata, edited_at, reply_count, etc.) fra eksisterende meldinger + const existing = new Map(messages.map(m => [m.id, m])); + messages = rows.map(r => { + const msg = spacetimeRowToMessage(r); + const prev = existing.get(msg.id); + if (prev) { + msg.metadata = prev.metadata; + msg.edited_at = prev.edited_at; + msg.reply_count = prev.reply_count; + msg.parent_body = prev.parent_body; + msg.parent_author_name = prev.parent_author_name; + } + return msg; + }); } function extractMs(ts: any): number { diff --git a/worker/src/handlers/ai_text_process.rs b/worker/src/handlers/ai_text_process.rs index 91dd25a..1919214 100644 --- a/worker/src/handlers/ai_text_process.rs +++ b/worker/src/handlers/ai_text_process.rs @@ -234,7 +234,8 @@ impl AiTextProcessHandler { sqlx::query( r#" UPDATE messages - SET metadata = (COALESCE(metadata, '{}'::jsonb) - 'ai_processing') || $1::jsonb + SET metadata = (COALESCE(metadata, '{}'::jsonb) - 'ai_processing') || $1::jsonb, + edited_at = now() WHERE id = $2 "#, )