Releases: kstenerud/KSCrash
Releases · kstenerud/KSCrash
2.6.0-beta.1
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
ReportSwift 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
nonecase to Swift TerminationReason enum by @naftaly in #818 - Add async-signal-safety-revi...
2.5.1
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
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
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
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
- @alanzeino made their first contribution in #701
Full Changelog: 2.3.0...2.4.0
2.3.0
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
- @DariaKunoichi made their first contribution in #645
Full Changelog: 2.2.0...2.3.0
2.3.0-RC.1
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
- @DariaKunoichi made their first contribution in #645
Full Changelog: 2.2.0...2.3.0-rc.1
2.2.0
2.1.2
What's Changed
- Update release workflow: Remove test functionality and add
publish_onlyoption 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
What's Changed
- Fix release workflow and add dry-run testing mode by @GLinnik21 in #625
- Explicitly link against zlib by @adincebic in #627
New Contributors
- @adincebic made their first contribution in #627
Full Changelog: 2.1.0...2.1.1
2.1.0
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