feat(swift-ios): embed an exact build changelog with links - #5969
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit cb69786. Configure here.
ApprovabilityVerdict: Needs human review This PR introduces a new feature with new user-facing UI (build changelog view in Settings), new data models, new build scripts, and workflow changes. While well-structured and tested, new features with this scope warrant human review. You can customize Macroscope's approvability policy. Learn more. |
|
Final dependency-safe changelog is preserved at Unique behavior reuses #5790 formatting; accepts notes only when embedded version/build match the installed app; shows explicit Unavailable otherwise; sanitizes credentials/jargon; bounds metadata; keeps Release free of local Git history; and composes generation after the cleanup trap while preserving monotonic validation/debug metadata/build order. Verification: changelog/install composition + monotonic + debug shell suites pass; focused Settings 6/6; Debug run; Release build with empty changelog; full native 103 XCTest + 236 Swift Testing, one expected skip, zero failures; Conflict classification: feature complementary, code/history conflicting because old #5969 duplicates version rows/formatter and overlaps Info.plist/install ownership. Landing order: #5790 → #5970 → #5972 → unique #5789 |


Summary
Embeds a bounded offline changelog for Debug device installs and shows exact commits in Settings with commit and detected PR links. Generation is compact, portable across remotes, best-effort without Git history, and independent of the older version-settings PR.
Verification
Scope
Targets the active native SwiftUI owner branch (#5178).
Note
Embed a git-based build changelog in the iOS app's Settings screen
T3_BUILD_CHANGELOGbuild setting for Debug device builds.BuildChangelogmodel decodes the base64 JSON fromInfo.plistat runtime, exposing short commit hashes and deduplicated entry summaries.BuildChangelogViewrenders the latest change, earlier changes in a timeline, and commit/PR links; empty states are shown when no changelog is embedded or no diffs exist between revisions.Macroscope summarized 1e1f4a9.
Note
Low Risk
Settings-only UI plus optional Debug build metadata; no auth, networking, or release-path behavior changes.
Overview
Adds an offline build changelog for native SwiftUI Debug device installs: commits since a configurable base ref are embedded at build time and surfaced in Settings → About.
Build pipeline:
generate-build-changelog.swiftwalksgit logbetweenT3_SWIFT_CHANGELOG_BASE_REF(defaultupstream/t3code/rebuild-mobile-app-swift) andHEAD, parses PR numbers from titles, caps payload size (~48 KiB), and writes JSON.install-device.shruns this only for Debug, base64-encodes the result intoT3_BUILD_CHANGELOG, and passes it throughInfo.plistasT3BuildChangelog.In-app:
BuildChangelogdecodes the embedded payload; Build changelog in About shows version/build viaSettingsAboutMetadata, highlights the latest commit, lists earlier changes on a timeline, and links to commits/PRs when a repo URL is available. Empty or missing changelog states are handled explicitly.Tests cover version labeling, changelog decode, and summary deduplication; README documents
T3_SWIFT_CHANGELOG_BASE_REF.Reviewed by Cursor Bugbot for commit 1e1f4a9. Bugbot is set up for automated code reviews on this repo. Configure here.