Ny modul graph.rs med:
- pick_task: plukk høyest-prioritet open task atomisk (FOR UPDATE SKIP LOCKED)
- update_task_status: oppdater status (open → active → done/failed)
- write_task_message: skriv melding i oppdragets chat-node
- release_stale_tasks: frigjør tasks stuck >60 min (krasj-deteksjon)
- query_nodes/query_edges/get_node: generiske graf-spørringer
Nytt verktøy synops_query for LLM:
- action: nodes (list med kind/status-filter)
- action: edges (for en node, med retning/type-filter)
- action: get (les enkeltnode med metadata)
PG-tilkobling er valgfri — degraderer gracefully uten DATABASE_URL.
Krasj-deteksjon kjøres ved oppstart.
- --interactive / -i starter REPL med readline (rustyline)
- Token-teller og kostnad i prompt: [12.3kT $0.042] claude-sonnet-4 >
- Ctrl+C avbryter pågående tool-kall, ikke hele agenten
- Meldingshistorikk bevares mellom turns
- Multi-line input med \ på slutten av linjen
- Innebygde kommandoer: /stats, /clear, /help, exit
- Historikk lagres i ~/.synops/agent_history.txt
- Refaktorert agent-loop til AgentSession struct for gjenbruk
- --task er nå valgfri (påkrevd kun i batch-modus)
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>