rdmsm4x-changelog-20260828-1817-tyrell-ios-chat-qa-build
Prepared the Tyrell iOS remote-QA client for lead integration, with clearer chat identity/trust/delivery behavior and reproducible simulator/device-build evidence.
Scope
- Host:
rdmsm4x - Production project: Tyrell
- Isolated worktree:
/Users/richh/dev/_worktrees/tyrell-ios-hour-20260828 - Branch:
codex/tyrell-ios-hour-20260828 - Commit:
f3a500c4d38c260c7bb46ff54605687ca8ea945e - No canonical-root, daemon, CloudKit runtime, public service, certificate, provisioning-profile, or physical-device state was changed.
Files changed
ios/Sources/ChatView.swiftios/Sources/MobileStores.swiftios/Tests/TyrellMobileTests.swiftios/project.ymlios/Info.plist
Changes
- Deduplicated chat summaries by canonical conversation ID while retaining the newest server revision.
- Added friendly direct-thread labels and explicit 1:1, Group, and Channel presentation.
- Exposed domain/project/ad-hoc trust provenance in conversation list and detail UI.
- Added explicit sending, master-acknowledged, and not-sent states; rejected sends preserve the draft.
- Corrected generated bundle metadata to Tyrell Mobile
0.1.0build2.
Commands and verification
- Generated the project with
xcodegen generate --spec ios/project.yml(exit 0). - Ran the full
TyrellMobileiPhone 17 Pro simulator suite viaxcodebuild ... test(19 tests, 0 failures,TEST SUCCEEDED). - Built generic arm64 iOS with signing disabled via
xcodebuild ... -destination generic/platform=iOS CODE_SIGNING_ALLOWED=NO build(BUILD SUCCEEDED). - Installed and launched bundle
com.eastcoastscience.Tyrellon simulator27044A08-F6E2-491E-8621-FBEFC4AF397B(both exit 0). - Verified the tailnet master status route returned HTTP 200 and unauthenticated chat bootstrap returned HTTP 401.
- Simulator screenshot:
/tmp/tyrell-mobile-final-20260828.png, SHA-256237b5baf46331b127e17d39def9020f21317ccf41bf10f612a2050cfdd3f2355.
Physical-device blocker
rdip17airandrdip17pwere both reported unavailable byxcrun devicectl list devices.- The existing Apple Development identity and
com.eastcoastscience.Tyrellprovisioning profile were found, but this worker runs under aBackgroundlaunchd bootstrap. The login Keychain reportsUser interaction is not allowed, and codesign fails witherrSecInternalComponentwhen it needs the private key. - Owner action: connect and unlock the intended iPhone with Developer Mode enabled, then build/install from Xcode or Terminal in the Aqua desktop session. Remote installation elsewhere requires a separately authorized TestFlight release.
Rollback
- Do not integrate commit
f3a500c4d38c260c7bb46ff54605687ca8ea945e, or revert that commit after integration. - Simulator cleanup is optional: uninstall bundle
com.eastcoastscience.Tyrellfrom simulator27044A08-F6E2-491E-8621-FBEFC4AF397B.
Outstanding
- Lead independent review and integration.
- Foreground codesign plus physical-device install/launch.
- Enter the tailnet endpoint, canonical participant identity, and existing master token through the app; the token remains write-only in device Keychain.