What to build
Inventory every durable native store/table and finish the parity contract coverage not handled by preceding slices, including Privacy Zones, cached Board config, diagnostics and other stores found in production. Audit all ordinary iOS writes and swallowed DB failures.
Part 7 of the approved cross-platform persistence reliability plan. Android and iOS remain separate native implementations with shared observable contracts. Local planning document: docs/persistence-reliability-plan.md; this issue is self-contained. Type: AFK.
Likely files
modules/vescape-core/ios/telemetry/AppDataRepository+PrivacyZones.swift - production behavior or caller to inspect
modules/vescape-core/ios/telemetry/TelemetryRepository.swift - production behavior or caller to inspect
modules/vescape-core/ios/telemetry/TelemetryDatabase.swift - production behavior or caller to inspect
modules/vescape-core/android/src/main/java/expo/modules/vescapecore/telemetry/TelemetryDao.kt - production behavior or caller to inspect
modules/vescape-core/android/src/main/java/expo/modules/vescapecore/telemetry/TelemetryDatabase.kt - production behavior or caller to inspect
Implementation hints
Keep Room on Android and GRDB on iOS. Native owns durable truth; JS renders state and sends intents. Follow bidirectional @parity links and preserve bridge payloads. Custom SQL is allowed for migrations and aggregate updates with real DB tests. Use existing error UI and avoid a generic persistence/recovery framework. Diagnostics transport follows ADR 0031; Sentry handles errors independently of local event persistence. Use bun commands and appropriate scoped verification.
Acceptance criteria
Blocked by
Related
What to build
Inventory every durable native store/table and finish the parity contract coverage not handled by preceding slices, including Privacy Zones, cached Board config, diagnostics and other stores found in production. Audit all ordinary iOS writes and swallowed DB failures.
Part 7 of the approved cross-platform persistence reliability plan. Android and iOS remain separate native implementations with shared observable contracts. Local planning document: docs/persistence-reliability-plan.md; this issue is self-contained. Type: AFK.
Likely files
modules/vescape-core/ios/telemetry/AppDataRepository+PrivacyZones.swift- production behavior or caller to inspectmodules/vescape-core/ios/telemetry/TelemetryRepository.swift- production behavior or caller to inspectmodules/vescape-core/ios/telemetry/TelemetryDatabase.swift- production behavior or caller to inspectmodules/vescape-core/android/src/main/java/expo/modules/vescapecore/telemetry/TelemetryDao.kt- production behavior or caller to inspectmodules/vescape-core/android/src/main/java/expo/modules/vescapecore/telemetry/TelemetryDatabase.kt- production behavior or caller to inspectImplementation hints
Keep Room on Android and GRDB on iOS. Native owns durable truth; JS renders state and sends intents. Follow bidirectional @parity links and preserve bridge payloads. Custom SQL is allowed for migrations and aggregate updates with real DB tests. Use existing error UI and avoid a generic persistence/recovery framework. Diagnostics transport follows ADR 0031; Sentry handles errors independently of local event persistence. Use bun commands and appropriate scoped verification.
Acceptance criteria
Blocked by
Related