rdmsm4x-changelog-20260903-0917-rtty-ios-cloudkit
RTTy iOS/iPadOS CloudKit finalization
Completed the isolated iOS/iPadOS RTTy CloudKit, settings, evaluation-history, network-path, adaptive UI, notification, and mobile release-policy implementation so the next integrated release has a structurally validated Mobile companion; signing and real-device/CloudKit acceptance remain owner gates.
Scope
- Host:
rdmsm4x - Repository source:
/Users/richh/dev/apps/RTTy - Isolated writer worktree:
/Users/richh/dev/_handoff/rtty-ios-cloudkit-20260903/worktree - Branch:
codex/rtty-ios-cloudkit-20260903 - Base:
ca49e7f49c4a8f8dd59637910512db01f4a1d66e - Commits:
0ad756888d1cdb4c040256a29854782b8895ca93e80b7c972875677318a2ef41c5b608a22360a42d
- Full handoff:
/Users/richh/dev/_handoff/rtty-ios-cloudkit-20260903/REPORT.md
Changes
- Enabled Mobile Release CloudKit for
iCloud.com.eastcoastscience.rttythrough the existingECSCloudKitdependency pinned at93b9f700e7b73c02881b0a00007cb6f813720a43. - Added startup hydration from established
RTTySettings/portable-v1andRTTyFleetProjection/latestrecords. - Added ECS custom-zone
RTTyMobileSettings/mobile-settings-v1andRTTyRealtimeEvaluation/evaluation-v1-<UUID>records. - Added in-app settings load/save and fully disclosed RTTy-owned CloudKit reset.
- Added manual/scheduled foreground evaluations with durable endpoint
and
Network.frameworkpath evidence. - Added protected local evaluation history, synced recent history, fleet-host visibility, foreground threshold/failure notifications, and adaptive iPhone/iPad UI.
- Updated entitlements, generated Xcode project, reviewed source closure, archive snapshotting of pinned ECSCloudKit, distribution-profile validation, privacy/artifact policy, feature status, and issue truth.
- Exact changed-file inventory is in the handoff report.
Verification
- Stable Xcode 26.6 Swift package tests: 3 XCTest + 87 Swift Testing, 90 total, 0 failures.
- Mobile CloudKit focused XCTest: 3 executed, 0 failures.
/bin/bash Tests/ScriptTests/app_store_privacy_contract_test.sh: pass./bin/bash Tests/ScriptTests/archive_mobile_policy_test.sh: pass.python3 Tests/ScriptTests/mobile_pbx_source_closure_test.py: pass.- Release mobile snapshot validator, entitlement validator, plist
lint, and
git diff --check: pass. - Xcode 27 beta 6 generic iOS Simulator Debug build: pass.
- Xcode 27 beta 6 generic iOS device Release build: pass.
- Xcode 27 beta 6 clean post-commit unsigned archive: pass at
/private/tmp/RTTyMobile-cloudkit-beta-postcommit.xcarchive. - Archive observed as bundle
com.eastcoastscience.rtty, version0.3.824, build46, commit0ad756888d1cdb4c040256a29854782b8895ca93, clean, arm64, iOS 17.0, iPhone+iPad, with CloudKit, UserNotifications, and App Intents metadata. - Artifact-aware privacy/CloudKit contract against that archive: pass.
- Stable Xcode 26.6 generic Simulator/device
xcodebuildattempts stalled inSWBBuildServicebefore compiler launch and were interrupted. This remains an infrastructure blocker, not a passing or failing build claim.
External gates and owner actions
- No CloudKit records were created, changed, or deleted in any real container.
- No simulator was booted and no physical-device runtime QA was performed.
- This host has one Apple Development identity, no Apple Distribution identity, and zero decoded profiles matching both the RTTy bundle and canonical CloudKit grants.
- Release owner must integrate both commits, repair/restart the stable Xcode service, provision/sign through the authorized GUI session, and exercise disposable-account CloudKit hydration/save/reset plus notifications, iPhone/iPad adaptive UI, Nearby, and App Intents on real signed builds.
- No push, merge, upload, TestFlight submission, App Store release, or production CloudKit schema promotion occurred.
Auxiliary state
- A temporary external-package symlink exists at
/Users/richh/dev/_handoff/lib/ECSCloudKit, targeting/Users/richh/dev/lib/ECSCloudKit. It is not tracked and may be removed after dependent handoff worktrees finish. - SwiftPM caches generated by tests were moved to
/private/tmp/rtty-mobile-build-cache.mQA6xbso release-snapshot validation could examine a clean candidate tree.
Undo
From the integrated RTTy repository, revert
e80b7c972875677318a2ef41c5b608a22360a42d, then revert
0ad756888d1cdb4c040256a29854782b8895ca93. Remove the
temporary handoff symlink only after confirming no other isolated lane
uses it. No CloudKit data rollback is required because this work made no
CloudKit writes.