v1.8.5

July 24, 2026

Hotfix release: stops the launch-time crash introduced in 1.8.4 (EXC_BREAKPOINT from libdispatch: trying to lock recursively) by guarding the AppSettingsCache initialization against the lazy-static dispatch_once re-entry that happens when LoggerService warms up during first-launch SwiftData setup.

Highlights

  • Launch crash fix: AppSettingsCache now mirrors the existing LoggerService.initDepth re-entrancy guard. Reads return their declared default and writes drop while loadFromSwiftData() is running, so the cycle LocalizationManager → AppSettingsCache → SwiftDataContainer → LoggerService → LogManager → AppSettingsCache can no longer re-enter the same dispatch_once token. Affects every build configuration (Debug and Release).

Detailed Changes

  • Add AppSettingsCache.initDepth bookkeeping and gate every public get*/set*/remove accessor on it
  • Bump initDepth inside ensureLoaded() while loadFromSwiftData() runs, so transitive calls back into AppSettingsCache.shared during the launch-time init chain no-op
  • Bump marketing version to 1.8.5 and build number to 28 across project.yml, both Info.plists, and docs/_config.yml