Erste Devlog-Befüllung; geerdet in den realen Commits, data.json via @mana/devlog-gen. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.7 KiB
| date | day | view | weekday | commits | review |
|---|---|---|---|---|---|
| 2026-05-25 | 1 | macher | Montag | 7 | auto |
Montag, 2026-05-25 — Tag 1 (Macher-Sicht)
Tag eins: ManaEventSync entsteht als geteilte native Event-Sync-Lib —
sieben Commits, +2418 LoC, der native Counterpart zu @mana/event-sync.
Vereinheitlicht die zuvor doppelt von Hand gebaute Plumbing aus
pageta-native und nutriphi-native.
3be550a legt die Phasen E-4.0–E-4.2 hin: die vier Säulen Core
(Wire-Format/EventEnvelope), Engine (EventSyncEngine mit
Anonymous-Identität + signIn-Claim), Transport (HTTP + optional WS)
und Storage (SwiftData-EventStorage). Architektur-Invariante von
Beginn an: nur Plattform-Plumbing, keine App-Domäne — die Lib weiß
nichts von Articles oder Meals; Identität (anon:<id> vs JWT-sub)
wird in makeEnvelope gestempelt, nicht in der App.
Danach das Feinwerk:
4c1a141(wire) —sequenceNumberals JSON-String decoden statt als Zahl, sonst bricht Cross-Device-Sync (Wire-Parität zum Server, der bei Drift gewinnt).19dced0macht den Fix lint-sauber (c→container, nesting-disable).d8cbdab(lib) — Re-Encrypt-on-Claim plusonError-Hook: beim Login werden anonyme Events neu attributiert und neu verschlüsselt, bevor sie gepusht werden.34e263a(golden) — Replay-Parität gegen die geteiltenevent-kit-Fixtures (E-4.3): dieselben Fixtures, die die TS-Seite prüft, müssen nativ identisch replayen.90cdbb1(engine) —hasPendingAnonymousEvents()als Claim-Guard für den Login-Hook, damit die App weiß, ob überhaupt etwas zu übernehmen ist.
ca6d024 zieht swiftlint --strict auf 0 Violations. Compliance-Linie
gehalten: keine 3rd-Party-Deps, nur Foundation/SwiftData/CryptoKit/OSLog
ManaCore.