Files
claude-ai-control/memory/trilium-archiv.md
T
2026-07-24 21:42:30 +02:00

28 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: trilium-archiv
description: "Trilium ersetzt das MD-Archiv: verwaltete Server-Instanz pro Projekt (ETAPI), Modul trilium opt-in; Stand und offene Punkte"
metadata:
node_type: memory
type: project
originSessionId: fb63dbb4-5138-4ef0-adec-e73ced360279
modified: 2026-07-24T19:42:11.781Z
---
Marcus' Entscheidung 2026-07-24 (nach dem Obsidian-Aus, siehe [[archiv-wiki-konzept]]): Das Archiv ist eine **eigene Trilium-Instanz pro Projekt**, komplett von ai-control verwaltet — „alles nach Trilium" (Volltextsuche, neue Notizen, Archivieren). Kein Pures-Markdown-Dogma. Nur dokumentierte Schnittstellen: `TRILIUM_DATA_DIR`, `TRILIUM_PORT`, ETAPI (`/etapi/auth/login` → Token).
Spike verifiziert (Linux-Box): Server-Build v0.104.0 (92 MB tar.xz, gebündeltes Node) startet mit eigenem Datenverzeichnis + Port, zwei Instanzen parallel, ETAPI da; **~240 MB RSS pro Instanz** (gemessen). Erstinitialisierung (Dokument + Passwort) läuft über Triliums Setup-Seite im eingebetteten Fenster; ETAPI-Token danach per Login, Ablage im Keyring (Service `ai-control-trilium`), Passwort wird nie gespeichert.
Umgesetzt 2026-07-24 (uncommitted): `domain/trilium.rs` (Runtime-Download gepinnt v0.104.0 + SHA-256, per curl/tar; ensure_instance mit Portprüfung, Prozess-Map, stop_all bei RunEvent::Exit beider Prozessrollen; ETAPI über curl; archive_note = pulldown-cmark MD→HTML + Ordner-Pfad als find_or_create Buch-Notizen + Labels description/tag; search_notes mit `#tag=`-Filter). Commands trilium_status/setup/connect/open/disable/archive_cmd; **connect setzt das Modul-Flag erst nach Token-Erfolg** (Erst-nach-Erfolg-Muster, Lehre aus dem Obsidian-Vorfall). Fenster: `trilium-<uuid>` WebviewUrl::External auf 127.0.0.1:Port (FNV-Port 2720027981), Notiz-Sprung per `#root/<noteId>`-eval. Modul „trilium" (Opt-in) trägt archive_panel/search_archive + Such-Puffer; MCP-Tools und search_run laufen über ETAPI; Panel-Archiv-Button → trilium_archive_cmd + Notiz öffnen; Such-Treffer-Kacheln = Titel+noteId → trilium_open. term_start fährt die Instanz bei aktivem Modul im Thread hoch. **Raus**: FTS5 (archive_search.rs + rusqlite), Archiv-Zeile im Settings-Dialog samt chooseArchive-Flow. Neue Dep pulldown-cmark (Go von Marcus, ebenso Keyring-Ablage). 99 Rust-/50 Frontend-Tests, vue-tsc sauber.
Nachtrag 2026-07-24 (Session 9a43fcbf, uncommitted): **Setup voll automatisiert** — Marcus' Ansage: „bis auf das Passwort automatisieren". trilium_connect macht beim Erstlauf alles per HTTP: `POST /api/setup/new-document?skipDemoDb` (Route offen solange uninitialisiert, blockiert bis DB steht), `POST /set-password` (Form password1/password2, ohne CSRF/Session solange kein Passwort gesetzt, antwortet 302), ETAPI-Login, Token→Keyring, erst dann Modul-Flag. Keine Setup-Seite im Fenster mehr; Endpoints am vendored main.cjs v0.104.0 verifiziert. **MD-Altbestand komplett raus** („Trilium als Archiv rein, alles andere raus"): archive.rs/archive_index.rs gelöscht, archiveHome-Feld + Archiv-Permissions raus, panel_set/panel_load/wiki_open/panel_archive*/archive_docs/*_archive_home/trilium_archive_cmd raus, tote Ketten reveal_path + spellcheck mit. **Dokument-Tab raus**: Panel = ToDo│Befehle│Suche + „Archiv"-Knopf (trilium_open); panel-view.ts/archive-form.ts gelöscht, requires_archive-Feld weg. **write_panel = Trilium-Notiz** (text|path + folder/description/tags, ersetzt archive_panel; first_line→mcp.rs), noteId über noteopen-Kanal → terminal.ts öffnet die Notiz im Trilium-Fenster (WICHTIG für Marcus: das eingebettete Trilium-Fenster ist ein Hauptpunkt). Lösch-Dialog-Stufe „Archiv" = Instanz stoppen + Trilium-Datadir + Keyring-Token löschen (DeletePreview.trilium_data). 85 Rust-/42 Frontend-Tests grün, Build 0.3.0 rpm/deb gebaut, Install-Kachel raus.
Marcus nach erstem Test („passt besser, noch lange nicht gut"), zwei Richtungen für die Fortsetzung: (1) **Trilium embedded** wie das angedockte Panel — Kind-Webview im Terminal-Fenster (Tauri-Multiwebview, Feature `unstable`); iframe fällt aus, Instanz liefert `X-Frame-Options: SAMEORIGIN` (verifiziert); Archiv-Tab schaltet den Webview, Geometrie folgt Splitter/Resize, separates Fenster entfällt — Plan gezeigt, NOCH KEIN GO. (2) **Streamlinen** („Trilium ist VIEL ZU VIEL"): Theme-Notiz `#appTheme` beim Setup per ETAPI seeden (Launcher/Ribbon/Tab-Leiste per CSS weg, Ziel Baum+Editor), Launcher-Notizen im versteckten Teilbaum aufräumen; `/share/<id>` als Read-only-Ansicht.
Offen:
- App-Test durch Marcus (Wizard: Einrichten → Passwort → Verbinden vollautomatisch; write_panel → Notiz öffnet im Trilium-Fenster).
- Notiz-Hash `#root/<noteId>` bei tiefer liegenden Notizen verifizieren.
- macOS/Windows: keine offiziellen Server-Builds — eigene Bundles (Node + Server) in unserer Release-Pipeline bauen; Marcus' Vorgabe: alle drei OS gleich.
- Migration bestehender MD-Archive nach Trilium ungeklärt (Lösch-Dialog räumt keine Alt-Archive mehr).
- Update-Mechanik: Version ist gepinnt; „beim Start auf Updates prüfen" (Marcus' Wunsch aus der Obsidian-Diskussion) ist für Trilium noch nicht gebaut.
- Committed + gepusht auf lintus als 47951a6 (2026-07-24).