Plukker fra tasks/*.md, flytter til active/, done/ ved fullføring.
Støtter --loop (kjør kontinuerlig), --dry (forhåndsvis), --status.
Krasj-deteksjon: stale oppgaver i active/ >60 min frigjøres.
30 min timeout per oppgave.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
synops-agent: 8 faser fra robustgjøring til daemon/vaktmester.
Admin-panel: nøkkelhåndtering, AI-ruting, oppgaver, agent-oversikt,
brukeradmin. Bygger på eksisterende sider + alt vi har diskutert.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Erstatter .env-filer for API-nøkler. AES-256-GCM kryptert i PG,
administrert via admin-UI, injisert av maskinrommet som env ved
verktøy-spawning. Audit trail, test-tilkobling, flere nøkler per
provider, deaktivering uten sletting. Ingen endring i verktøykode.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Testet med ekte API-kall. Fungerer: tool-loop, fil-lesing, glob,
token-regnskap. Gemini Flash via OpenRouter svarer på ~3 sekunder.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Modell-agnostisk agent-runtime i Rust. Egen provider-kode (ingen Rig-dep).
Støtter: OpenRouter, Anthropic, Gemini, xAI, OpenAI, Ollama.
Tool-loop: prompt → tool_calls → execute → loop.
Innebygde verktøy: read_file, write_file, edit_file, bash, grep, glob.
Token-regnskap per modell. --claude for å spawne Claude Code.
Kompilerer og kjører. Trenger API-nøkkel for å faktisk gjøre noe.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fjernet fil-basert oppgaveliste (tasks.md, tasks-arkiv.md, tasks/).
Oppgaver er nå noder (node_kind: 'task') med prioritet, status,
agent-tildeling og krasj-deteksjon via PG. Atomisk plukking med
FOR UPDATE SKIP LOCKED. Dokumentert i docs/infra/oppgaver.md.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ingen mellomtjeneste — synops-agent snakker direkte med Anthropic,
Google, OpenRouter etc. via Rig sine provider-traits. Fjerner
LiteLLM Docker-container (Python-stack). Lavere latens, enklere
feilsøking, alt i Rust-kode vi eier.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
/claude, /grok etc. er admin-kommandoer. Vanlige brukere bruker
@bot med modell konfigurert av admin via ai_job_routing.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Vaktmester-daemon: mottar meldinger via chat og epost
- Prefix-kommandoer: /proposal, /task, /bug, /gjør
- Eksplisitt modellvalg: /claude, /grok, /gemini, /lokal, /billig
- Bruker bestemmer alltid — ingen automatisk modellgjetting
- Claude Code spawnes for tunge oppgaver (allerede-betalt abo)
- Svar tilbake via chat og/eller epost
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
tasks.md har kun åpne oppgaver. Fullførte flyttes til tasks-arkiv.md
med dato. Prinsipp dokumentert i CLAUDE.md: listen skal alltid være
ren. Fase 1-30 og dagens UI-arbeid arkivert med timestamp.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SpacetimeDB er fjernet (mars 2026). Oppdatert til å bruke
eksisterende WebSocket/portvokter med ephemeral cursor_move-
meldinger (ikke persistert i PG). In-memory HashMap i Rust.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Flyttet til docs/proposals/arkiv/:
- komponerbare_sider.md (erstattet av arbeidsflaten)
- personlig_workspace.md (erstattet av noder-er-sentrum)
- tekst_primitiv.md (realisert i node-arkitekturen)
- artikkel_publisering.md (implementert i fase 14)
- web_clipper.md (implementert i fase 25)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Samme kommunikasjonsnode vises som chat (kronologisk) eller forum
(trådet). Bytt fritt mellom visninger. Lest/ulest er én last_seen
timestamp per bruker per samtale — transitiv mellom alle visninger.
Forum-egenskaper (tråd, kategori, pinning) er metadata på noder.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rollebasert arv: edge-roller styrer trait-synlighet per bruker
(deltaker ser mikser, lytter ser bare chat)
- Mine ting: oversiktspanel i Hjem, dra node inn i verktøy for
å koble dem (erstatter mottak som panel)
- Chat-merging: dra chat oppå chat → live flettet visning eller
snapshot med AI-beriking og brukerprompt
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Én knapp, to trykk: fade ut (0.2s) → pause → bygg om → trykk igjen
→ fade inn (0.2s). Kort default for praktisk bruk, konfigurerbar.
Master opacity slider er separat for kreativ/manuell kontroll.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Vert kan slå på ramme, navneskilt eller andre visuelle effekter
per element inne i skjermen. Fleksibelt, ikke påtvunget.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Noder som dras inn i skjermen rendres uten grensesnittelementer —
ingen BlockShell-header, border, resize-handles. Bare rent innhold.
Skjermen er output, ikke utviklerverktøy. Vert redigerer layout
via skjermens egen editor-modus.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Skjerm-panel som live kompositor: dra inn videostrømmer, bilder,
tekst og noder. Multi-skjerm med program/preview og live switching.
Sceneskifte med fade-to-black + auto-pause for jukseredigering.
Videoramme per deltaker, delt arbeidsflate som møterom/studio.
Bygger på eksisterende primitiver (BlockShell, Canvas, LiveKit,
drag-and-drop, CAS, PG NOTIFY).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dokumentert hvorfor Claude Code ikke egner seg som tjeneste (treg
oppstart, høyt minne, ingen API, låst til Anthropic). synops-agent
som tre bruksmåter: lib (embed i maskinrommet), CLI (erstatter
Claude Code), API (HTTP-endepunkt for appen). Konkret brukstabell
for chat, orkestrering, bakgrunnsjobber og bruker-chat.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tydeliggjort ambisjon: synops-agent er et fullverdig alternativ til
Claude Code, ikke en delegerings-mekanisme. Egen orkestrator med
multi-modell sub-agenter, eskalering og verifikasjon. Claude Code
brukes til å utvikle og teste den, ikke til å styre den.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Harnessen akkumulerer input/output tokens per modell gjennom hele
kjøringen. Brukes til budsjettovervåking, eskalering, effektivitets-
måling og orkestrator-input. HashMap<String, TokenUsage> i minne,
persisteres til ai_usage_log ved checkpoint/slutt.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Kjørbar fra Claude Code via Bash (delegering til billige modeller)
- Tre nivåer: orkestrator (smart), implementering (middels), grunt (billig)
- «Utfør billig, verifiser smart»-strategi: ~90% på billigste modell
- Automatisk modellvalg basert på oppgavetype og eskalering ved feil
- Eksperimentering: logger modell/kostnad/resultat for optimalisering
- Claude Code som super-orkestrator over multi-modell agent-pool
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Oppdatert med research fra mars 2026:
- Rig.rs som provider-abstraksjon (24% CPU, <1.1GB vs Python >4.7GB)
- OpenCode Extended ReAct Loop (tenke + selvkritikk + handling)
- Adaptive Context Compaction (ACC) for kontekstvindu
- Harness-mønsteret (kontrollplan mellom LLM og verktøy)
- Worktree-isolasjon for sub-agenter
- MCP-støtte som industristandard
Supersett av Claude Code: daemon-modus, innebygd oppgavestyring,
selvovervåking, sub-agenter med valgfri modell per agent.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Idé for fremtidig implementering: Claude Code-lignende agent-loop
som kan bruke Grok, Gemini, OpenRouter eller lokale modeller.
Rust CLI med Read/Edit/Bash/Grep/Glob-verktøy og LiteLLM-integrasjon.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Når et panel resizes lagres width/height per trait-type i
workspace-metadata. Neste gang verktøyet instansieres brukes
den lagrede størrelsen i stedet for default. Persisteres mellom
besøk.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Hver gang en boks klikkes/dras økes en global z-teller og boksen
får høyeste verdi. Rekkefølgen bevares etter at boksen deselekteres.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Når en boks velges eller dras, får den z-index: 10 slik at den
alltid vises over andre bokser. Uvalgte bokser har z-index: 1.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Musehjul er fortsatt rask zoom (20% per steg).
Toolbar-knappene gir nå presis kontroll: ±1% per klikk.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Hvert preset har nå individuelt justerte farger per overflate i stedet
for auto-genererte. Canvas, header, panel og border har subtilt ulike
nyanser for dybde. Omdøpt: Standard→Midnatt, Hav→Dyphav, Rosa→Kirsebær,
Lys→Dagslys, Monokrom→Kull. Alle mørke temaer har varm/kald karakter.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rad 1: 8 forhåndsdefinerte presets (faste)
Rad 2: opptil 6 bruker-slots — klikk + for å lagre gjeldende tema,
klikk for å bruke, høyreklikk for å slette.
Lagres i workspace-metadata.savedThemes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Alle Tailwind-overrides i app.css bruker nå var(--color-*) i stedet for
hardkodede hex. Dette betyr at temaendringer påvirker alt innhold —
inkludert trait-komponenter, inputs, scrollbar, toolbar og statusfarger.
Canvas-toolbar bruker også CSS vars nå.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ny modell: dropdown velger hva du farger (Canvas, Menylinje, Bokser,
Rammer, Knapper/aksent, Tekst). Tre slidere per element (farge,
metning, lyshet) gir full kontroll over hele spekteret.
Presets setter alle elementer på én gang. Fargeprøve viser valgt farge.
BlockShell bruker ny --color-panel variabel.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Erstattet 9 slidere (3 per farge × 3 farger) med 3 intuitive kontroller:
- Farge: hue-stripe for aksentfarge
- Intensitet: saturation
- Lys/mørk: brightness slider (0=svart, 100=hvit)
Systemet utleder bg, surface, border, text automatisk fra disse.
Canvas-bakgrunn styres nå av --color-bg (var ikke det før).
Presets med emoji-ikoner. Rosa og lys preset lagt til.
Bakoverkompatibel med alle tidligere tema-formater.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ThemeColor har nå lightness-felt. Alle tre slidere (hue, lightness,
saturation) dekker hele spekteret 0-100/360. Brukeren kan gå fra
hvit til svart og alt imellom. Tekst auto-tilpasses lys/mørk bakgrunn.
Nytt preset «Lys» for de som foretrekker lys skjerm.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Slett-knapp: stopPropagation hindrer handleClickOutside fra å
lukke dropdown før confirmDelete kjører
- Egenskaper-knapp (tidl. Traits) flyttet til venstre i header-right
slik at Verktøy/status/innstillinger ikke forskyves mellom flater
- «Min arbeidsflate» → «Hjem» for konsistens
- «Traits» → «Egenskaper» for norsk menyspråk
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- ContextHeader brukes nå på både personlig flate og samlinger
- Ny theme.ts: ThemeConfig med hue+saturation per farge, presets
(Standard, Hav, Skog, Solnedgang, Lavendel, Monokrom)
- Fargevelger med hue-stripe (regnbue) + saturation-slider + swatch
per farge (bakgrunn, overflate, aksent)
- Slett arbeidsflate med bekreftelsesdialog og innholdstelling
- Kontekst-velger: grupper, rename, ny, slett — fungerer overalt
- +page.svelte forenklet: ~500 linjer CSS fjernet, bruker ContextHeader
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Lasso-seleksjon → dra flytter alle valgte paneler sammen
- Grid on/off lagres i workspace-metadata (huskes mellom besøk)
- Zoom lagres allerede via kameraposisjon (x, y, zoom)
- ZOOM_MIN senket til 5% for spredte layouts
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Klikk-hold-dra på tom bakgrunn = pan (erstatter midtre museknapp)
- Shift+dra = lasso-seleksjon (som før)
- Kameraposisjon (x, y, zoom) lagres i workspace-metadata og
gjenopprettes ved neste besøk
- Senket ZOOM_MIN til 5% for å tillate zoom ut på store canvas
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Toolbar-knapper (zoom, tilpass, grid, fullskjerm) blokkert av Canvas
sin pointerdown-handler. Fikset med closest('.canvas-toolbar')-sjekk.
- Dobbeltklikk på tom flate kjører zoomToFit() for rask navigasjon.
- Seleksjon-ramme dempet: 1px rgba(accent, 0.4) i stedet for 2px solid.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Forrige versjon sendte total offset fra startposisjon på hvert
pointermove-event, som ble addert gjentatte ganger og akselererte
panelet ut av bildet. Nå beregnes delta fra forrige frame.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Når man drar toppen eller venstre kant av et panel, ble bare størrelsen
endret mens posisjon sto fast — som ga inntrykk av at feil kant beveget
seg. Nå beregner BlockShell posisjons-delta (dx, dy) og parent justerer
x/y tilsvarende, slik at den kanten du drar i følger musepekeren.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Resize-handles ble aldri vist fordi isMobile var true for alle paneler
(MOBILE_BREAKPOINT=768 > typisk panelbredde 400-600px). Fjernet
isMobile-sjekken for resize — handles vises nå alltid unntatt i
fullskjerm og minimert modus.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Resize-handlene i BlockShell bruker negative offsets (-3px) som stikker
utenfor canvas-object divens bounds. Uten overflow: visible fanges ikke
pointer events på kantene.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
overflow: hidden på .blockshell klippet resize-handles (negative offsets).
Endret til overflow: visible, border-radius på header/content i stedet.
Lagt til subtile visulle indikatorer ved hover: L-merker på hjørner,
tynne linjer på kanter. Hardkodede farger → CSS custom properties.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>