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
Swift 6 mode + off-main batch import (crash fix) + CI parity overhaul
Swift 6 language mode (SWIFT_VERSION 6.0, all targets):
- Pure data layers opted out of the default MainActor isolation with native
`nonisolated`: Constants enums, JSON blob helpers, Color hex math, the whole
Bible import parse layer (importers, rich-text/GBF/USFM helpers, value types).
- Fresh importer instance per import (the shared XML importer instances with
mutable parser state were a latent data race).
- SE-0371 `isolated deinit` for MainActor teardown (audio timer, screen
observers, command router tokens, video observers/security scope).
- VersionedSchema identifiers are `let`; test suites annotated @mainactor.
Batch Bible import crash (SIGABRT malloc_zone_error on Thread 3):
- New BackgroundImportActor (@Modelactor) — batch imports run entirely off the
main actor on its OWN serialized ModelContext; the view's context no longer
crosses thread hops mid-import.
- ImportService.importBible is nonisolated(nonsending) — runs on the caller's
isolation, saves per BOOK (chunked) inside autoreleasepool, progress hops to
the main actor via @mainactor@sendable handler.
- BatchImportSheet: re-entry guard + per-run status reset (fixes the glitched
reopened sheet); bibles route through the actor.
CI/CD parity + modernization:
- Runner macos-26 + Xcode 26.3 (17C529) — EXACT match with the dev Mac; the old
macos-15/Xcode 16.0 pair ignored the project's Swift-6-era settings.
- All actions on current majors (checkout v7, upload-artifact v7,
download-artifact v8, configure-pages v6, upload-pages-artifact v5,
deploy-pages v5, gh-release v3) — no more Node 20 deprecation warnings.
- Unit tests are a real gate (removed `|| true`; -only-testing unit suite).
- Uniform inside-out ad-hoc re-sign of Sparkle (XPCs, Autoupdate, Updater.app,
framework) + the app, preserving entitlements, then strict codesign verify —
fixes the DYLD "different Team IDs" launch crash on other Macs.
- Pages config cleaned (dangling deleted-branch source removed).
0 commit comments