rdmsm4x changelog — 2026-09-02 16:00 — Tyrell Build 10 iOS cache-first
Summary
Completed a source-only, isolated Tyrell iOS cache-first reconnect/readiness lane. The iOS Fleet and Chat surfaces can now restore a local projection of the already-sanitized CloudKit snapshot contract immediately, then refresh through the existing read-only path. Restored data is explicitly presented as retained evidence while iCloud is being checked; it is never presented as current fleet health.
Scope and provenance
- Worktree:
/Users/richh/dev/_worktrees/tyrell-build10-ios-cache-chat-20260902 - Branch:
codex/tyrell-build10-ios-cache-chat-20260902 - Base checkpoint:
42f1ee9574b4ccd077edf1d3414c42450ae3f91e - Source change:
1cebb3ee6bbf9cdb3e05832210d0ca1ee302ad4c - Documentation checkpoint:
d50537aacc2a1b05a087c92731612c2fde710d9e - Ticket:
FEAT-20260902-08
Files changed
ios/Sources/MobileCloudSnapshot.swiftios/Sources/MobileCloudSnapshotPresentation.swiftios/Sources/MobileCloudStatusCard.swiftios/Tests/TyrellMobileTests.swiftSESSION-STATE.md/Users/richh/dev/_handoff/tyrell-build10-ios-cache-chat.md
Verification
swift test --filter TyrellCloudProjectionTests: 10 tests passed, zero failures.- Evidence:
/Users/richh/dev/_handoff/tyrell-build10-ios-cache-chat-swift-focused-rerun-20260902-1550.log - SHA-256:
18c83933eea2f58027fa4f854b2a69a5085696718f5f55e6aa917f783429a0b0
- Evidence:
- iPhone 17 Pro simulator test target: 31 tests passed, zero failures.
- Evidence:
/Users/richh/dev/_handoff/tyrell-build10-ios-cache-chat-ios-test-20260902-1600.log - SHA-256:
86e8da5cd5c282c56fdaa437064d33cb83cf57e70fad61887810f6e40dc77707
- Evidence:
Explicit non-actions
No CloudKit record/account/zone/schema write, provider or chat-content access, signing, install, device deployment, fleet rollout, permission change, or external exposure was performed.
Rollback and remaining gate
Revert d50537aacc2a1b05a087c92731612c2fde710d9e and
1cebb3ee6bbf9cdb3e05832210d0ca1ee302ad4c from the
source-owner integration branch to remove the source change. A local
cache may be ignored or cleared only by the app's normal sandbox
lifecycle; it is non-authoritative and a cache miss falls back to the
existing cold read-only refresh. Source-owner integration, Build 10
dependency integration, and later physical-device/canary/deployment
acceptance remain separate gates.