From 29f7a2c444d60fa155451d7e7f65cf637a1b7f41 Mon Sep 17 00:00:00 2001
From: Matthias Nott <mnott@mnsoft.org>
Date: Wed, 25 Mar 2026 17:22:28 +0100
Subject: [PATCH] fix: M1 M2 M6 M7 L3 L5 - subnet batching, scroll debounce, error logging, typing timeout, remove unused deps

---
 TODO-appstore.md |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

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

--
Gitblit v1.3.1