5.2 KiB
5.2 KiB
Plan — zitare-native (SwiftUI Hybrid)
Stand: 2026-05-14 — Phase ζ-0 Setup. Repo-Skelett, project.yml,
CLAUDE.md, leerer Build steht aus. Vollständige Phasen-Begründung
in ../mana/docs/playbooks/ZITARE_NATIVE_GREENFIELD.md.
SOT: das Greenfield-Playbook. Dieses File ist nur die App-lokale Status-Spur.
Aktueller Stand
🚧 ζ-0 — Setup (2026-05-14, in Arbeit)
- Repo-Skelett unter
~/Documents/Code/zitare-native/ project.ymlmit Bundleev.mana.zitare, drei Targets (App + Widget + ShareExt), ManaSwiftCore + ManaSwiftUI viapath: ../mana-swift-core/path: ../mana-swift-ui.swiftformat,.swiftlint.yml,.gitignoreCLAUDE.md,README.md,PLAN.md- Source-Stubs (App, RootView, AppConfig, ZitareAPI, Log, ZitareTheme, Resources)
xcodegen generatelokal grün (2026-05-14)swiftlint --strict0 violations in 14 files- Leerer Build im iOS-Simulator (iPhone 16e, Xcode 26.2 SDK,
xcodebuild ... -destination 'platform=iOS Simulator,name=iPhone 16e') - Unit-Tests grün (6/6 AppConfigTests) + UI-Smoke grün
- Leerer Build auf macOS — blockiert auf Apple-Developer-Portal-
Setup. App-Group
group.ev.mana.zitaremuss im Portal registriert werden, sonst Provisioning-Profile-Fehler. Same Blocker wie cards-native ζ-7 / memoro-native (siehe Memoryproject_memoro_native.md„Apple-Dev-Portal App-Group- Aktivierung nötig vor Test"). - ManaCore-Login mit Founder-Account, JWT im Keychain (manueller Test im Simulator, nicht im CI)
/healthz-Probe gegenzitare-api.mana.howloggt 200 (live gegen Mac-Mini-API verifiziert 2026-05-14 12:14, HTTP/2 200, OSLog „Healthz: OK")- AASA auf
https://zitare.com/.well-known/apple-app-site-association(Aufgabe ans Zitare-Web-Repo, blockiert ζ-1 nicht ζ-0) - Git-Repo
git.mana.how/till/zitare-native(push)
ζ-0 Verifikations-Log
2026-05-14 12:08 xcodebuild iOS Simulator iPhone 16e — BUILD SUCCEEDED
(nach Fix: .iso8601withFractional war cards-native-
local; in zitare-native auskommentiert, ζ-3 Port-TODO)
2026-05-14 12:10 Unit-Tests: 6/6 AppConfigTests passed in 0.03s
2026-05-14 12:11 UI-Smoke: test_appLaunches passed in 5.79s
(nach Fix: Test suchte "Zitare" das nur im Account-
Tab ist, jetzt auf Default-Tab "Lesen" geändert)
2026-05-14 12:09 xcodebuild macOS — BUILD FAILED, blockiert auf
Apple-Dev-Portal App-Group-Registrierung
2026-05-14 12:14 iPhone 16e Simulator: App-Launch + Live-Healthz
gegen zitare-api.mana.how → HTTP/2 200, OSLog
"[ev.mana.zitare:app] Zitare starting — auth
status: signedOut" und "[ev.mana.zitare:api]
Healthz: OK" (Fix: AuthenticatedTransport rejecte
notSignedIn auf public Endpoint, jetzt direkter
URLSession-Call für /healthz)
Phasen-Übersicht
| Phase | Ziel | Erfolg | Status |
|---|---|---|---|
| ζ-0 | Setup, leerer Build, Login | iOS-Build ✅, Tests ✅, Healthz Live ✅ | ✅ (Mac + Git-Push offen) |
| ζ-1 | WebShellView + Universal-Links | WebView rendert, UL-Routing testbar, Web-Header ausgeblendet | ✅ |
| ζ-2 | Snapshot-Sync + DailyQuoteWidget | Code + Tests grün, Endpoint im Web-Repo + Apple-Dev-Portal-App-Group fehlen für E2E | 🚧 (Code-Done) |
| ζ-3 | Submit-View nativ | Founder submittet Quote, Draft in /admin/queue | ⏳ |
| ζ-4 | Spotlight + ShareExt + App Intents | Spotlight findet, ShareExt POSTet | ⏳ |
| ζ-5 | Polish (Theme-Sync, iPad, A11y) | Eine Woche ohne Safari-Tab nutzbar | ⏳ |
| ζ-6 | App-Store-Submission | Approved | ⏳ |
Externe Blocker (nicht von Native-Code lösbar)
- Apple-Dev-Portal: App-Group
group.ev.mana.zitareregistrieren — sonst kein macOS-Build und kein Widget auf realem Gerät. Selbe Aktion wie für cards-/memoro-native nötig. - Cloudflare: DNS-CNAME für
zitare.com(Apex) auf1435166a-0e3f-4222-8de6-744f32cea5c9.cfargotunnel.comproxied. Plus Cleanup des versehentlichenzitare.com.mana.how-CNAME. Vollständige Anleitung indocs/CLOUDFLARE_TODO.md. - Forgejo-Repo
git.mana.how/till/zitare-nativeanlegen + Push — ✅ erledigt 2026-05-14, 5 Commits live.
Web-Vorbedingungen (Aufgabe an ../zitare/)
- AASA-Eintrag auf
https://zitare.com/.well-known/apple-app-site-associationmitappID: QP3GLU8PH3.ev.mana.zitare index-min.jsonals versionierter, ETag-versehener Endpoint (oder einigen, dass die Build-Output-Datei stabil bleibt)POST /api/v1/share/receivemitmana/text-Envelope-Handler (Manifest registriert, Code TBD)zitare.comCloudflare-Zone-Onboarding (steht imzitare/STATUS.mdals offen)- Cookie-SSO-Compat auf
zitare.mana.howend-to-end testen (Phase 2.G im Web-Repo code-fertig, Live-Test offen)
Verifikations-Lücken
Wird nach jedem ζ-Schritt befüllt.
Quirks
Wird im Verlauf befüllt. Format-Vorbild: ../zitare/STATUS.md Sektion
„Quirks".