rdmsm4x-changelog-20260923-2308-rtty-ios-laneI-cloudkit-roundtrip
rdmsm4x-changelog-20260923-2308-rtty-ios-laneI-cloudkit-roundtrip
RTTy Build 519 lane I: a Mac-written CloudKit record was read back on
an iPhone (rdip17air, Production) for the first time, the reason the
shipping reader could never list the Macs was measured (Production has
no queryable recordName), and an index-free RTTySyncV1 path was built on
both Mac and iOS; 16 commits on ios/finish-20260923, not
pushed.
- Host / scope: rdmsm4x only; iPhone rdip17air (dev install); lane simulator. Window 22:18:19 → 23:08 EDT, 2026-09-23.
- Ticket: TASK-20260923-03 (lead
claude@rdmsm4x/c13f617a). Lane contract:
~/dev/_handoff/rtty-build519-20260923/LANES.md. - Repo: mirror
~/dev/_scratch/rtty-ios-20260923(clone of~/dev/apps/RTTyat 1cb8c8c), branchios/finish-20260923, tip4418c24. Hand-back:HANDBACK.md(untracked, in the mirror). Write-up:Apps/RTTyMobile/docs/IOS-FINISH-20260923.md.
What changed on this host
- 16 commits in the mirror (list in HANDBACK.md). One macOS source
changed:
Sources/RTTy/Services/CloudKitFleetProjectionPublisher.swift(dual-write intoRTTySyncV1; index-free zone reset). iOS: deploy signing, read receipts, zone source, honest "last synced", local-first start, DEBUG round-trip probe, tests, docs, captures, both FEATURE_MATRIX copies. - Created simulator "RTTy LaneI iOS finish 20260923" (794FE2FA-A8B6-474C-9277-AA7590987E31, iPhone 17 Pro / iOS 27.0); left Shutdown.
- Installed the lane I Debug build (CloudKit Production) on rdip17air at 22:32:22 and 22:36:48 EDT; phone now owned by the rtty-ce session.
- CloudKit (Rich's private database, Production): the app's first run
with the provisioning fix created the
RTTySyncV1zone (the shipping app does this on first run); a mobile-settings save was rejected by the schema, so no record was written. No other writes; all probes were reads. - Filed
~/dev/todo/items/20260923-ecscloudkit-wildcard-icloud-services.mdfor lib/ECSCloudKit.
Verification (counts)
- Proof: Mac os_log
22:36:34.033 published device-68d2f0c8…7713 2026-09-24T02:36:32Z; rdip17air read that record at 22:36:55 (server 02:36:33Z, collectedAt 02:36:32Z, 15 endpoints);portable-v1read by probe and session. JSON inApps/RTTyMobile/docs/evidence-20260923/. - Mobile package: XCTest 33 + Swift Testing 107, 0 failures. App-hosted (simulator): XCTest 2 + Swift Testing 7. macOS RTTyTests full: 1180 executed, 8 skipped, 0 failures. Privacy-contract script PASS; validate_docs PASS.
- Builds: generic iOS as briefed FAILED by the recorded manual-signing decision; with local material or unsigned, SUCCEEDED; simulator SUCCEEDED.
Undo
- Code: the branch is unmerged and unpushed; drop
ios/finish-20260923or revert individual commits. - Simulator:
xcrun simctl delete 794FE2FA-A8B6-474C-9277-AA7590987E31. - rdip17air: reinstall any other build over it (rtty-ce owns the phone).
- CloudKit zone
RTTySyncV1in Production: harmless and expected by the app; Settings → Reset keeps zones by design.
Owner actions (Rich only)
- CloudKit Console,
iCloud.com.eastcoastscience.rtty: addrecordNameQUERYABLE to RTTyFleetProjection, RTTySettings, RTTyMobileSettings, RTTyRealtimeEvaluation and Deploy Schema Changes to Production (Apple ID sign-in; Production schema promotion is an owner gate).