Repository navigation
v2.1.2
A two-bug hotfix for v2.1.1, one of them a hard crash reported from an arm64e
host.
Bug fixes
-
Inspecting an injected arm64e app no longer crashes. On arm64e the pointer
to a Swift type's value witness table carries pointer-authentication bits.
Reading an enum's runtime layout dereferenced that pointer without stripping
them first, which faults every time — the reported crash landed inmemmove,
copying the witness table's 88 bytes from a signed address. Apple's own apps
ship as arm64e (the report came from App Store.app), so this was reachable
from ordinary use: inject, generate an interface with Print Enum Layout on,
crash. The option is off by default in the app, but on in the preset the MCP
server uses, so LLM clients reached it without opting in. Fixed upstream in
MachOSwiftSection 0.15.2. -
Strip synthesized methods now strips setters, not just getters. The option
collectedsetFooas the selector to remove, but a setter takes an argument,
so the selector the runtime registers issetFoo:. The two never matched and
no setter had ever been stripped. The mistake ran both ways: an unrelated
zero-argument method namedsetFoowould have been stripped in the accessor's
place. Both directions close with the colon, so turning the option on now
removes visibly more from a class than it did before.
Dependency updates
- MachOSwiftSection
0.14.1→0.15.2— the arm64e fix above, plus the
packaging split that moved the shared MachOKit groundwork into
MachOKitExtensions and the comment-template modules into SwiftOutputTransformer. - MachOObjCSection
0.7.103→0.8.104— carries the same synthesized-setter
fix on the upstream side of the ObjC pipeline. - MachOKit
0.51.101→0.52.101— ObjC header info now resolves against the
right subcache when reading a split dyld shared cache. - MachOKitExtensions
0.1.1, new as a standalone package — bind resolution in
legacy binaries with no chained fixups, and dyld cache image matches that are
ranked rather than first-hit. - swift-semantic-string
0.1.6→0.3.0, swift-collections1.5.1→1.6.0,
swift-fileio0.13.0→0.14.0.
Upgrade notes
- From v2.1.1 — no migration steps, and no helper reinstall. The privileged
helper's protocol version is unchanged, so the daemon v2.1.x installed keeps
running. - From v2.0.x — everything in the
v2.1.0 release notes
applies, including the one-time helper reinstall on first launch.