28 lines
5.1 KiB
Markdown
28 lines
5.1 KiB
Markdown
---
|
||
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 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).
|