microsSinceEpoch var feil propertynavn — SDK bruker __timestamp_micros_since_unix_epoch__.
Bruker nå SDK-metodene direkte som er framtidssikre.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Utvider SpacetimeDB-modulen med metadata, edited_at og MessageRevision-tabell.
Worker skriver via reducers (set_ai_processing, ai_update_message) i stedet for
direkte PG-skriving. Frontend-adapteren leser alt fra SpacetimeDB — null fetch()-kall.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 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>
- Dokumentert at subscriptions ikke støtter JOINs (feiler stille)
- refresh() kaller enrichFromPg() for å hente fersk metadata fra PG
- Whitespace-normalisering i autogenererte module_bindings
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Etter onUpdate fra SpacetimeDB hentes edited_at og metadata
(ai_processed, ai_action) fra PG, slik at revisjonshistorikk
og AI-badge vises korrekt også for sanntidsoppdateringer.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
SpacetimeDB har ikke edited_at eller metadata-felter, så «redigert»-
indikatoren dukket aldri opp. Etter initial subscription-load gjør
frontend nå et kall til /api/channels/:id/messages/metadata for å
hente redigeringsstatus og AI-metadata fra PG.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Markdown rendres automatisk for all ikke-HTML body (detekterer <p>, <div> osv.)
- «redigert»-indikator med bla-navigasjon (← →) for alle redigerte meldinger
- Henter revisjoner fra PG via /api/messages/:id/revisions ved behov
- SpacetimeDB onUpdate setter edited_at slik at frontend vet meldingen er redigert
- AI-badge (✨ action) vises fortsatt for AI-behandlede meldinger
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Legger til tre nye funksjoner fra chatmeldinger:
- Svar på meldinger med reply-kontekst (↩ forfatter: tekst)
- Konverter melding til kanban-kort via dialog
- Konverter melding til kalenderhendelse via dialog
Utvider messages API med reply_count, parent-info og
LEFT JOIN til kanban/kalender view-tabeller for badges.
Nye list-endepunkter for /api/kanban og /api/calendar.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
PG-meldinger kommer sortert fra queryen. SpacetimeDB-meldinger
har upålitelige timestamps (fallback til now()), så sortering
blandet rekkefølgen. Legger nå SpacetimeDB-only meldinger etter
PG-meldinger uten re-sortering.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- loadFromPg() merger nå PG-data med eksisterende SpacetimeDB-meldinger
i stedet for å overskrive (hindrer at chatten tømmes)
- onReaction/onTogglePin kaller bare refresh() ved OK-respons
- Fjernet debug-logging
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- GET messages returnerer alle felter + aggregerte reaksjoner via LATERAL join
- Nytt PATCH/DELETE endepunkt for enkeltmeldinger (/api/messages/[id])
- Nye reaksjons-endepunkter (POST/DELETE /api/messages/[id]/reactions)
- refresh() eksponert på ChatConnection (PG + SpacetimeDB)
- MessageBox UI: reaksjonspills med toggle + hurtig-emojis ved hover
- Pin-toggle i header med hover-synlighet
- ChatBlock wirer onReaction og onTogglePin callbacks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ny Editor-komponent med Tiptap (bold, italic, code, mentions).
Chat og notater oppretter nå MENTIONS-edges i kunnskapsgrafen
automatisk ved lagring. SpacetimeDB-adapter skriver alltid via
PG API først for edge-atomisitet. RLS SET LOCAL fix i db.ts.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
SvelteKit (web/):
- Komplett app-skjelett med Authentik SSO (dev-bypass lokalt)
- Workspace-modell med cookie-basert switching og RLS-kontekst
- Komponerbare sider (PageGrid + BlockShell + block registry)
- Chat med adapter-mønster: PG-polling og SpacetimeDB hybrid-adapter
- Brukeridentitet fra Authentik/dev-login flyter til chat-meldinger
- API-ruter for channels, messages og health
SpacetimeDB (spacetimedb/):
- Rust WASM-modul med ChatMessage og SyncOutbox-tabeller
- send_message reducer med sync outbox for fremtidig PG-persistering
- Genererte TypeScript-bindings for klient-integrasjon
Infra:
- SpacetimeDB lagt til i docker-compose.dev.yml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>