版本发布 8
## What's Changed * test(daemon): pin the daemon declaration into the Windows env block (#1959) by @zackees in https://github.com/zackees/soldr/pull/1971 * fix(diag): name STATUS_DLL_INIT_FAILED as a host condition, not a build error (#1974) by @zackees in https://github.com/zackees/soldr/pull/1975 * feat(cli): add `soldr --jobs N` (#1761) by @zackees in https://github.com/zackees/soldr/pull/1973 * ci: enforce the line ceiling as a ratchet (#1966) by @zackees in https://github.com/zackees/soldr/pull/1967 * fix(test): stop the pyo3 root test needing crates.io by @zackees in https://github.com/zackees/soldr/pull/1976 * perf(ci): stop CI queueing behind itself by @zackees in https://github.com/zackees/soldr/pull/1977 * feat(daemon): give lifecycle records typed attribution (#1808 WS3) by @zackees in https://github.com/zackees/soldr/pull/1970 * perf(ci): delete MinGW validation; drop --release from CI jobs that ship nothing by @zackees in https://github.com/zackees/soldr/pull/1982 * fix(cache): say when a build error names soldr's own cache file (#1969) by @zackees in https://github.com/zackees/soldr/pull/1980 * perf(ci): stop running the 39-minute Docker acceptance on every merge (#1985) by @zackees in https://github.com/zackees/soldr/pull/1986 * feat(daemon): attribute lifecycle displacement to its requester (#1808 WS3) by @zackees in https://github.com/zackees/soldr/pull/1984 * feat(doctor): detect an unmanaged binary shadowing the installed soldr (#1979) by @zackees in https://github.com/zackees/soldr/pull/1983 * ci: keep --release off jobs that ship nothing (#1981 Action 3) by @zackees in https://github.com/zackees/soldr/pull/1991 * perf(ci): stop allocating a macOS runner twice per PR (#1978 item 1) by @zackees in https://github.com/zackees/soldr/pull/1988 * fix(daemon): name the process holding the soldr root (#1987) by @zackees in https://github.com/zackees/soldr/pull/1990 * fix(diag): stop asserting handle exhaustion for STATUS_DLL_INIT_FAILED (#1974) by @zackees in https://github.com/zackees/soldr/pull/1989 * fix(daemon): stand down when the daemon's own image is deleted (#1987) by @zackees in https://github.com/zackees/soldr/pull/1993 * test(env): fix the llvm.rs env race and widen the lint past soldr-cli (#1994) by @zackees in https://github.com/zackees/soldr/pull/1997 * fix(linker): stop injecting rust-lld into proc-macro links on MSVC (#1992) by @zackees in https://github.com/zackees/soldr/pull/1995 * fix(daemon): say when the daemon is spawned from an unrelocated image (#1987) by @zackees in https://github.com/zackees/soldr/pull/1998 * fix(doctor): let an affected machine repair its shadowing shim (#1979) by @zackees in https://github.com/zackees/soldr/pull/2000 * fix(test): stop a watchdog timeout reporting as memory corruption (#1999) by @zackees in https://github.com/zackees/soldr/pull/2001 * perf(ci): build the baseline bootstrap soldr once, not once per libc (#1978 item 5) by @zackees in https://github.com/zackees/soldr/pull/2002 * fix(pep517): carry the diagnosis across the exception boundary (#1999) by @zackees in https://github.com/zackees/soldr/pull/2003 * fix(linker): say the fast linker was cleared when the retry fails too (#1992) by @zackees in https://github.com/zackees/soldr/pull/2005 * test(pep517): assert the fast-dev rule, not a manifest-dependent snapshot (#2004) by @zackees in https://github.com/zackees/soldr/pull/2007 * fix(wrapper): survive the scratch root vanishing mid-publish (#2006) by @zackees in https://github.com/zackees/soldr/pull/2009 * ci: check job timeouts in every workflow, not just ci.yml (#1978 item 8) by @zackees in https://github.com/zackees/soldr/pull/2010 * fix(test): give the stdin tests their own scratch root (#2006) by @zackees in https://github.com/zackees/soldr/pull/2012 * test: repair the three tests that only fail where nobody looks (#2008) by @zackees in https://github.com/zackees/soldr/pull/2011 * ci: run the Python test suite on every PR (#2013) by @zackees in https://github.com/zackees/soldr/pull/2015 * feat(daemon): re-exec from the runtime root before taking the lock (#1987) by @zackees in https://github.com/zackees/soldr/pull/2014 * chore(vendor): bump zccache pin to 601ae290 by @zackees in https://github.com/zackees/soldr/pull/2017 * fix(daemon): re-exec on the foreground path too (#2016) by @zackees in https://github.com/zackees/soldr/pull/2018 * feat(diag): repeat an earlier warning at the failure it explains (#1999) by @zackees in https://github.com/zackees/soldr/pull/2019 * fix(daemon): record compiles the daemon ran but never delivered (#1857) by @zackees in https://github.com/zackees/soldr/pull/2020 * feat(jobs): default the compile limit from real CPU topology (#1761) by @zackees in https://github.com/zackees/soldr/pull/2022 * fix(cli): never exit non-zero having explained nothing (#2024) by @zackees in https://github.com/zackees/soldr/pull/2025 * fix(jobs): tell the user when the running daemon ignores their SOLDR_JOBS (#2023) by @zackees in https://github.com/zackees/soldr/pull/2026 * feat(daemon): attribute shutdown IPC peers (#1808) by @zackees in https://github.com/zackees/soldr/pull/2028 * perf(ci): make the 40-minute cacheability step diagnosable (#1978 item 4) by @zackees in https://github.com/zackees/soldr/pull/2027 * feat(doctor): report every timeout and say when an override was ignored (#1838) by @zackees in https://github.com/zackees/soldr/pull/2029 * fix(cli): run the CLI on a sized stack; add --timestamp-lines (#1802) by @zackees in https://github.com/zackees/soldr/pull/2030 * feat(cross): unify blessed target lifecycle by @zackees in https://github.com/zackees/soldr/pull/2034 * chore(release): bump soldr to 0.8.29 by @zackees in https://github.com/zackees/soldr/pull/2035 **Full Changelog**: https://github.com/zackees/soldr/compare/v0.8.28...v0.8.29
## What's Changed * fix(daemon): serialize state.redb opens to close LinkZccache race (#608) by @zackees in https://github.com/zackees/soldr/pull/616 * release(0.7.50): cover TargetRegistry under daemon redb open lock by @zackees in https://github.com/zackees/soldr/pull/618 **Full Changelog**: https://github.com/zackees/soldr/compare/v0.7.49...v0.7.50
## What's Changed * feat(load): wire --auto-defender-exclude to Add-MpPreference (#596) by @zackees in https://github.com/zackees/soldr/pull/611 * chore(lint): clippy.toml denies new bincode usage outside legacy fallback by @zackees in https://github.com/zackees/soldr/pull/610 * feat(cook): wire [cook] auto-GC eviction pass (#589) by @zackees in https://github.com/zackees/soldr/pull/612 * feat(gc): host-volume disk watchdog + soldr gc target reclamation (#574) by @zackees in https://github.com/zackees/soldr/pull/613 * feat(load): parallel per-file cache extraction + --profile-extract (#575) by @zackees in https://github.com/zackees/soldr/pull/614 * feat(known_tools): register cargo-binstall, cargo-machete, just, bacon, typos (#598) by @zackees in https://github.com/zackees/soldr/pull/615 * chore(release): bump soldr 0.7.48 -> 0.7.49 by @zackees in https://github.com/zackees/soldr/pull/617 **Full Changelog**: https://github.com/zackees/soldr/compare/v0.7.48...v0.7.49
## What's Changed * fix(linker): skip lld injection on macOS (#509) by @zackees in https://github.com/zackees/soldr/pull/511 * chore(release): soldr 0.7.34 by @zackees in https://github.com/zackees/soldr/pull/512 **Full Changelog**: https://github.com/zackees/soldr/compare/v0.7.33...v0.7.34
## What's Changed * refactor(main): extract clap derives into cli_args module by @zackees in https://github.com/zackees/soldr/pull/499 * refactor(trampoline): extract layout/path resolution into submodule by @zackees in https://github.com/zackees/soldr/pull/501 * refactor(prune_target): extract tests into companion file by @zackees in https://github.com/zackees/soldr/pull/500 * refactor(rust_plan): extract warm-restore + env resolvers into submodules by @zackees in https://github.com/zackees/soldr/pull/502 * test(toolchain): muscle-memory drop-in rustup passthrough tests (#331) by @zackees in https://github.com/zackees/soldr/pull/504 * feat(defender): first-class soldr defender-exclusions {check,add,remove} (#355) by @zackees in https://github.com/zackees/soldr/pull/505 * feat(gc): cargo_git_checkouts walker + --git-checkouts purge (#323 slice 3) by @zackees in https://github.com/zackees/soldr/pull/506 * feat(shim): transient child-process shims for soldr external tools (#493) by @zackees in https://github.com/zackees/soldr/pull/507 * fix(rust_plan): skip restore on cook-prepopulated target/ (#480) by @zackees in https://github.com/zackees/soldr/pull/508 * chore(release): soldr 0.7.33 — zccache 1.11.0 by @zackees in https://github.com/zackees/soldr/pull/510 **Full Changelog**: https://github.com/zackees/soldr/compare/v0.7.32...v0.7.33
## What's Changed * fix(cli): resync zccache session on "unknown session:" wrapper error (#265) by @zackees in https://github.com/zackees/soldr/pull/267 * test(cli): end-to-end integration test for zccache unknown-session retry (#266) by @zackees in https://github.com/zackees/soldr/pull/268 * chore: ignore .claude local worktrees, settings, and credentials by @zackees in https://github.com/zackees/soldr/pull/269 * chore(deps): bump managed zccache from 1.4.0 to 1.4.2 by @zackees in https://github.com/zackees/soldr/pull/270 * chore(release): bump version to 0.7.16 by @zackees in https://github.com/zackees/soldr/pull/271 **Full Changelog**: https://github.com/zackees/soldr/compare/v0.7.15...v0.7.16
## What's Changed * Add files via upload by @zackees in https://github.com/zackees/soldr/pull/117 * docs: relaxed-merge smoke test (README period) by @zackees in https://github.com/zackees/soldr/pull/119 * Update README.md by @zackees in https://github.com/zackees/soldr/pull/118 * Update README.md by @zackees in https://github.com/zackees/soldr/pull/120 * Update README title to include 'Rust' by @zackees in https://github.com/zackees/soldr/pull/121 * ci: add Phase 1 cache benchmark workflows by @zackees in https://github.com/zackees/soldr/pull/123 * docs: require branch and PR handoff by @zackees in https://github.com/zackees/soldr/pull/124 * ci: pin benchmark zccache cache actions by @zackees in https://github.com/zackees/soldr/pull/125 * ci: simplify cache benchmark summary by @zackees in https://github.com/zackees/soldr/pull/126 * Update README.md by @zackees in https://github.com/zackees/soldr/pull/127 * Update README.md by @zackees in https://github.com/zackees/soldr/pull/128 * ci: publish cache benchmark web bundle by @zackees in https://github.com/zackees/soldr/pull/130 * ci: deploy benchmark table to github pages by @zackees in https://github.com/zackees/soldr/pull/131 * ci: deploy benchmark pages after partial failures by @zackees in https://github.com/zackees/soldr/pull/132 * site: render benchmark commands more clearly by @zackees in https://github.com/zackees/soldr/pull/133 * Add soldr integration guide by @zackees in https://github.com/zackees/soldr/pull/134 * Regenerate benchmark pages on main changes by @zackees in https://github.com/zackees/soldr/pull/135 * Add root setup-soldr GitHub Action by @zackees in https://github.com/zackees/soldr/pull/138 * Document the setup-soldr GitHub Action by @zackees in https://github.com/zackees/soldr/pull/141 * Drive benchmark reporting from TOML config by @zackees in https://github.com/zackees/soldr/pull/144 * Preinstall exact setup-soldr toolchains by @zackees in https://github.com/zackees/soldr/pull/143 * Auto-detect repo-local Rust toolchain homes by @zackees in https://github.com/zackees/soldr/pull/142 * Clarify current setup action docs and metadata by @zackees in https://github.com/zackees/soldr/pull/145 * ci: restore phase 1 cache benchmark workflow by @zackees in https://github.com/zackees/soldr/pull/147 * Append CI guidance to rustup tool resolution failures by @zackees in https://github.com/zackees/soldr/pull/146 * ci: make phase 1 cache benchmark summary config-driven by @zackees in https://github.com/zackees/soldr/pull/149 * Prefer repo-local toolchain binaries before rustup by @zackees in https://github.com/zackees/soldr/pull/151 * ci: migrate bootstrap e2e cache to zccache by @zackees in https://github.com/zackees/soldr/pull/148 * Document setup-soldr public action extraction plan by @zackees in https://github.com/zackees/soldr/pull/150 * Emit cache benchmark issue comment artifact by @zackees in https://github.com/zackees/soldr/pull/155 * Add setup-soldr action exporter by @zackees in https://github.com/zackees/soldr/pull/157 * Bootstrap rustup when missing in setup-soldr by @zackees in https://github.com/zackees/soldr/pull/152 * Gate macOS x64 jobs to main and release pushes by @zackees in https://github.com/zackees/soldr/pull/158 * Prefer direct soldr-core rustc discovery before rustup by @zackees in https://github.com/zackees/soldr/pull/156 * Make main the canonical CI cache source by @zackees in https://github.com/zackees/soldr/pull/154 * docs: clarify rustup fallback and rustup-init bootstrap by @zackees in https://github.com/zackees/soldr/pull/159 * docs: external-repo cache guide + minimal CI example by @zackees in https://github.com/zackees/soldr/pull/161 * feat(action): add opt-in zccache build cache to setup-soldr by @zackees in https://github.com/zackees/soldr/pull/160 * fix: unbreak musl & other Unix builds through soldr cargo build by @zackees in https://github.com/zackees/soldr/pull/162 * chore: bump version to 0.7.5 by @zackees in https://github.com/zackees/soldr/pull/163 **Full Changelog**: https://github.com/zackees/soldr/compare/v0.7.4...v0.7.5
## What's Changed * Add PyPI trusted publishing release path by @zackees in https://github.com/zackees/soldr/pull/31 * Fix PyPI release workflow runner setup by @zackees in https://github.com/zackees/soldr/pull/32 **Full Changelog**: https://github.com/zackees/soldr/compare/v0.5.0-rc1...v0.5.0-rc2