Geteilte native Event-Sourcing-Sync-Lib (Counterpart zu @mana/event-sync). Local-First mit Anonymous-Mode + Claim. — Apache-2.0, Spiegel des Vereins mana.
Find a file
Till JS 630e4254c7 0.9.0: 402-Handling (kein aktives Cloud-Sync-Abo)
EventSyncError.subscriptionRequired (402-Mapping in SyncHTTPClient),
onSyncRequired-Hook + isSyncRequired. Push/Pull: Events bleiben in der
Outbox (kein Verlust, kein Attempt-Increment), event-getriggerte
Push/Pull unterdrückt, Poll prüft weiter (force) → Auto-Recovery.
Wire-Parität zu @mana/event-sync 0.9.0. swift build + tests grün.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 15:26:20 +02:00
devlog devlog: Repo-Historie nachgezogen (spieler+macher) 2026-06-16 01:44:32 +02:00
Sources/ManaEventSync 0.9.0: 402-Handling (kein aktives Cloud-Sync-Abo) 2026-06-17 15:26:20 +02:00
Tests/ManaEventSyncTests 0.9.0: 402-Handling (kein aktives Cloud-Sync-Abo) 2026-06-17 15:26:20 +02:00
.gitignore feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib 2026-05-25 12:39:59 +02:00
.swiftformat feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib 2026-05-25 12:39:59 +02:00
.swiftlint.yml chore(lint): swiftlint --strict sauber (0 Violations) 2026-05-25 15:49:48 +02:00
CHANGELOG.md 0.9.0: 402-Handling (kein aktives Cloud-Sync-Abo) 2026-06-17 15:26:20 +02:00
CLAUDE.md feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib 2026-05-25 12:39:59 +02:00
Package.swift feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib 2026-05-25 12:39:59 +02:00
README.md feat: ManaEventSync E-4.0–E-4.2 — geteilte native Event-Sync-Lib 2026-05-25 12:39:59 +02:00

mana-swift-event-sync

ManaEventSync — der native Swift-Counterpart zu @mana/event-sync. Eine geteilte Event-Sourcing-Sync-Bibliothek für alle nativen mana-e.V.-Apps: lokaler Event-Log + Projektion, Outbox, HTTP/WebSocket- Sync gegen mana-sync (sync2.mana.how), optionale Payload-Crypto und Local-First mit Anonymous-Mode + Claim bei Login.

Vereinheitlicht die zuvor zweimal von Hand gebaute Plumbing aus pageta-native und nutriphi-native.

Was die App liefert, was die Lib liefert

  • Lib (ManaEventSync): Wire-Format (EventEnvelope), EventStorage (SwiftData), SyncHTTPClient + optionaler SyncWSClient, optionale CryptoProvider/VaultClient, die EventSyncEngine mit Anonymous- Identität + signIn-Claim.
  • App: ihre Domäne — Payload-Typen, State-Projektionen, Reducer und ein dünner Coordinator, der engine.makeEnvelope/emit/events(forAggregate:) nutzt.

Stand

Siehe CHANGELOG.md. Plan + Phasen: ../mana/docs/playbooks/MANA_SWIFT_EVENT_SYNC.md.

Lokal

swift build
swift test