Fiks: bevar metadata ved rebuildMessages, sett edited_at ved AI-behandling

- 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 <noreply@anthropic.com>
This commit is contained in:
vegard 2026-03-16 14:55:04 +01:00
parent c32b772293
commit 2ffcf96be4
2 changed files with 16 additions and 2 deletions

View file

@ -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 {

View file

@ -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
"#,
)