Skip to content

feat(ios): show app and environment versions - #5790

Open
saphid wants to merge 1 commit into
pingdotgg:t3code/rebuild-mobile-app-swiftfrom
saphid:saphid/swiftui-version-settings
Open

feat(ios): show app and environment versions#5790
saphid wants to merge 1 commit into
pingdotgg:t3code/rebuild-mobile-app-swiftfrom
saphid:saphid/swiftui-version-settings

Conversation

@saphid

@saphid saphid commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

What changed

  • Shows the SwiftUI app marketing version and build number in Settings → About.
  • Shows the active environment's already-advertised server version, with Not connected and Unknown fallbacks.
  • Carries one already-persisted descriptor field into the existing FeatureEnvironment snapshot.
  • Adds focused formatting/state coverage.

This is the narrow display-only version of the idea. It does not implement source comparison or changelog links, refresh descriptors, add network or persistence lifecycles, change Info.plist, or modify install scripts. It should not be treated as closing a broader source-comparison proposal without maintainer agreement.

Base: pingdotgg/t3code:t3code/rebuild-mobile-app-swift at e55c7ffd1.
Reviewed head: 106e970770f2c875c32ddc02d148f37ae984591d.

Why

The two versions make client/server mismatch reports diagnosable from one screen using data the app already has.

UI evidence

Exact rebased head, paired to a disposable loopback environment:

Settings app and environment versions

The screen shows app version 0.1.0 (19) and the active environment descriptor version.

Verification

  • T3CodeTests/SettingsVersionMetadataTests: 2 focused tests passed.
  • Full native gate: 220 tests in 28 suites passed.
  • Exact-head integrated signed Debug build/install: Settings displayed 0.1.0 (19) and the paired environment version.
  • git diff --check: passed; rebase preserved the feature patch exactly.
  • GPT-5.6 Sol high: no actionable findings; judged minimally scoped for the stated display goal.
  • Direct Claude Opus 5 high attempt exited 1 with HTTP 429 before review; no Claude findings are claimed.
  • Both historical MacroScope threads apply to removed descriptor-refresh code and are resolved. Current-head Check, Test, SwiftUI native, mobile static-analysis, release-smoke, MacroScope correctness/approvability, CodeRabbit, and Cursor checks pass.

Checklist

  • Small and focused
  • Explained the deliberately narrow scope
  • Exact-head UI screenshot attached
  • Focused, full native, and integrated simulator verification
  • Current rebased-head CI/MacroScope complete
  • Maintainer scope alignment / human review

Built with GPT-5.6 Sol in the Codex harness.


Note

Low Risk
Display-only UI and snapshot plumbing with no auth, networking, or persistence lifecycle changes.

Overview
Adds App version and Environment version rows under Settings → About so client/server mismatch can be diagnosed from one screen.

App version comes from bundle marketing version and build via new SettingsAboutMetadata helpers (with ? (?) and unreplaced Xcode placeholders treated as unknown). Environment version uses the active environment’s serverVersion on the feature snapshot, shown only when connection state is connected; otherwise Not connected, or Unknown when connected but no version is available.

ServerConfigSnapshot now optionally carries environment (including serverVersion) through decode/encode and partial config updates; mapEnvironment resolves version from cached server config with fallback to the paired environment descriptor. FeatureEnvironment gains optional serverVersion. Tests cover snapshot decoding, legacy fallback, and label formatting.

Reviewed by Cursor Bugbot for commit dfbd649. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Show app and environment version in iOS Settings About section

  • Adds two new rows to the Settings About section: "App version" (formatted as version (build)) and "Environment version" (derived from server config or shows "Not connected"/"Unknown").
  • Introduces SettingsAboutMetadata with formatting helpers that normalize version strings and handle missing or placeholder values like $(...).
  • Extends ServerConfigSnapshot with an optional environment: EnvironmentDescriptor? field and a serverVersion(fallingBackTo:) helper to resolve the version from the server payload or a paired descriptor fallback.
  • Propagates serverVersion through FeatureEnvironment and ensures config event handlers in NativeFeatureClient carry the environment descriptor forward on .providerStatuses and .settingsUpdated events.

Macroscope summarized dfbd649.

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: dbefac09-1b67-4c8d-89c1-ab183cefba03

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 9, 2026
Comment thread apps/swift-ios/App/NativeFeatureClient.swift Outdated
Comment thread apps/swift-ios/App/NativeFeatureClient.swift
@saphid
saphid force-pushed the saphid/swiftui-version-settings branch from 1a884f1 to 96b9e47 Compare August 9, 2026 11:50
@github-actions github-actions Bot added size:M 30-99 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Aug 9, 2026
@saphid
saphid force-pushed the saphid/swiftui-version-settings branch from 96b9e47 to 106e970 Compare August 10, 2026 01:20
@saphid
saphid marked this pull request as ready for review August 10, 2026 01:26
@macroscopeapp

macroscopeapp Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved dfbd649

This PR adds display-only version information (app version, environment version) to the settings screen. Changes are additive: new formatting helper, optional model fields, and UI rows. No behavior changes - data is only displayed, not used for gating. Includes comprehensive tests.

You can customize Macroscope's approvability policy. Learn more.

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Aug 10, 2026
@saphid

saphid commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

@t3dotgg Ready for your review against the current SwiftUI branch. Final head 106e970; focused/full native and integrated evidence are in the PR body. Current-head CI and MacroScope are green, and all review threads are resolved.

@t3dotgg
t3dotgg force-pushed the t3code/rebuild-mobile-app-swift branch from 4cb3307 to 497f54f Compare August 10, 2026 03:58
@saphid

saphid commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

Rebuilt this feature as one clean commit on the current Theo SwiftUI base. It now shows separate app and environment version rows, prefers the live server-config version over stale pairing metadata, preserves that value across partial config updates, and leaves one shared formatter for the changelog PR to reuse. Verification: 5 focused tests and all 227 native tests passed; final direct Claude Opus 5 high review exited 0 with no actionable findings. GitHub CI is rerunning on the refreshed head.

@saphid
saphid force-pushed the saphid/swiftui-version-settings branch from 106e970 to dfbd649 Compare August 10, 2026 11:33
@macroscopeapp
macroscopeapp Bot dismissed their stale review August 10, 2026 11:33

Dismissing prior approval to re-evaluate dfbd649

@github-actions github-actions Bot added size:L 100-499 changed lines (additions + deletions). and removed size:M 30-99 changed lines (additions + deletions). labels Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant