rdmsm4x-changelog-20260828-2044-tyrell-ios-cloudkit-reconcile
rdmsm4x-changelog-20260828-2044-tyrell-ios-cloudkit-reconcile
Reconciled Tyrell's interrupted iOS/CloudKit source into an isolated, integration-ready branch; the iPhone chat client now keeps transport and delivery truth explicit, while CloudKit construction and retained metadata are entitlement- and account-isolation-guarded.
Scope
- Host:
rdmsm4xonly. - Project: Tyrell, Production mode.
- Worktree:
/Users/richh/dev/_worktrees/tyrell-ios-cloudkit-reconcile-20260828. - Branch:
codex/tyrell-ios-cloudkit-reconcile-20260828. - Base:
7e232abf63d2bd25e8e234db43bf7a17aa09d7ed. - Result:
e9f80eb489594603d13cb43103eab77ab52c5033, following reconciled foundation commits3691f981b70f27f0e92abe1ef3368f27a4cf6376and3fd096cc444b8ebb2b96b3503926577588dd9b75.
Files changed in the isolated worktree
Sources/TyrellCloudKit/CKContainerCloudProjectionStore.swiftSources/TyrellCloudKit/CloudProjectionModels.swiftSources/TyrellCloudKit/CloudProjectionStore.swiftTests/TyrellCloudKitTests/CloudProjectionTests.swiftios/Sources/MobileCloudProjectionFactory.swiftios/Sources/MobileConfiguration.swiftios/Sources/MobileSettingsView.swiftios/Sources/MobileStores.swiftios/Tests/TyrellMobileTests.swiftios/project.yml.handoff/ios-cloudkit-reconcile-20260828.md
What changed and why
- Removed the CloudKit entitlement-bypass parameter so
CKContainerconstruction is reachable only after an actual entitlement/profile capability check. - Bound retained CloudKit metadata to the locally observed account identity, invalidated cache on account changes, and rejected foreign lanes or contaminated records.
- Pinned CloudKit writes to
.ifServerRecordUnchangedto avoid stale-client overwrite of newer server state. - Kept the iOS client transport-swappable and added honest private-HTTP disclosure, correlated response acknowledgement, invalid response failure, and stale in-flight delivery invalidation.
- Added account-lane, record-integrity, response-correlation, and transport/disclosure regression coverage.
Commands and verification
swift test— exit 0, full package suite passed.swift test --filter 'CloudProjectionTests'— 21/21 passed.xcodegen generate— passed.xcodebuild test -project TyrellMobile.xcodeproj -scheme TyrellMobile -destination 'platform=iOS Simulator,id=9A616E58-92CC-4635-AFA3-66D23CB454C8'— 26/26 passed.xcodebuild build -project TyrellMobile.xcodeproj -scheme TyrellMobile -destination 'generic/platform=iOS Simulator'— passed.git diff --check— passed.xcrun devicectl list devices— requested physical UDID was not visible.
Lifecycle and rollback
- No CloudKit data, schema, container, account, credential, session, cookie, runtime service, device install/launch, deployment, canary, or fleet rollout action occurred.
- Canonical
mainand the separately owned release worktree were not modified. - Rollback is to abandon
/Users/richh/dev/_worktrees/tyrell-ios-cloudkit-reconcile-20260828and branchcodex/tyrell-ios-cloudkit-reconcile-20260828; no runtime rollback is necessary.
Outstanding owner action
Attach/unlock/authorize iPhone
00008150-000625190A38401C, then have the designated
device/account owner run a fresh signed physical build and non-mutating
readiness check. Do not copy CloudKit, auth, provisioning, session, or
cookie state between hosts/accounts/devices.