pageta-native/CHANGELOG.md
Till JS deb4bca279 design(lese-liste): gestickter Abschnitt auf Navbar-Titelhöhe
In-List-Header im Ruhezustand flach im Fluss (Symbol+Name+Count, reiner
Text, ohne Hintergrund). Beim Scrollen wandert der aktuelle Abschnitt auf
Navbar-Titelhöhe (links, gleiche Höhe wie der kleine Lese-Liste-Titel)
statt unter der Navbar zu pinnen — Erkennung via Y-Marker/PreferenceKey,
erscheint erst beim Scrollen. Großtitel bleibt Standard. iOS-Sim grün.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 21:51:53 +02:00

63 lines
3.3 KiB
Markdown

# Changelog
Alle Änderungen werden hier dokumentiert. Format orientiert an
[Keep a Changelog](https://keepachangelog.com), Versionierung nach
[Semver](https://semver.org).
## [Unreleased]
### Design (iOS-26 / Liquid Glass)
- Lese-Liste modernisiert nach iOS-26-Standards:
- **Suche** (`.searchable`) über Titel/Quelle/Anriss — floatet auf
iOS 26 automatisch unten; Leer-Treffer zeigen
`ContentUnavailableView.search`. Badge/Spotlight zählen bewusst
weiter ungefiltert.
- **Neue Zeilen**: text-fokussiert, bewusst **ohne Thumbnail** (passt
zum „lies in Ruhe"-Charakter), klarere Typo-Hierarchie (headline-
Titel, Quelle in Brand-Terracotta, Lesezeit in der Meta-Zeile).
- **Lesefortschritts-Balken** für aktiv gelesene Artikel.
- **Gruppen-Header auf Titelhöhe** (Lesend/Ungelesen/Gelesen): im
Ruhezustand als flache Header im Fluss (Symbol + Name + Count, reiner
Text, ohne Hintergrund/Container). Beim Scrollen wandert der aktuelle
Abschnitt auf **Navbar-Titelhöhe** (links, gleiche Höhe wie der kleine
„Lese-Liste"-Titel) statt unter der Navbar zu pinnen. Erkennung über
Y-Marker pro Header (PreferenceKey). Großer Seitentitel bleibt Standard
(linksbündig → beim Scrollen mittig).
- Liquid Glass bleibt auf Chrome (Tab-Bar/Toolbar/Suche, automatisch
unterm iOS-26-SDK), nicht auf Content-Zellen (Apple-HIG).
`ArchivedListView` erbt den neuen Row-Look.
### Geändert (Release-Härtung)
- Teilen ist jetzt local-first: Ein aus Safari geteilter Link wird beim
nächsten App-Foreground **sofort lokal** in die Lese-Liste gelegt — auch
ausgeloggt — statt bis zum Login in der Queue zu hängen. `flushPendingShares()`
speichert dafür einen Stub (`ArticleSaved` mit Host-Titel, leerer Inhalt,
reiner lokaler Emit, kein Auth-Gate mehr). Der Toast „Zur Lese-Liste
hinzugefügt" ist damit auch ohne Login ehrlich.
- Neuer Event-Typ `ArticleEnriched` (+ non-destruktiver Reducer-Case):
füllt Titel/Inhalt/Metadaten nach, sobald die Extraktion möglich ist
(`/extract/preview` braucht eine gültige Session), ohne Status/Progress/
Favorit/Notiz/Tags zu berühren.
- Enrichment-Sweep (`enrichPendingArticles`) läuft nach jedem Flush, beim
App-Active und beim Login; pro Artikel best-effort, gescheiterte Versuche
werden je Session nicht wiederholt. Beim Login liftet `claimOnSignIn`
die anonymen Events wie gehabt in den Account.
- Reader zeigt für noch nicht extrahierte Artikel einen „Inhalt wird noch
geladen"-Hinweis mit Original-Link statt einer leeren Seite.
- **Offener Punkt (Cross-Client):** Der Web-Reducer kennt `ArticleEnriched`
noch nicht — auf Web bleiben so geteilte Artikel bis zum Web-Follow-up
inhaltsleer. Folge-Task: Event in `pageta` web + shared-schemas nachziehen.
- `PrivacyInfo.xcprivacy` ergänzt (UserDefaults `CA92.1`, kein Tracking) —
App-Store-Voraussetzung.
- Schreibfehler sind nicht mehr stumm: `saveNote`/`setColor` (Highlights)
sowie Favorit/Archiv/Status/Wiederherstellen/Löschen in Lese-Liste und
Archiv zeigen jetzt einen Alert, statt den Fehler in einem nie
gerenderten `loadState` zu verschlucken.
## [0.1.0]
Erste TestFlight-Vorbereitung. Native iOS/iPadOS/macOS Reader: Feed,
Lese-Liste, nativer Reader mit Highlights und Notizen, Sync über
Event-Sourcing (`sync2.mana.how`).