~/work/owly-newsAktiv
Owly News
Ein gemeinsamer Rust-Core versorgt eine Tauri/Svelte-Desktop-App und ein natives ratatui-TUI; lokale Zusammenfassungen bleiben optional und nie eine harte Abhängigkeit.
Was es macht
Feeds, Aktualisierung, SQLite-Persistenz, Suche und Zusammenfassungen liegen hinter einem gemeinsamen Rust-Core. Desktop- und Terminal-Oberfläche nutzen dieselben Domain- und Speichergrenzen.
Problem
Ein Newsreader soll weiter abrufen und lesbar bleiben, wenn Zusammenfassungen nicht verfügbar sind.
Rahmenbedingungen
- Zwei Oberflächen brauchen dasselbe Verhalten, während Terminal- und Tauri-Typen außerhalb des Cores bleiben.
Wie es gebaut ist
- Feeds gelangen über Abruf und Aktualisierung in den gemeinsamen Rust-Core.
- SQLite, Suche und Events bleiben in owly-core.
- Tauri/Svelte- und ratatui-Frontends nutzen dasselbe Verhalten; Zusammenfassungen sind optional.
Engineering-Entscheidungen
Domain-Verhalten in owly-core halten
GUI und TUI teilen Persistenz, Aktualisierung und Abfragesemantik.
Trade-off Frontend-Adapter müssen die Core-Grenze respektieren.
Zusammenfassung als Trait modellieren
Provider können wechseln oder fehlen, ohne Feeds zu brechen.
Trade-off Ausstehende Zusammenfassungen brauchen explizite Retry-Semantik.
Nachweise
- Geteiltes Verhalten
- Rust-Core
- Lokale Persistenz
- SQLite
- LLM-Grenze
- Optional
Desktop- und Terminal-Frontends
WAL und paralleler Zugriff
Feeds laufen ohne Zusammenfassung weiter
Zugehörige Fallstudie
Die Projektseite beschreibt, was existiert. Die Fallstudie verfolgt die Entscheidungen, Rahmenbedingungen und Trade-offs dahinter.
Case StudyHighlights
- Ein Core, zwei Oberflächen Tauri-Commands/-Events und eine Terminal-Zustandsmaschine nutzen beide owly-core.
- KI bleibt optional Nicht verfügbare Provider lassen Artikel erneut versuchbar, statt den Abruf zu brechen.