Skip to content

v2.1.2

Latest

Choose a tag to compare

@github-actions github-actions released this 15 Aug 07:20
· 14 commits to main since this release

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 in memmove,
    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
    collected setFoo as the selector to remove, but a setter takes an argument,
    so the selector the runtime registers is setFoo:. The two never matched and
    no setter had ever been stripped. The mistake ran both ways: an unrelated
    zero-argument method named setFoo would 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-collections 1.5.1 → 1.6.0,
    swift-fileio 0.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.