max / audiofiles
1 file changed,
+9 insertions,
-0 deletions
| @@ -60,6 +60,15 @@ AF is PWYW (suggested $15, floor $0). Metadata sync is free. Blob sync (sample f | |||
| 60 | 60 | - [x] Annual billing messaging — already in sync_panel.rs:115-121 ("Annual saves you money — fewer Stripe transactions means less processing fees") + per-tier savings shown inline | |
| 61 | 61 | - [ ] Test full checkout flow against live Stripe (end-to-end: subscribe → webhook → blob sync gate passes) | |
| 62 | 62 | ||
| 63 | + | ## SyncKit Parity with GoingsOn (2026-05-11) | |
| 64 | + | ||
| 65 | + | Fixes needed to match GO's working end-to-end SyncKit flow: | |
| 66 | + | ||
| 67 | + | - [ ] **synckit.toml** — create `synckit.toml` with AF's API key (need to create sync app on MNW dashboard first). Replace `option_env!("SYNCKIT_API_KEY")` / `EMBEDDED_API_KEY` in main.rs with `include_str!("../../../synckit.toml")` + parser. Current approach breaks silently on recompile without env var. | |
| 68 | + | - [ ] **OAuth callback CORS** — `audiofiles-sync/src/auth.rs` callback server responses missing `Access-Control-Allow-Origin: *` header. Blocks egui webview (if applicable) or external browser from polling result. | |
| 69 | + | - [ ] **OAuth callback not awaited (CRITICAL)** — `start_auth()` returns `AuthSession` with `code_rx` oneshot receiver, but nothing ever awaits `code_rx` or calls `complete_auth()`. The callback result is lost. Fix: spawn a background tokio task in `SyncManager::start_auth()` that awaits the callback and automatically calls `complete_auth()`, updating `SyncStatus` on success. | |
| 70 | + | - [ ] **No poll loop** — AF is egui (not Tauri/JS), so there's no browser-based poll. The OAuth flow needs to work via the oneshot channel + background task pattern described above. | |
| 71 | + | ||
| 63 | 72 | --- | |
| 64 | 73 | ||
| 65 | 74 | ## Classification Pipeline — Remaining |