You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ChangelogParser for parsing Keep a Changelog format markdown and filtering entries between versions.
ChangelogParser.entriesSince(build:upTo:from:) — filter changelog entries by build number range, extracted from +N semver metadata in entry version strings; handles RC-to-RC upgrades where the marketing version doesn't change.
Environment.lastLaunchedVersion exposed publicly for version upgrade detection.
Environment.currentBuild — the current app build number read from CFBundleVersion at launch.
Environment.lastLaunchedBuild — the build number of the previous run, persisted in UserDefaults; used by ChangelogPresenter for What's New detection.
Changed
AppAcknowledgements: replaced customAcknowledgements: String? with specialThanks: String? and disclaimer: String?, each rendered as its own labelled section.
Fixed
ChangelogPresenter.whatsNewEntries() now compares build numbers (currentBuild vs lastLaunchedBuild) instead of marketing version strings; RC builds with different build numbers correctly trigger the What's New display even when the marketing version hasn't changed.
WhatsNewView: fixed macOS build error — replaced unavailable ToolbarItem(placement: .topBarTrailing) with .automatic and guarded .navigationBarTitleDisplayMode behind #if !os(macOS).
Sentry adapter for CrashReporter and BugReporter protocols with user feedback form.
OSLog adapter for Logger protocol using os.Logger and OSLogStore.
CrashReporter protocol: supportsLogs and supportsBreadcrumbs capability flags.
CrashReporter protocol: recordBreadcrumb(message:category:level:) for contextual breadcrumb trail.
OSLog adapter forwards logs to crash reporter preferring structured logs over breadcrumbs.
Sentry adapter attaches app logs to user feedback submissions.
Split PippinAdapters into individual SPM library targets for selective linking (e.g. PippinAdapters-Sentry, PippinAdapters-OSLog).
A launch argument to help signal forcing dark mode.
Removed
Removed DefaultEnvironment.swift convenience initializer (referenced adapters across multiple targets).
Fixed
InfoViewController: fixed rendering corruption when company link has no image (nil image created zero-size NSTextAttachment).
LaunchArguments that resolved to different string values due to bundle names when linked statically.