| 126 |
126 |
DeepInfra gemma-4-31B) removed; streaming-only models flagged (`requiresStreaming`); 429/5xx |
| 127 |
127 |
backoff added. End-to-end GUI chat verified live; auto-title now uses cheapest non-reasoning model. |
| 128 |
128 |
|
| 129 |
|
−## Phase 8 — Signing & Notarization (in progress) |
| 130 |
|
− |
| 131 |
|
−- [ ] `make release`: universal binary (arm64 + x86_64 via lipo; x86_64 needs `-U` for CLT's |
| 132 |
|
− arm64-only swiftCompatibility56), Developer ID sign (hardened runtime), notarize |
| 133 |
|
− (`MacLustr-Notarize`), staple, `spctl` verify, DMG |
|
129 |
+## Phase 8 — Signing & Notarization ✅ (completed 2026-07-30) |
|
130 |
+ |
|
131 |
+- [x] `make release`: universal binary (arm64 + x86_64 via lipo; x86_64 needs `-U` for CLT's |
|
132 |
+ arm64-only swiftCompatibility56), Developer ID sign (hardened runtime, minimal entitlements), |
|
133 |
+ notarize app zip + DMG (`MacLustr-Notarize`, both **Accepted**), staple both |
|
134 |
+- [x] `spctl -a -vv` → **accepted, source=Notarized Developer ID** · `stapler validate` OK · |
|
135 |
+ `lipo -archs` → x86_64 arm64 · notarized app launches and quits cleanly |
|
136 |
+- [x] Gotcha fixed: AMFI rejects XML comments inside the entitlements dict — plist is now comment-free |
|
137 |
+ |
|
138 |
+**Phase 8 checkpoint summary:** `dist/Zyquo Cloud.app` (signed, notarized, stapled, universal) and |
|
139 |
+`dist/ZyquoCloud.dmg` (notarized, stapled) ship-ready. Identity |
|
140 |
+"Developer ID Application: Simon-Pierre Boucher (3YM54G49SN)", profile MacLustr-Notarize. |
|
141 |
+ |
|
142 |
+--- |
|
143 |
+ |
|
144 |
+## Definition of Done — final sweep (2026-07-30) |
|
145 |
+ |
|
146 |
+- [x] `make release` → Developer ID-signed, notarized, stapled `Zyquo Cloud.app` (spctl-verified), zero Xcode |
|
147 |
+- [x] Cloud SVG icon (+ small-size & template variants) striking at all sizes, embedded icns + menu bar template + in-app glyph/wordmark |
|
148 |
+- [x] Light theme per Phase 4 spec (visually verified), dark derived (visually verified) |
|
149 |
+- [x] Naming coherent: "Zyquo Cloud" UI, com.zyquo.cloud, ZyquoCloud target/data folder (sweeps clean) |
|
150 |
+- [x] 12 providers configured; custom AES-GCM vault, zero Keychain usage (sweep clean) |
|
151 |
+- [x] Verification harness: **202/202 green** across all providers/models with real keys (docs/VERIFICATION.md) |
|
152 |
+- [x] All Phase 6 features implemented and functional |
|
153 |
+- [x] Header audit: every code file carries the Author/Mail header (scripts/audit-headers.sh) |
|
154 |
+- [x] PROVIDERS.md ↔ ModelCatalog in sync (Phase 7 amendments recorded); 27/27 unit tests; zero compiler warnings |
| 134 |
155 |
## Phase 2 — Architecture (pending) |
| 135 |
156 |
## Phase 3 — SecureKeyStore (pending) |
| 136 |
157 |
## Phase 4 — Design System (pending) |
| 137 |
158 |
|