Skip to content

Releases: kstenerud/KSCrash

2.6.0-beta.1

20 Apr 15:38

Choose a tag to compare

2.6.0-beta.1 Pre-release
Pre-release

Note

Please review this page in the wiki for a deeper dive into all the changes.

Note

We're naming this v2.6.0 to be clear that we expect it to be 100% compatible, non-source breaking with v2.5.1. Please report any issues you may find.

What's Changed

  • Fix memory safety issues and buffer handling bugs by @naftaly in #723
  • Fix flaky tests by @naftaly in #727
  • Add performance benchmarks by @naftaly in #721
  • Fix memory monitor safety improvements by @naftaly in #725
  • Optimize KSBinaryImageCache and KSDynamicLinker performance by @naftaly in #722
  • Update CI runners from macos-13 to macos-14 by @naftaly in #728
  • Fix uninitialized g_stackCursor crash in background threads (#712) by @GLinnik21 in #717
  • Add Watchdog Monitor by @naftaly in #726
  • Fix symbolication regression in KSBinaryImageCache by @naftaly in #731
  • Remove Namespace Check Workflow by @naftaly in #734
  • Fix sanitizer compatibility and add sanitizer CI by @naftaly in #733
  • fix: watchdog monitor now collects threads by @naftaly in #730
  • Fix sanitizer issues and Mach port leak by @naftaly in #736
  • Add standard deviation column to benchmark results by @naftaly in #735
  • Fix benchmarks workflow for fork PRs by @naftaly in #738
  • Add CI workflow for Clang static analyzer by @naftaly in #744
  • Fix thread safety issues in memory tracking by @naftaly in #742
  • Fix memory leaks, optimize binary image cache, add leaks CI by @naftaly in #740
  • Use lock-free atomic container for userInfoJSON thread safety by @naftaly in #741
  • [RFC] Introducing Sampling Profiler by @naftaly in #732
  • Add Report Swift target for a type safe crash report structure by @naftaly in #729
  • Add cpu info to backtrace symbolication by @maxep in #737
  • Fix static analyzer warnings by @GLinnik21 in #749
  • Make leaks CI failable on real memory leaks by @GLinnik21 in #750
  • Fix undefined behavior issues detected by UBSan by @GLinnik21 in #751
  • Fix flaky testOtherThreadSymbolicate test by @naftaly in #755
  • __cxa_throw swapper upgrades by @naftaly in #753
  • Use ptrauth_strip for PAC handling instead of hardcoded mask by @naftaly in #756
  • Prepare Benchmarks For OnDevice Runs by @naftaly in #754
  • Convert KSCrashReportFixer to Objective-C and improve symbol resolution by @naftaly in #761
  • Fix crash handler deadlock when Watchdog monitor is enabled by @naftaly in #758
  • Add compact unwind and DWARF CFI support for stack unwinding by @naftaly in #757
  • Security improvements for OpenSSF Scorecard by @naftaly in #765
  • ci: bump the github-actions group with 4 updates by @dependabot[bot] in #766
  • Restore pre-profiler deployment targets by @naftaly in #773
  • Add visionOS 1.0 platform support to SPM by @naftaly in #775
  • ci: add Infer static analysis and fix PR comments for fork PRs by @naftaly in #769
  • Improve OOM handling and async-signal-safety by @naftaly in #768
  • Add backtrace truncation detection and KSCrash+Backtrace category by @naftaly in #767
  • Improve CI tooling and add namespace check workflow by @naftaly in #776
  • Add BrowserStack CI integration for benchmarks by @naftaly in #762
  • Fix ARM64 spurious frame after thread_start during stack unwinding by @naftaly in #764
  • Fix async-signal-safety crash in monitor disable path by @naftaly in #770
  • ci: bump the github-actions group with 3 updates by @dependabot[bot] in #779
  • Fix benchmarks workflow secret availability check by @naftaly in #780
  • Add monitor sidecar infrastructure and rewrite watchdog to pure C by @naftaly in #771
  • [EASY] Fix os_version reporting host macOS build on simulator by @naftaly in #782
  • Add MetricKit crash monitor plugin by @naftaly in #774
  • Add compact binary image reporting and inline object_uuid on frames by @naftaly in #777
  • Add last_exception_backtrace for exception crashes by @naftaly in #778
  • Add run sidecars for per-process-run sidecar data by @naftaly in #783
  • Convert system monitor to mmap'd run sidecar by @naftaly in #784
  • Refactor CLAUDE.md into .claude/rules/ for path-scoped loading by @GLinnik21 in #789
  • Convert AppState monitor to mmap'd Lifecycle run sidecar by @naftaly in #786
  • Correctness fixes, hang reporting config, and Report model improvements by @naftaly in #787
  • ci: bump the github-actions group with 2 updates by @dependabot[bot] in #791
  • Skip crash report for SIGTERM by @naftaly in #793
  • ci: add binary size analysis for PRs by @naftaly in #792
  • Add UserInfo monitor with reusable KSKeyValueStore by @naftaly in #788
  • Add passive Resource monitor by @naftaly in #790
  • Add ResourceTermination monitor for post-mortem termination detection by @naftaly in #794
  • Add task role tracking to Lifecycle monitor by @naftaly in #795
  • ci: bump jdx/mise-action from 3 to 4 in the github-actions group by @dependabot[bot] in #797
  • ci: report Infer results as a neutral check run by @naftaly in #800
  • Fix Zombie monitor hang and enable proper disable by @naftaly in #798
  • Fix test reliability and add Tuist Derived to gitignore by @naftaly in #799
  • Fix data race in KSReachabilityKSCrash initializer by @naftaly in #801
  • Termination monitor, RunContext shared layer, and integration tests by @naftaly in #796
  • Replace snprintf with async-signal-safe string conversion in crash-time code by @GLinnik21 in #804
  • Update nullability for several interfaces, add some missing designated initializer stuff too by @alanzeino in #711
  • Finalize recovered hang reports with live system data by @naftaly in #802
  • Add fork PR guards to CI workflows by @naftaly in #805
  • Refactor stitch pipeline to parse once, stitch all, encode once by @naftaly in #803
  • Fix mach.subcode always 0 due to 32-bit/64-bit struct mismatch by @naftaly in #811
  • Finalize non-fatal reports immediately by @naftaly in #806
  • ci: bump actions/github-script from 7 to 8 in the github-actions group by @dependabot[bot] in #807
  • Collapse category sections in benchmark report by @naftaly in #812
  • fix: zero mach code/subcode in watchdog fatal hang reports by @naftaly in #813
  • fix: add missing signal code to injected termination reports by @naftaly in #814
  • Track app transition state in hang reports, suppress startup hangs by @naftaly in #808
  • [2] Track app transition state in hang reports, suppress startup hangs by @naftaly in #817
  • Add API: ksbt_captureBacktraceFromSuspendedMachThread by @kstenerud in #816
  • Add missing none case to Swift TerminationReason enum by @naftaly in #818
  • Add async-signal-safety-revi...
Read more

2.5.1

27 Jan 15:53

Choose a tag to compare

What's Changed

Bug Fixes

  • Fix uninitialized g_stackCursor crash in background threads by @GLinnik21 in #717
  • Fix memory safety issues and buffer handling bugs by @naftaly in #723
  • Fix memory monitor safety improvements by @naftaly in #725
  • Fix thread safety issues in memory tracking by @naftaly in #742
  • Fix static analyzer warnings by @GLinnik21 in #749
  • Fix undefined behavior issues detected by UBSan by @GLinnik21 in #751
  • Fix flaky testOtherThreadSymbolicate test by @naftaly in #755
  • Fix unsigned integer underflow in imageContainingAddress by @naftaly in #763

Improvements

  • Add cpu info to backtrace symbolication by @maxep in #737

CI/Infrastructure

  • Update CI runners from macos-13 to macos-14 by @naftaly in #728
  • Add CI workflow for Clang static analyzer by @naftaly in #744

Full Changelog: 2.5.0...2.5.1

2.5.0

20 Nov 17:17

Choose a tag to compare

What's Changed

  • Fix outdated headerdoc reference in KSCrashInstallation by @alanzeino in #710
  • Enable module definition in KSCrash podspec by @maxep in #714
  • Fix watchOS Compilation Errors by @maxep in #715
  • Fix arm64e build by @maxep in #716

New Contributors

Full Changelog: 2.4.0...2.5.0

2.4.0

29 Sep 21:13

Choose a tag to compare

What's Changed

  • Make monitor API functions properly idempotent using atomics by @kstenerud in #661
  • Add binary architecture field to system info by @DariaKunoichi in #669
  • Add improved jailbreak detection logic by @DariaKunoichi in #666
  • Add clang_version, device free storage size and rosetta check fields to system info by @DariaKunoichi in #668
  • Convert KSCrashMonitor to use a lockless algorithm by @kstenerud in #662
  • Moved monitor context management into KSCrashMonitor. by @kstenerud in #674
  • Restore recrash support to the mach exception handler by @kstenerud in #675
  • Added a policy argument to all callbacks so that callback implementations can more intelligently decide what to do. by @kstenerud in #676
  • KSFileUtils won't compile standalone without stddef.h by @kstenerud in #685
  • [KSCRASH] Allow Cancelling Processing/Writting a Crash by @naftaly in #680
  • [KSCRASH] Add Observers to Memory Tracker by @naftaly in #681
  • [KSCRASH] Make CPP Monitor more precise by @naftaly in #682
  • [EASY] Add back start/stop for backwards compat by @naftaly in #686
  • Fix incorrectly defined KSCRASH_NAMESPACE_STRING by @kstenerud in #687
  • Pin Tuist version using Mise for consistent environments by @GLinnik21 in #688
  • Clean up pragma and example app warnings by @kstenerud in #689
  • Fix same self thread backtrace by @naftaly in #690
  • [2.x] Add backward compatibility for callback API changes by @GLinnik21 in #684
  • Modify KSCrashEventNotifyCallback to return a user-supplied policy by @kstenerud in #692
  • We should still attempt to record threads even if we can't suspend them. by @kstenerud in #693
  • Add GitHub Copilot code review instructions for API breaking changes by @GLinnik21 in #695
  • Expose an intermediate struct to the user rather than our internal struct by @kstenerud in #694
  • Always record the offending thread at least by @kstenerud in #696
  • Harmonize the callback names by @kstenerud in #697
  • Fix monitor disabling and uninstalling by @kstenerud in #698
  • Namespace any important strings, such as paths and thread names by @kstenerud in #699
  • Fix some latent warning issues by @kstenerud in #700
  • Fix error pointer checks by @alanzeino in #701
  • Namespacing example using SPM by @kstenerud in #704
  • Update the codebase for the next Xcode version. by @kstenerud in #706
  • Remove remaining namespace code and header search paths around the old demangler by @kstenerud in #707
  • Remove direct dependency between the signal and memory monitors by @kstenerud in #705

New Contributors

Full Changelog: 2.3.0...2.4.0

2.3.0

03 Aug 22:24

Choose a tag to compare

What's Changed

  • Fix Xcode 26 beta 1 warning about VLA folding by @GLinnik21 in #641
  • Remove cyclic dependency between the NSException monitor and the top-level KSCrash class by @kstenerud in #646
  • Add support for custom namespacing by @kstenerud in #647
  • Added missing Foundation.h header by @kstenerud in #648
  • Move KSThreadCache.h into the include directory of KSCrashRecording by @kstenerud in #649
  • Use latest-stable in unit-tests by @GLinnik21 in #650
  • Enable warnings-as-errors, and as many warnings as we can get away with by @kstenerud in #653
  • Add more class names to the namespacer that clang missed by @kstenerud in #652
  • Forward Mach exceptions to the next handler by @kstenerud in #651
  • Add thread run state string to report by @DariaKunoichi in #645
  • Binary Image Cleanup by @naftaly in #655
  • Make KSCrashMonitor.c solely responsible for event IDs by @kstenerud in #658
  • [EASY] fix off by one error in arm64.c by @naftaly in #660
  • Invert dependency from individual monitors to KSCrashMonitor.c, using DI instead. by @kstenerud in #659
  • Raise max captured thread count to 1000 by @DariaKunoichi in #664
  • Report Version Based Timestamp Mixup Fix by @naftaly in #663
  • Add script to toggle unsafe flags in Package.swift for release process by @GLinnik21 in #673

New Contributors

Full Changelog: 2.2.0...2.3.0

2.3.0-RC.1

02 Aug 22:28

Choose a tag to compare

2.3.0-RC.1 Pre-release
Pre-release

Note on this Release Candidate

This RC version was published due to a limitation in Swift Package Manager (SPM), which forbids the use of unsafeFlags in release builds. Until this is resolved, the package is distributed as a release candidate.

What's Changed

  • Fix Xcode 26 beta 1 warning about VLA folding by @GLinnik21 in #641
  • Remove cyclic dependency between the NSException monitor and the top-level KSCrash class by @kstenerud in #646
  • Add support for custom namespacing by @kstenerud in #647
  • Added missing Foundation.h header by @kstenerud in #648
  • Move KSThreadCache.h into the include directory of KSCrashRecording by @kstenerud in #649
  • Use latest-stable in unit-tests by @GLinnik21 in #650
  • Enable warnings-as-errors, and as many warnings as we can get away with by @kstenerud in #653
  • Add more class names to the namespacer that clang missed by @kstenerud in #652
  • Forward Mach exceptions to the next handler by @kstenerud in #651
  • Add thread run state string to report by @DariaKunoichi in #645
  • Binary Image Cleanup by @naftaly in #655
  • Make KSCrashMonitor.c solely responsible for event IDs by @kstenerud in #658
  • [EASY] fix off by one error in arm64.c by @naftaly in #660
  • Invert dependency from individual monitors to KSCrashMonitor.c, using DI instead. by @kstenerud in #659
  • Raise max captured thread count to 1000 by @DariaKunoichi in #664

New Contributors

Full Changelog: 2.2.0...2.3.0-rc.1

2.2.0

16 Jun 12:46

Choose a tag to compare

What's Changed

Full Changelog: 2.1.2...2.2.0

2.1.2

24 May 20:15

Choose a tag to compare

What's Changed

  • Update release workflow: Remove test functionality and add publish_only option by @GLinnik21 in #629
  • Fix data race in memory monitor by @naftaly in #631

Full Changelog: 2.1.1...2.1.2

2.1.1

08 May 17:49

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.1.0...2.1.1

2.1.0

30 Apr 09:39

Choose a tag to compare

What's Changed

  • Add Swift version setting to Tuist project configuration by @GLinnik21 in #611
  • Add os_unfair_lock for thread safety in KSCrashMonitor by @GLinnik21 in #610
  • Return properly typed reports from KSCrashReportFilterConcatenate by @tmolitor-stud-tu in #616
  • Use active delay instead of waiting for crash on macOS by @bamx23 in #618
  • Fix Ruby version specification in Gemfile by @GLinnik21 in #621
  • Add binary image caching with thread safety in KSDynamicLinker by @GLinnik21 in #614
  • fix config reportWrittenCallback by @tamwei in #622
  • Add tests for reportWrittenCallback functionality by @GLinnik21 in #623

New Contributors

Full Changelog: 2.0.0...2.1.0