fix: Update version strings and metadata for v1.5.0 release#34
fix: Update version strings and metadata for v1.5.0 release#34ProduktEntdecker merged 1 commit intomainfrom
Conversation
Replace all hardcoded "1.3.0" version strings with dynamic Bundle.main.infoDictionary lookups to stay in sync with Info.plist. P1 fixes: - AnalyticsService: version in payloads and User-Agent headers - SharingManager: version in analytics payloads and User-Agent - TouchBarManager: version in restart log output - ContentView: remove hardcoded "Jan 2026" from version footer P2 fixes: - OnboardingView: remove version number from welcome title - ReviewRequestManager: replace placeholder App Store URL with Gumroad product page, remove non-existent /review fallback - Info.plist: update copyright to 2024-2026 - Info.plist: set LSUIElement to false (matches .regular policy) Closes #33 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
📝 WalkthroughWalkthroughThis PR updates version strings, metadata, and UI text for the v1.5.0 release. Changes include replacing hardcoded version "1.3.0" with dynamic CFBundleShortVersionString across analytics and logging, removing hardcoded dates from UI, updating copyright year range, adjusting review fallback redirects, and refreshing onboarding text. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
App/Sources/AnalyticsService.swift (1)
97-97: Consider extracting repeated version lookup to a computed property.The
Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.5.0"pattern appears three times in this file (lines 73, 97, 135). Extracting to a private computed property would improve maintainability.Suggested refactor
class AnalyticsService: ObservableObject { + private var appVersion: String { + Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.5.0" + } + `@Published` var totalFixesGlobal: Int = 0Then use
appVersionin place of the repeated lookups.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@App/Sources/AnalyticsService.swift` at line 97, Extract the repeated Bundle.main.infoDictionary lookup into a single private computed property (e.g., private var appVersion: String { Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.5.0" }) inside the AnalyticsService type, then replace the three inline occurrences (the User-Agent header construction in request.setValue(...) and the other two spots) with appVersion so the default fallback remains "1.5.0" and all references use the single source of truth.App/Sources/ReviewRequestManager.swift (1)
2-2: Remove unused StoreKit import.The
StoreKitimport at line 2 is no longer needed. With the switch to the Gumroad direct link approach usingNSWorkspace.shared.open(url), no StoreKit APIs are invoked anywhere in the file. The import can be safely removed.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@App/Sources/ReviewRequestManager.swift` at line 2, Remove the unused StoreKit import: delete the solitary "import StoreKit" statement so the file no longer imports StoreKit; verify that ReviewRequestManager uses the Gumroad direct-link flow (NSWorkspace.shared.open(url)) and that no StoreKit symbols are referenced anywhere in the file, then rebuild to confirm no unused-import or unresolved-symbol warnings remain.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@App/Sources/ContentView.swift`:
- Line 175: The displayed app version fallback in ContentView's
Text("v\(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ??
"1.0")") is inconsistent with other files; update the fallback string from "1.0"
to "1.5.0" so ContentView matches AnalyticsService, SharingManager, and
TouchBarManager and consistently shows "v{version}" when
CFBundleShortVersionString is missing.
---
Nitpick comments:
In `@App/Sources/AnalyticsService.swift`:
- Line 97: Extract the repeated Bundle.main.infoDictionary lookup into a single
private computed property (e.g., private var appVersion: String {
Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.5.0"
}) inside the AnalyticsService type, then replace the three inline occurrences
(the User-Agent header construction in request.setValue(...) and the other two
spots) with appVersion so the default fallback remains "1.5.0" and all
references use the single source of truth.
In `@App/Sources/ReviewRequestManager.swift`:
- Line 2: Remove the unused StoreKit import: delete the solitary "import
StoreKit" statement so the file no longer imports StoreKit; verify that
ReviewRequestManager uses the Gumroad direct-link flow
(NSWorkspace.shared.open(url)) and that no StoreKit symbols are referenced
anywhere in the file, then rebuild to confirm no unused-import or
unresolved-symbol warnings remain.
ℹ️ Review info
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (7)
App/Resources/Info.plistApp/Sources/AnalyticsService.swiftApp/Sources/ContentView.swiftApp/Sources/OnboardingView.swiftApp/Sources/ReviewRequestManager.swiftApp/Sources/SharingManager.swiftApp/Sources/TouchBarManager.swift
|
|
||
| // Version footer | ||
| Text("v\(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.0") • Jan 2026") | ||
| Text("v\(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.0")") |
There was a problem hiding this comment.
Inconsistent fallback version string.
The fallback value "1.0" differs from other files in this PR which use "1.5.0" (AnalyticsService, SharingManager, TouchBarManager). Consider aligning for consistency.
Suggested fix
- Text("v\(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.0")")
+ Text("v\(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.5.0")")📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Text("v\(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.0")") | |
| Text("v\(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.5.0")") |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@App/Sources/ContentView.swift` at line 175, The displayed app version
fallback in ContentView's
Text("v\(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ??
"1.0")") is inconsistent with other files; update the fallback string from "1.0"
to "1.5.0" so ContentView matches AnalyticsService, SharingManager, and
TouchBarManager and consistently shows "v{version}" when
CFBundleShortVersionString is missing.
Summary
Bundle.main.infoDictionarylookupsChanges
P1 — Version String Fixes
P2 — Metadata Fixes
Test plan
swift build -c releasepassesswift test— 168/168 tests pass, 0 failuresCloses #33
🤖 Generated with Claude Code
Summary by CodeRabbit