rdmsm4x-changelog-20260902-1750-tyrell-build12-ios-attention-notifications
rdmsm4x-changelog-20260902-1750-tyrell-build12-ios-attention-notifications
Added and validated an isolated Build 12 iOS source slice for truthful, configurable local attention notifications without creating a remote-notification or delivery-proof path.
Scope
- Host:
rdmsm4x; isolated Build 12 Tyrell branch only. - Ticket:
FEAT-20260902-16. - Source base: Build 11 checkpoint
fdb562281486cddbf6d33e770eeb0a8f285ffb6c. - Source commit:
c8a69dff390757f3319aceeec289af1c949f7e9a. - State commit:
2db6d6571bbfaf16235dfe916a31955a3054ac7e.
Files changed
ios/Sources/MobileAttentionNotifications.swift— local policy, authorization abstraction, generic local sink, settings state, and coordinator.ios/Sources/MobileConfiguration.swift— persisted local attention preference.ios/Sources/MobileSettingsView.swift— distinct preference and OS-authorization presentation.ios/Sources/MobileStores.swift— injected coordinator and fresh-message observation.ios/Tests/TyrellMobileTests.swift— five injected classifier/settings/sink cases.SESSION-STATE.md,ISSUES.md— Build 12 resumable state and open validation gate.
Verification
- Default
swift test: PASS, 235 XCTest + 387 Swift Testing = 622/622; log SHA-25635011e09197def855967855327815b144493e8fb4ad2590940f8599d25316fd8. - Release
TyrellCloudProjection: PASS; log SHA-256f3e8d1b95a7070c6452ec26117a5c923610c3456373465d03f245e3314247f8e. - Generated iOS application build and full
build-for-testing: PASS; test bundle contains 40 cases and compiles the five new attention cases; logs SHA-256f23ea86fcaabf0c158e6565e3f04f18ff9e6a8601f7521d594af9bef080c456cand4a24207ead77d9e1d41a7006a19343ded7519c07bdfce53cf771f50daf4d3519. - Dedicated simulator
testinvocation: blocked before XCTest by the existing unsigned host's missing CloudKit entitlement. This is an invalid-harness diagnostic, not a passing test or a feature failure; log SHA-2560d0568f016ebeee10b5b103f3ff2506b3755dca79435194481d5c0b301f0b643. git diff --check: PASS, no output.
Safety and rollback
- No APNs key/token, CloudKit subscription/write, signing, physical device install, provider access, network behavior added by this slice, canary, or fleet deployment.
- The sink produces only generic local content; it never makes delivery/read claims or persists message bodies.
- Undo by discarding the isolated branch or reverting the state commit then source commit. No live deployment rollback is required.
Outstanding owner action
Authorize a later signed test-host/simulator or device gate before any real local-notification display is claimed. Keep notification display separate from source integration, artifact acceptance, canary, and fleet rollout.