Sesjonsnotat 19-20. mars: komplett oppsummering av fremdrift

Domene/ruting, workspace UI, synops-agent, admin, chat med AI,
dokumentasjon, opprydding. Status og neste steg dokumentert.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
vegard 2026-03-20 07:12:18 +00:00
parent 052444c2a0
commit 40d75b8711

View file

@ -0,0 +1,95 @@
# Sesjon 19-20. mars 2026 — oppsummering
## Gjort i denne sesjonen
### Domene og ruting
- ws.synops.no som app, synops.no som statisk landingsside
- adm.synops.no som admin-arbeidsflate (eget subdomain)
- Cookie-domene .synops.no for delt sesjon mellom subdomener
- Fjernet ORIGIN-hardkoding (AUTH_TRUST_HOST=true)
- Erfaringsnotat: docs/erfaringer/multi_subdomain.md
### Workspace UI
- Unifisert ContextHeader (brukes overalt, innstillinger, tema, kontekst-velger)
- Fargevelger med per-element kontroll (canvas, header, bokser, rammer, aksent, tekst)
- Forhåndsdefinerte temaer + 6 bruker-slots
- Panel-resize fungerer (alle kanter og hjørner)
- Canvas: klikk-dra=pan, Ctrl+scroll=zoom, piltaster, kameraposisjon lagres
- Z-order: sist berørt boks øverst (persistent)
- Paneler husker brukerens foretrukne størrelse
- Nye paneler plasseres i viewport-sentrum
- Toolbar: /+/○/#/fullskjerm med konsistent formspråk
- Klikk prosent = reset til 100% (ankret til viewport-sentrum)
- Canvas fanger ikke lenger klikk/tastatur fra panel-innhold
- Lukk i fullskjerm fungerer (DOM-element flyttes tilbake fra body)
### Nye paneler/traits
- Node Explorer: søk, filtrer, klikk edges, inline redigering
- Web Viewer: iframe-basert nettleser med bokmerker
- AI-verktøy og Ressursforbruk som BlockShell-paneler
### synops-agent
- 5088 linjer Rust, kompilerer
- 6 providers: OpenRouter, Anthropic, Gemini, xAI, OpenAI, Ollama
- Testet med OpenRouter/Gemini Flash — fungerer
- ACC, retry, REPL, planmodus, git, graf, daemon, checkpoint
### Admin
- adm.synops.no med admin-arbeidsflate
- API-nøkler: kryptert lagring i PG (AES-256-GCM), admin-UI, test-tilkobling
- model_config tabell: erstatter LiteLLM YAML
- model_pricing tabell: kostnadsestimat
### Chat med AI
- Claude Code-chat fungerer med sanntidslevering
- handler_mode: internal/external/paused i agent_identities
- To trigger-spor: permanent deltaker (member_of) vs @bot-nevnelse
- synops-respond: node+edge+access i én transaksjon (løser sanntid)
- WS-fix: sjekk PG direkte for nye noder (INSERT)
- Modellnavn i metadata vises som avsender
### Dokumentasjon
- docs/retninger/kvalitetsprinsipper.md (inline i CLAUDE.md)
- docs/infra/admin_arbeidsflate.md
- docs/infra/claude_code_polling.md
- docs/infra/brukerklasser.md
- docs/infra/nøkkelhåndtering.md
- docs/infra/oppgaver.md
- docs/erfaringer/multi_subdomain.md
- docs/erfaringer/access_propagering.md
- Proposals: agent_harness, skjermen, rollebasert_arv, mine_ting,
chat_merging, chat_forum_dualitet, varsling, universell_input
### Opprydding
- Sidelinja-referanser → synops.no i kode og docs
- AI-aliaser: sidelinja/rutine → synops/low, sidelinja/resonering → synops/high
- Forgejo ROOT_URL → git.synops.no
- Authentik redirect URIs oppdatert
- suggest-edges orkestrering fikset ($NODE_ID)
- 437 feilede orchestrate-jobber ryddet
## Status ved sesjonslutt
### Fungerer
- ws.synops.no: arbeidsflaten med alle paneler og tema
- adm.synops.no: admin-arbeidsflate med Node Explorer og Web Viewer
- Chat med @bot: trigger, svar via OpenRouter, sanntidslevering
- API-nøkler: kryptert i PG, admin-UI for å legge inn/teste/deaktivere
- model_config: modell-mapping i PG (erstatter LiteLLM YAML)
### Pågående arbeid (neste steg)
- synops-respond leser API-nøkler fra PG (ikke env) og modell fra model_config
- Fjerne LiteLLM som avhengighet (synops-respond snakker direkte med providers)
- Admin-UI for model_config (hvilken modell brukes til hva)
- Brukerklasser med token-budsjett
### Kjente bugs
- suggest-edges orkestrering: args ikke propagert riktig (delvis fikset)
- Noen trait-komponenter har hardkodede farger i style-blokker (delvis fikset)
### Viktige konfigverdier
- handler_mode: `internal` (synops-respond via eksternt API)
- SYNOPS_MASTER_KEY: i /srv/synops/.env og /tmp/maskinrommet.env
- OpenRouter API-nøkkel: kryptert i api_keys-tabell
- Claude Code chat: abe2edfd-986b-45ba-8c2e-4461a8a7e480
- Claude agent node: d3eebc99-9c0b-4ef8-bb6d-6bb9bd380a44