8b58d434e9
SpacetimeDB som cache foran PG: arkitekturendring
...
PG er autoritativ, SpacetimeDB er varm cache. Frontend snakker
kun med SpacetimeDB, worker håndterer toveissynk.
Fase 1 — SpacetimeDB-modul:
- delete_message med SyncOutbox-event
- edit_message reducer
- MessageReaction tabell + add/remove_reaction reducers
- load_messages med JSON-parsing (erstatter pipe-format)
- clear_channel reducer for duplikat-fri warmup
- load_reactions reducer
Fase 2 — Worker:
- warmup.rs: PG→ST oppvarming ved oppstart (100 msg/kanal)
- sync.rs: håndter delete/update/reaction actions
- Sync-intervall redusert til 1s
Fase 3 — Frontend:
- spacetime.svelte.ts: ren SpacetimeDB-adapter, ingen PG-hybrid
- ChatConnection interface med edit/delete/react metoder
- ChatBlock bruker chat.edit/delete/react direkte
- PG-adapter som readonly fallback
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 02:09:33 +01:00
50e26e3c48
Entiteter: merge-verktøy, detaljside og AI-worker
...
Admin-side for merge av duplikate entiteter med edge-migrering.
Entitetsside med inline redigering, slett, relasjoner og mentions.
AI text process worker-handler (fix_text, extract_facts, rewrite,
translate) med API-endepunkt som oppretter jobbkø-oppgaver.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 21:45:45 +01:00
3f8ef65c5f
Jobbkø-worker: Rust-binær med polling, concurrency og retry
...
sidelinja-worker — tokio-basert orkestrator som poller job_queue:
- SELECT FOR UPDATE SKIP LOCKED for trygg concurrent polling
- Semaphore-styrt concurrency (--max-concurrent)
- Eksponentiell backoff: 30s × 2^(attempts-1)
- Handler-registry (HashMap<String, Box<dyn JobHandler>>)
- Strukturert JSON-logging via tracing
- Echo-handler for end-to-end testing
- CLI: --database-url, --ai-gateway-url, --max-concurrent, --poll-interval
Testet mot dev-database: echo-jobb fullført, ukjent type → retry → error.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 15:40:32 +01:00