Matthias Nott
2026-03-25 29f7a2c444d60fa155451d7e7f65cf637a1b7f41
TODO-appstore.md
....@@ -20,21 +20,21 @@
2020
2121 ## MEDIUM (Improve before submission)
2222
23
-- [ ] **M1: Subnet scan hammers 254 hosts** — Could trigger IDS. Detect subnet mask or cap range
24
-- [ ] **M2: No loadMore debounce** — Scroll pagination fires repeatedly on iOS bounce. Add isLoading guard
23
+- [x] **M1: Subnet scan hammers 254 hosts** — Batched in groups of 20 with early exit *(fixed 2026-03-25)*
24
+- [x] **M2: No loadMore debounce** — Added isLoadingMore guard *(fixed 2026-03-25)*
2525 - [ ] **M3: NavigateNotifier global singleton** — Mutable static, stale reference risk. Move to Riverpod provider
2626 - [ ] **M4: Unbounded _seenSeqs set** — O(n log n) eviction. Use FIFO deque instead
2727 - [ ] **M5: Screenshots bloat iCloud backup** — Store images as files, not base64 in JSON. Or exclude from backup
28
-- [ ] **M6: Unused import** — `server_config.dart` import in chat_screen.dart suppressed with ignore comment
29
-- [ ] **M7: Silent error swallowing** — ServerConfig _load() catches all exceptions silently. Add debugPrint
28
+- [x] **M6: Unused import** — Already removed *(fixed 2026-03-25)*
29
+- [x] **M7: Silent error swallowing** — Added debugPrint on config load failure *(fixed 2026-03-25)*
3030
3131 ## LOW (Nice-to-haves)
3232
3333 - [ ] **L1: PrivacyInfo.xcprivacy** — Required since 2024 for UserDefaults and FileTimestamp APIs
3434 - [ ] **L2: Privacy policy URL** — Required for microphone/camera access apps
35
-- [ ] **L3: Unused dependencies** — Remove `web_socket_channel` and `wakelock_plus` from pubspec.yaml
35
+- [x] **L3: Unused dependencies** — Removed web_socket_channel and wakelock_plus *(fixed 2026-03-25)*
3636 - [x] **L4: Unnecessary _http._tcp** — Removed from NSBonjourServices *(fixed 2026-03-25)*
37
-- [ ] **L5: Typing indicator timeout** — Can get stuck if typing_end missed during background. Auto-clear after 10s
37
+- [x] **L5: Typing indicator timeout** — Auto-clear after 10s *(fixed 2026-03-25)*
3838 - [ ] **L6: Version number** — Default 1.0.0+1, set correctly before submission
3939 - [ ] **L7: App icon** — Verify meets Apple guidelines (no alpha channel, correct sizes)
4040