5.1 KiB
name, description, metadata
| name | description | metadata | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| trilium-archiv | Trilium ersetzt das MD-Archiv: verwaltete Server-Instanz pro Projekt (ETAPI), Modul trilium opt-in; Stand und offene Punkte |
|
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 27200–27981), 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).