Releases: btctcn/swift-isolation-map
Releases · btctcn/swift-isolation-map
Release list
0.3.0
Highlights
- Real Swift 6 escape-hatch detection with a genuine SE-0337 severity downgrade (#118, #119, #153):
@unchecked Sendable,nonisolated(unsafe), and@preconcurrency(declaration/conformance/import) are now surfaced as their ownescapeHatchesfindings, and a real@preconcurrencysoftening — on a callee's own declaration, up its class hierarchy, or via a@preconcurrency import— downgrades that edge'sriskfor real (structuralRisk/severityRationalekeep the "why" traceable)..uncheckedSendable's own mutable-stored-property detection is real too, walking a type's members and superclass chain. --platform <name>flag (#147) for a modern multiplatform Xcode scheme offering several simultaneously-valid Simulator destinations (iOS + visionOS on one scheme, confirmed against a real app); compiler-argument resolution for Xcode projects generalized beyond iOS Simulator to the other three real Simulator SDK families — tvOS/watchOS/visionOS (#141), verified against four independent real corpora.- Real
#if <name>custom build-condition evaluation (#134), replacing a hardcodedtrue; a real#if targetEnvironment(macCatalyst)misclassification fixed (#146). - Total
sourcekitdunavailability is now a hard failure instead of a silent, incomplete report (#143); SwiftPM compiler-argument resolution's own run-to-run non-determinism fixed with a real-file-count-scaled retry (#149). - Several further real declaration/USR-matching and stderr-noise correctness fixes (#133, #136, #138, #144, #145).
Full changelog
0.2.1
Added
--sort=file|severityoutput flag: orders edges inmermaid/dot/jsonoutput bylocation.file(then line) or by risk level (high first). Purely presentational, like--severity-- never changes which edges are included or the exit code.
Full diff: 0.2.0...0.2.1
0.2.0
Highlights
swift-builddirect-API compiler-argument resolution promoted to the default path for Xcode projects (#108) — faster and more correct than thexcodebuild -verbosepath it replaces, byte-for-byte edge-parity verified against two real 2000+-file corpora. The oldxcodebuild-based path stays in the tree as an unreachable-from-the-CLI legacy fallback.- Closure-level isolation attribution completed end to end: a real
@globalActordeclared in a compiled dependency is now recognized (#40), plus the full de-isolating mirror direction —Task.detached, non-mainDispatchQueues,@concurrent(#41). Both real-corpus-verified with zero regressions to the existing rules. - A real declaration-extraction leak fixed (#109): local
let/var/nestedfuncs inside a function or closure body were being misattributed as phantom members of the enclosing type — 22% of all declarations on one real ~2200-file corpus. - WordPress-iOS/Project-Iris honest-vs-flagged edge-asymmetry root-caused and fixed (#107).
- Dozens of further real declaration/USR-matching correctness fixes across Objective-C/Swift interop edge cases (bridged extern constants, protocol witnesses, subscripts, multi-target declaration aliasing, and more), plus index-store scoping and DerivedData isolation hardening for shared/multi-run environments.
Full changelog
0.1.0
First tagged release. No packaged distribution yet — build from source (see README Quick start).
What's in v0.1:
- Project/scheme resolution (
.xcodeproj,.xcworkspace,Package.swift) - Index-store discovery and staleness detection
- A hybrid
libIndexStore+SwiftSyntaxisolation-inference engine - An external-isolation oracle for compiled dependencies (CocoaPods, XCFrameworks, SDK frameworks) — bulk
symbolgraph-extract, with a livesourcekitdfallback mermaid/dot/jsonoutput- Automatic startup prerequisite checks with clear diagnostics
Not yet built: diff subcommand, GitHub Action, migration-debt map, packaged distribution (v0.2, see README Roadmap).