What's Changed
🔧 Other Changes
- docs: reconcile published v0.29.1 changelog by Daniel Meppiel (@danielmeppiel) in #2847
- perf: reuse resolved context optimizer base path by Aryan Singh K. (@aryansk) in #2587
- perf: reuse dependency names across policy checks by Aryan Singh K. (@aryansk) in #2588
- test(lifecycle): guard shared diamond instruction survival (#2852) by Daniel Meppiel (@danielmeppiel) in #2858
- fix(cache): report incomplete cache cleaning (closes #2853) by Daniel Meppiel (@danielmeppiel) in #2864
- fix(cache): refresh HTTP cache recency on successful hits by Daniel Meppiel (@danielmeppiel) in #2859
- feat(onboarding): make Homebrew core the primary macOS install path by Daniel Meppiel (@danielmeppiel) in #2846
- fix(uninstall): retain ownership when package deletion fails by Daniel Meppiel (@danielmeppiel) in #2860
- fix(cache): retain recently reused Git checkouts during pruning by Daniel Meppiel (@danielmeppiel) in #2861
- fix(cache): reject negative prune ages (closes #2856) by Daniel Meppiel (@danielmeppiel) in #2862
- fix(prune): return failure when orphan deletion fails by Daniel Meppiel (@danielmeppiel) in #2863
- fix(installer): keep Unix installation unprivileged and owner-aware by Daniel Meppiel (@danielmeppiel) in #2844
- fix(cache): report incomplete prune outcomes by Daniel Meppiel (@danielmeppiel) in #2865
- fix(installer): verify Unix archive checksums before extraction by Daniel Meppiel (@danielmeppiel) in #2842
- fix(bootstrap): recover public release lookup after rejected credentials by Daniel Meppiel (@danielmeppiel) in #2843
- fix(tests): restore Windows cache recency CI coverage by Daniel Meppiel (@danielmeppiel) in #2869
- fix(ci): run CodeQL on merge-queue commits by Daniel Meppiel (@danielmeppiel) in #2870
- chore: release v0.30.0 by Daniel Meppiel (@danielmeppiel) in #2868
- fix(hashing): use explicit SHA-2 policy digests and synthetic fixture IDs by Daniel Meppiel (@danielmeppiel) in #2872
- fix(tests): prove global uninstall recovery after partial removal by Daniel Meppiel (@danielmeppiel) in #2873
Full Changelog: v0.29.1...v0.30.0