diff --git a/CHANGELOG.md b/CHANGELOG.md index 9328ccd..6a2453d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,20 +6,34 @@ The project follows Semantic Versioning. Release candidates are pre-release buil ## [Unreleased] -### Development +## [0.5.0-rc.2] - 2026-09-08 -- Removed the legacy per-model validation classification and confirmation UI. Apple hardware with an Intel CPU now determines `SupportedIntelMac` directly; exact model identity remains reporting/persistence context and fan writes remain gated by the live capability family. The global `95%` / Boost Disabled CPU policy is unchanged. -- Advanced the `main` development identity to `0.5.0-rc.2` after publication of `v0.5.0-rc.1` so post-release source builds cannot be confused with the immutable published RC artifact. -- `0.5.0-rc.2` is a development target only at this point. No tag or GitHub Release has been created for it. -- Published stable `v0.4.0` and pre-release `v0.5.0-rc.1` remain unchanged. +### Added + +- Added the bounded `GlobalMaskFpe2` capability family with exact live metadata, topology, state and value checks. The writer supports only explicit one- and two-fan global masks and fails closed on unknown fingerprints or higher fan counts. +- Added schema-v4 pre-write transaction journaling and deterministic partial-write-prefix recovery for both `PerFanModeFloat32` and `GlobalMaskFpe2`, with hardened crash, startup, clean-exit and Apple Auto recovery handling. + +### Changed + +- Gaming Optimised now applies the same processor rule to every `SupportedIntelMac`: Maximum Processor State AC/DC `95% / 95%` with processor boost disabled on AC/DC. +- `SupportedIntelMac` now derives directly from detected Apple hardware plus an Intel CPU rather than an exact Mac-model whitelist. +- Removed the legacy per-model validation/tested-model classification and confirmation UI. Exact model identity remains hardware/reporting and persistence context, not normal processor-profile or fan-writer permission. +- Fan writes remain independently gated by a fresh exact live capability-family match plus all existing topology, value, ownership, Apple Auto, read-back and recovery checks. +- The exact `MacBookPro16,1` model check remains only where required for stable `0.4.0` schema-v1 ownership-marker downgrade compatibility and bounded physical SMC research tooling; it is not a general writer gate. + +### Physical validation + +- Physically qualified the one-fan `GlobalMaskFpe2` write/readback/Apple Auto round trip on `MacBookPro12,1` using exact fresh `F0Mx` bytes and the global `FS! ` mode mask. +- The existing `MacBookPro16,1` end-to-end physical validation for `PerFanModeFloat32` remains applicable. +- Two-fan `GlobalMaskFpe2` (`FS! = 0003`) physical qualification remains pending and is not inferred from the one-fan result. +- The experimental native `BootCampSmc` write transport is **not** claimed as physically write-qualified or as a production dependency. ### Documentation -- Synchronized all repository Markdown documentation after publication of `0.5.0-rc.1`. -- Recorded the immutable `v0.5.0-rc.1` tag, qualified source commit and published ZIP digest. -- Updated contributor, support and security guidance from the stable `0.4.0` exact-model fan gate to the `0.5.0-rc.1` live capability-family policy. -- Clarified that stable `0.4.0` remains the latest stable release while `0.5.0-rc.1` is a separate GitHub pre-release. -- No hardware-control code is changed by this post-release documentation synchronization. +- Prepared repository documentation for the `0.5.0-rc.2` release candidate while keeping stable `0.4.0` as the latest stable release. +- Preserved the immutable `v0.5.0-rc.1` publication identity and older release history. +- Final `0.5.0-rc.2` ZIP size and SHA-256 are intentionally deferred until the final tagged-source build. +- No hardware-control code is changed by this release-preparation documentation update. ## [0.5.0-rc.1] - 2026-09-05 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6ab43f5..55a1827 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,12 +7,12 @@ BCPC can change processor power-management state and, when a live verified capab ## Current project baseline - Latest stable release: `0.4.0` -- Current release candidate: `0.5.0-rc.1` -- Current RC automated baseline: `589 / 589` tests -- Current physically validated production fan path: `MacBookPro16,1` / Apple T2 +- Current release candidate: `0.5.0-rc.2` +- Current RC automated baseline: `632 / 632` tests +- Current physical fan-write evidence: `MacBookPro16,1` / `PerFanModeFloat32` and `MacBookPro12,1` / one-fan `GlobalMaskFpe2` - Current RC fan-write policy: guarded live capability-family gating, not exact-model permission alone -`0.5.0-rc.1` is a pre-release. Passing the runtime capability-family gate on another T2-era Mac does not mean that model has been physically validated by the project. +`0.5.0-rc.2` is a pre-release. Normal `SupportedIntelMac` eligibility comes from detected Apple hardware plus an Intel CPU. Passing a runtime fan capability-family gate does not mean that Mac model has been physically validated by the project. ## Development model @@ -43,21 +43,21 @@ Do not enable a write path merely because a similar Mac model, T1/T2 generation, ## Fan-control changes -Production fan writes in `0.5.0-rc.1` are capability-family-gated. +Production fan writes in `0.5.0-rc.2` are capability-family-gated. -The current write family requires all of the following at runtime: +The current write families require all of the following at runtime: - platform status `SupportedIntelMac`, - MMIO AppleSMC protocol, - exact verified `FNum` metadata, - a supported discovered fan count within `F0..F9`, -- exact per-fan `Mx/Ac/Md/Tg` metadata for the verified FLT4/per-fan family, +- an exact complete live fingerprint for either `PerFanModeFloat32` or the bounded one-/two-fan `GlobalMaskFpe2` family, - sane finite runtime values, - Apple Auto before new ownership, - no conflicting external Manual state, - fresh preflight immediately before a write. -`MacBookPro16,1` is the only model physically validated end-to-end for this production path so far. New models must still be tested in controlled stages even if the runtime fingerprint passes. +`MacBookPro16,1` remains physically validated end-to-end for `PerFanModeFloat32`; `MacBookPro12,1` has passed the one-fan `GlobalMaskFpe2` write/readback/Apple Auto qualification. The two-fan global-mask path still requires physical qualification. New machines must be tested in controlled stages even if the runtime fingerprint passes. Any fan-control proposal must preserve these invariants: @@ -70,9 +70,9 @@ Any fan-control proposal must preserve these invariants: - Restore ordering: fans first, then exact saved processor state, - no inference of BCPC ownership from observed Manual mode alone, - no arbitrary SMC key or generic RPM write surface, -- no T1 `fpe2` / `FS!` writes through the T2-style path. +- no cross-family reuse of per-fan `Md`/`Tg` or global `FS! ` semantics and no permission inferred from a model or T1/T2 label. -Do not generalize the physically observed `MacBookPro16,1` RPM values as limits for another model. `0.5.0-rc.1` intentionally derives targets from fresh live `F{i}Mx` and uses `10000 RPM` only as a broad anti-corruption ceiling, not as an Apple specification or write target. +Do not generalize physically observed RPM values from either validation machine as limits for another model. `0.5.0-rc.2` intentionally derives targets from fresh live `F{i}Mx` and uses `10000 RPM` only as a broad anti-corruption ceiling, not as an Apple specification or write target. ## Processor power-management changes @@ -86,7 +86,7 @@ Gaming Optimised globally uses Maximum Processor State `95% / 95%` and Turbo/Boo ## Native BootCampSmc research driver -`drivers/BootCampSmc/` is an experimental independently authored KMDF research path. It is not the production fan-control dependency for stable `0.4.0` or release candidate `0.5.0-rc.1` and is not shipped in their release ZIPs. +`drivers/BootCampSmc/` is an experimental independently authored KMDF research path. It is not the production fan-control dependency for stable `0.4.0` or release candidate `0.5.0-rc.2`, is not shipped in their release ZIPs and is not claimed as physically write-qualified. The current physically completed checkpoint is Gate 5D-B fixed-key `GET_KEY_INFO(F0Mx/F1Mx)` metadata discovery on `MacBookPro16,1`. @@ -129,7 +129,7 @@ For release-packaging changes also run: powershell -ExecutionPolicy Bypass -File scripts/publish-release.ps1 ``` -The current `0.5.0-rc.1` qualification baseline contains `589` automated tests. A change should not reduce coverage or bypass existing safety checks without an explicit reviewed reason. +The current `0.5.0-rc.2` qualification baseline contains `632` automated tests. A change should not reduce coverage or bypass existing safety checks without an explicit reviewed reason. ## Pull-request expectations diff --git a/README.md b/README.md index 56e78e0..1adf5dd 100644 --- a/README.md +++ b/README.md @@ -9,19 +9,18 @@ BootCamp Performance Control (BCPC) is an open-source Windows utility for Intel Its goal is to reduce unnecessary heat and thermal throttling using conservative Windows processor power management and guarded Apple SMC fan control when a verified runtime capability family is present. -**[Download the latest stable release](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases/latest)** · **[Download 0.5.0-rc.1](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases/tag/v0.5.0-rc.1)** · [All releases and pre-releases](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases) · [Hardware compatibility](docs/HARDWARE-COMPATIBILITY.md) · [Fan control](docs/FAN-CONTROL.md) · [Changelog](CHANGELOG.md) +**[Download the latest stable release](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases/latest)** · **[Download 0.5.0-rc.2](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases/tag/v0.5.0-rc.2)** · [All releases and pre-releases](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases) · [Hardware compatibility](docs/HARDWARE-COMPATIBILITY.md) · [Fan control](docs/FAN-CONTROL.md) · [Changelog](CHANGELOG.md) ## Release status - **Current stable release:** `0.4.0` -- **Current published release candidate:** `0.5.0-rc.1` -- **Current `main` development target:** `0.5.0-rc.2` — not tagged or published. +- **Current release candidate:** `0.5.0-rc.2` - **Stable status:** `0.4.0` remains the recommended stable build and remains GitHub's latest stable release. -- **RC status:** `0.5.0-rc.1` is published as a GitHub pre-release for controlled compatibility testing. +- **RC status:** `0.5.0-rc.2` is prepared as the release candidate for controlled compatibility testing. - **Current fan-control milestone:** dynamic topology plus bounded `PerFanModeFloat32` and `GlobalMaskFpe2` capability-family writers. - **Physical fan-control validation:** `MacBookPro16,1` end-to-end for `PerFanModeFloat32`; `MacBookPro12,1` one-fan write/readback/Apple Auto round trip PASS for `GlobalMaskFpe2`. -Published `0.5.0-rc.1` identity: +Previous published `0.5.0-rc.1` identity: ```text Tag: v0.5.0-rc.1 @@ -32,17 +31,17 @@ ZIP SHA-256: B2215F7C6846614F2F1606A5DC11DC2D0BB1A496C66ACBA523B607A8DC65DDD5 Tests: 589 / 589 PASS ``` -The annotated release tag is immutable project evidence for this candidate. Documentation and development commits made after publication do not move or rewrite `v0.5.0-rc.1`. +The annotated release tag is immutable project evidence for that previous candidate. Documentation and development commits made after publication do not move or rewrite `v0.5.0-rc.1`. -Source builds from `main` after the release may report `0.5.0-rc.2`; that value identifies the next development target only and must not be represented as a published RC until a dedicated tag/release checkpoint is created. +The source reports `0.5.0-rc.2`. Its final ZIP size and SHA-256 must come from the final tagged-source build and are intentionally not predeclared here. -`0.5.0-rc.1` broadens runtime fan-write eligibility from the stable line's exact-model gate to a strict live SMC capability-family gate. That does **not** mean every T2 Mac has been physically validated. +`0.5.0-rc.2` determines normal `SupportedIntelMac` eligibility from Apple hardware plus an Intel CPU and gates fan writes separately through a strict live SMC capability-family match. Exact model identity is not normal writer permission, and physical evidence for one machine is not a model whitelist. > **Important:** Gaming Optimised uses Maximum Processor State `95% / 95%` and disables Turbo/Boost on AC and DC for every `SupportedIntelMac`. Fan control is additive and remains independently capability-gated. ## Quick start -For normal use, start with the latest stable release. For `0.5.0-rc.1` testing, use the dedicated [0.5.0-rc.1 GitHub pre-release](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases/tag/v0.5.0-rc.1). +For normal use, start with the latest stable release. For `0.5.0-rc.2` testing, use the dedicated [0.5.0-rc.2 GitHub pre-release](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases/tag/v0.5.0-rc.2). 1. Download the matching `win-x64` ZIP and `.sha256` file. 2. Optionally verify the ZIP SHA-256. @@ -127,7 +126,7 @@ See [0.5.0-rc.2 GlobalMaskFpe2 Hardware Validation Record](docs/0.5.0-rc.2-GLOBA The processor Gaming profile is available on `SupportedIntelMac` systems. Fan-write eligibility is not granted merely because a machine is an Intel Mac or is believed to contain T2. -Current development builds determine `SupportedIntelMac` from Apple hardware plus an Intel CPU; the exact model identifier does not decide normal processor-profile eligibility. Fan writes separately require the fresh runtime AppleSMC fingerprint documented in [Hardware Compatibility](docs/HARDWARE-COMPATIBILITY.md) and [Fan Control](docs/FAN-CONTROL.md). Physical validation records are evidence for the observed capability mechanisms, not runtime permission lists. +`0.5.0-rc.2` determines `SupportedIntelMac` from Apple hardware plus an Intel CPU; the exact model identifier does not decide normal processor-profile eligibility. Fan writes separately require the fresh runtime AppleSMC fingerprint documented in [Hardware Compatibility](docs/HARDWARE-COMPATIBILITY.md) and [Fan Control](docs/FAN-CONTROL.md). Physical validation records are evidence for the observed capability mechanisms, not runtime permission lists. ## Fan-control dependency: Macs Fan Control 1.5.16 @@ -229,7 +228,7 @@ The publish script creates a versioned self-contained `win-x64` directory, ZIP, ## Documentation - [Latest stable release](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases/latest) -- [0.5.0-rc.1 pre-release](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases/tag/v0.5.0-rc.1) +- [0.5.0-rc.2 pre-release](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases/tag/v0.5.0-rc.2) - [All releases and pre-releases](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases) - [Hardware Compatibility](docs/HARDWARE-COMPATIBILITY.md) - [Fan Control and AppleSMC Compatibility Backend](docs/FAN-CONTROL.md) diff --git a/SECURITY.md b/SECURITY.md index 40bd24b..f39f342 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -7,9 +7,9 @@ Security fixes are provided for the latest stable release of BootCamp Performanc Current public lines: - stable: `0.4.0` -- release candidate: `0.5.0-rc.1` +- release candidate: `0.5.0-rc.2` -`0.5.0-rc.1` is a pre-release and broadens production fan-write eligibility from the stable line's exact-model gate to a guarded live capability-family gate. It does not claim physical validation of every T2 Mac. +`0.5.0-rc.2` is a pre-release. Normal `SupportedIntelMac` eligibility derives from detected Apple hardware plus an Intel CPU; production fan writes are independently restricted to guarded live `PerFanModeFloat32` or bounded `GlobalMaskFpe2` capability-family matches. It does not claim physical validation of every Intel Mac. ## Reporting a Vulnerability @@ -44,7 +44,7 @@ Reports involving any of the following are treated as safety-relevant: - failure to return BCPC-owned hardware to Apple Auto, - crash-recovery failures, - fan writes occurring when the live capability-family gate should have blocked them, -- fan writes occurring on T1-style `fpe2` / `FS!` hardware through the T2-style production path, +- fan writes occurring through the wrong capability-family semantics or outside the exact bounded `PerFanModeFloat32` / `GlobalMaskFpe2` fingerprints, - recovery ownership markers being cleared without verified hardware recovery, - replacement or loss of the original processor Restore snapshot during fan-only resume. @@ -52,20 +52,20 @@ Reports involving any of the following are treated as safety-relevant: Stable `0.4.0` uses the historical exact `MacBookPro16,1` production fan-write gate. -Release candidate `0.5.0-rc.1` uses a stricter live capability-family decision at write time. Production fan writes require, at minimum: +Release candidate `0.5.0-rc.2` uses a strict live capability-family decision at write time. Production fan writes require, at minimum: - `SupportedIntelMac`, - MMIO AppleSMC protocol, - exact verified `FNum` metadata, - a supported dynamic topology within `F0..F9`, -- exact verified per-fan `Mx/Ac/Md/Tg` metadata, +- exact complete metadata for either `PerFanModeFloat32` or the bounded one-/two-fan `GlobalMaskFpe2` family, - sane finite runtime values, - Apple Auto before new BCPC ownership, - fresh preflight before the write. -The production write surface remains restricted to discovered per-fan `Md` and `Tg` keys. `FS!`, T1 `fpe2`, arbitrary SMC keys, minimum-RPM controls and user-defined fan-speed sliders remain outside the RC write path. +The production write surface remains restricted to discovered per-fan mode/target keys for `PerFanModeFloat32` and the proven global `FS! ` mode plus per-fan targets for bounded `GlobalMaskFpe2`. Arbitrary SMC keys, minimum-RPM controls, unknown fingerprints and user-defined fan-speed sliders remain outside the RC write path. -`MacBookPro16,1` remains the only model physically validated end-to-end for this production path so far. Runtime compatibility on another machine is not equivalent to project physical validation. +`MacBookPro16,1` remains physically validated end-to-end for `PerFanModeFloat32`, while `MacBookPro12,1` has passed one-fan `GlobalMaskFpe2` write/readback/Apple Auto qualification. Two-fan global-mask physical qualification remains pending. Runtime compatibility on another machine is not equivalent to project physical validation, and neither model identifier grants writer permission. BCPC does not infer ownership from observed Manual mode alone. A Manual state without BCPC ownership context is treated as externally controlled and is not silently taken over. diff --git a/SUPPORT.md b/SUPPORT.md index c9ce3d5..46b4fe8 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -2,16 +2,16 @@ BootCamp Performance Control is an open-source project for Intel Macs running Windows through Boot Camp. -Before reporting a problem, check the current [Hardware Compatibility](docs/HARDWARE-COMPATIBILITY.md), [Fan Control](docs/FAN-CONTROL.md), [Third-Party Software](THIRD_PARTY.md), [latest stable release](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases/latest), and the current [`0.5.0-rc.1` pre-release](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases/tag/v0.5.0-rc.1). +Before reporting a problem, check the current [Hardware Compatibility](docs/HARDWARE-COMPATIBILITY.md), [Fan Control](docs/FAN-CONTROL.md), [Third-Party Software](THIRD_PARTY.md), [latest stable release](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases/latest), and the current [`0.5.0-rc.2` pre-release](https://github.com/mksolutionsuniversal/BootCampPerformanceControl/releases/tag/v0.5.0-rc.2). ## Current public versions - Stable: `0.4.0` -- Release candidate: `0.5.0-rc.1` -- Current RC automated qualification baseline: `589 / 589` tests -- Physically validated production fan path: `MacBookPro16,1` / Apple T2 +- Release candidate: `0.5.0-rc.2` +- Current RC automated qualification baseline: `632 / 632` tests +- Physical fan-write evidence: `MacBookPro16,1` / `PerFanModeFloat32` and `MacBookPro12,1` / one-fan `GlobalMaskFpe2` -Stable `0.4.0` remains the recommended release for normal use. `0.5.0-rc.1` is intended for controlled compatibility testing and uses live capability-family fan-write gating. +Stable `0.4.0` remains the recommended release for normal use. `0.5.0-rc.2` is intended for controlled compatibility testing and uses live capability-family fan-write gating. ## Bug reports and compatibility issues @@ -40,11 +40,11 @@ For fan-control problems, also report the observed fan mode and RPM state before A request for support on a different Intel Mac does **not** imply that the model is physically validated by BCPC. -In `0.5.0-rc.1`, fan-write eligibility is not controlled by a simple exact-model whitelist. A machine may become runtime-eligible only when the fresh live AppleSMC interface matches the complete verified MMIO + dynamic `FNum` + per-fan FLT4/`Md`/`Tg` family and all ownership/safety conditions pass. +In `0.5.0-rc.2`, normal `SupportedIntelMac` eligibility derives from Apple hardware plus an Intel CPU, while fan-write eligibility is separately capability-gated. A machine may become fan-write eligible only when the fresh live AppleSMC interface matches the complete verified MMIO + dynamic `FNum` fingerprint for `PerFanModeFloat32` or bounded `GlobalMaskFpe2` and all ownership/safety conditions pass. -That runtime result is still only a compatibility decision. `MacBookPro16,1` is the only model physically validated end-to-end for this production path so far. +That runtime result is still only a compatibility decision. `MacBookPro16,1` provides end-to-end `PerFanModeFloat32` evidence, and `MacBookPro12,1` provides one-fan `GlobalMaskFpe2` write/readback/Apple Auto evidence; neither model is a permission whitelist. -T1-style `fpe2` / global `FS!` fan control remains write-disabled in this RC. +The one-fan `GlobalMaskFpe2` path is physically qualified. Two-fan `FS! = 0003` physical qualification remains pending, and unknown or mismatched global-mask fingerprints remain write-disabled. Do not test speculative SMC writes merely to produce a bug report. For a new machine, start with read-only capability capture. @@ -58,7 +58,7 @@ Measured CS2 thermal/performance results published by the project come from the ## Fan-control dependency -Neither stable `0.4.0` nor release candidate `0.5.0-rc.1` ships a production AppleSMC kernel driver. +Neither stable `0.4.0` nor release candidate `0.5.0-rc.2` ships a production AppleSMC kernel driver. The physically validated production fan-control environment uses a **separately installed** copy of Macs Fan Control `1.5.16` (Build `693`) with AppleSMC driver file version `1.0.7.0`. @@ -70,7 +70,7 @@ Close the Macs Fan Control application before BCPC attempts to own the AppleSMC ## Native BootCampSmc research driver -The `drivers/BootCampSmc/` tree is experimental research and is not the production dependency for stable `0.4.0` or release candidate `0.5.0-rc.1`. +The `drivers/BootCampSmc/` tree is experimental research and is not the production dependency for stable `0.4.0` or release candidate `0.5.0-rc.2`; its native write transport is not claimed as physically qualified. Its current physically completed checkpoint is Gate 5D-B on `MacBookPro16,1`. diff --git a/THIRD_PARTY.md b/THIRD_PARTY.md index 8de0ca9..b9951c1 100644 --- a/THIRD_PARTY.md +++ b/THIRD_PARTY.md @@ -7,9 +7,9 @@ BootCamp Performance Control (BCPC) is an independent open-source project by MK The same third-party distribution boundary applies to: - stable `0.4.0`, and -- release candidate `0.5.0-rc.1`. +- release candidate `0.5.0-rc.2`. -Neither release line bundles a production AppleSMC driver. `0.5.0-rc.1` broadens runtime fan-write eligibility through a guarded live capability-family policy, but that does not change the legal/distribution boundary described below. +Neither release line bundles a production AppleSMC driver. `0.5.0-rc.2` uses guarded live `PerFanModeFloat32` and bounded `GlobalMaskFpe2` capability-family policies, but that does not change the legal/distribution boundary described below. ## Macs Fan Control / CrystalIDEA @@ -37,7 +37,7 @@ Macs Fan Control and CrystalIDEA are independent third-party products and are no The repository contains an independently authored experimental KMDF research driver under `drivers/BootCampSmc/`. -That research code is part of the BCPC source repository, but `BootCampSmc.sys` is **not** the production fan-control dependency for stable `0.4.0` or release candidate `0.5.0-rc.1` and is not included in their published ZIP artifacts. +That research code is part of the BCPC source repository, but `BootCampSmc.sys` is **not** the production fan-control dependency for stable `0.4.0` or release candidate `0.5.0-rc.2`, is not included in their published ZIP artifacts and is not claimed as physically write-qualified. Its current closed physical research checkpoint is Gate 5D-B fixed-key `GET_KEY_INFO(F0Mx/F1Mx)` metadata discovery on `MacBookPro16,1`. diff --git a/docs/FAN-CONTROL.md b/docs/FAN-CONTROL.md index 4fdcda3..4d53081 100644 --- a/docs/FAN-CONTROL.md +++ b/docs/FAN-CONTROL.md @@ -7,16 +7,16 @@ The production feature remains deliberately narrow: - **Apple Auto** - **Maximum Safe RPM** -BCPC does not expose arbitrary SMC writes, a user-defined RPM slider or minimum-RPM control in `0.5.0-rc.1`. +BCPC does not expose arbitrary SMC writes, a user-defined RPM slider or minimum-RPM control in `0.5.0-rc.2`. -## Published release-candidate status +## Current release-candidate status Current public lines: - stable: `0.4.0` -- release candidate: `0.5.0-rc.1` +- release candidate: `0.5.0-rc.2` -Published RC identity: +Previous published RC identity: ```text Tag: v0.5.0-rc.1 @@ -26,15 +26,15 @@ ZIP SHA-256: B2215F7C6846614F2F1606A5DC11DC2D0BB1A496C66ACBA523B607A8DC65DDD5 Tests: 589 / 589 PASS ``` -`0.5.0-rc.1` is a GitHub pre-release. Stable `0.4.0` remains unchanged and remains the latest stable release. +`0.5.0-rc.2` is prepared as the current release candidate. Its final ZIP size and SHA-256 must come from the final tagged-source build and are not predeclared here. Stable `0.4.0` remains unchanged and remains the latest stable release. ## What changed from stable 0.4.0 Stable `0.4.0` enables production fan writes only for the exact physically verified `MacBookPro16,1` path. -`0.5.0-rc.1` removes that exact-model permission gate and instead requires a fresh live AppleSMC capability-family match immediately before write execution. +`0.5.0-rc.2` removes that exact-model permission gate and instead requires a fresh live AppleSMC capability-family match immediately before write execution. Normal `SupportedIntelMac` eligibility derives from detected Apple hardware plus an Intel CPU, independently of the fan-write gate. -This is a runtime compatibility decision, **not** a claim that every T2 Mac is physically validated. +This is a runtime compatibility decision, **not** a claim that every T1/T2 Mac is physically validated. Physical validation records are mechanism evidence, not model-based writer permission. The complete production path has been physically validated end-to-end on: @@ -49,7 +49,7 @@ The capability-driven runtime also recognizes the bounded `GlobalMaskFpe2` mecha ## Third-party compatibility dependency -BCPC does not ship its own production AppleSMC Windows driver in stable `0.4.0` or release candidate `0.5.0-rc.1`. +BCPC does not ship its own production AppleSMC Windows driver in stable `0.4.0` or release candidate `0.5.0-rc.2`. The physically verified production backend interoperates with the AppleSMC compatibility driver installed by a separate Windows installation of **Macs Fan Control 1.5.16 (Build 693)**. @@ -368,7 +368,7 @@ These physical validation records support the observed capability families and t BCPC also contains an independently authored experimental KMDF research driver under `drivers/BootCampSmc/`. -That driver is **not** the production fan-control dependency for `0.5.0-rc.1` and is **not** included in release packages. Its physically completed research boundary currently reaches Gate 5D-B fixed-key `GET_KEY_INFO(F0Mx/F1Mx)` metadata transactions on `MacBookPro16,1`. +That driver is **not** the production fan-control dependency for `0.5.0-rc.2`, is **not** included in release packages, and is **not** claimed as physically write-qualified. Its physically completed research boundary currently reaches Gate 5D-B fixed-key `GET_KEY_INFO(F0Mx/F1Mx)` metadata transactions on `MacBookPro16,1`. See [../drivers/BootCampSmc/README.md](../drivers/BootCampSmc/README.md). @@ -384,4 +384,4 @@ Additional compatible Intel Macs should be validated in stages: 6. processor snapshot/Restore round-trip, 7. crash/startup recovery only after the earlier stages pass. -Two-fan `GlobalMaskFpe2` physical write qualification and T1-specific model evidence remain separate validation boundaries; neither should be inferred from the one-fan PASS. \ No newline at end of file +Two-fan `GlobalMaskFpe2` physical write qualification and T1-specific model evidence remain separate validation boundaries; neither should be inferred from the one-fan PASS. diff --git a/docs/HARDWARE-COMPATIBILITY.md b/docs/HARDWARE-COMPATIBILITY.md index 951216f..f7ff342 100644 --- a/docs/HARDWARE-COMPATIBILITY.md +++ b/docs/HARDWARE-COMPATIBILITY.md @@ -7,12 +7,11 @@ Processor-profile availability and fan-write availability are intentionally sepa ## Current release status - Stable `0.4.0`: exact `MacBookPro16,1` production fan-write gate. -- Release candidate `0.5.0-rc.1`: dynamic fan topology plus verified T2-style SMC capability-family write gate. -- Current `main` development runtime: mechanism-based `PerFanModeFloat32` and bounded `GlobalMaskFpe2` writers selected from exact live capability fingerprints. -- `0.5.0-rc.1` is published as a GitHub pre-release. +- Release candidate `0.5.0-rc.2`: Apple-hardware-plus-Intel-CPU platform eligibility, dynamic fan topology, and mechanism-based `PerFanModeFloat32` and bounded `GlobalMaskFpe2` writers selected from exact live capability fingerprints. +- `0.5.0-rc.2` is prepared as the current release candidate for controlled compatibility testing. - Physical fan-write validation is completed on `MacBookPro16,1` for `PerFanModeFloat32` and on `MacBookPro12,1` for the one-fan `GlobalMaskFpe2` write/readback/Apple Auto round trip. -Published RC identity: +Previous published RC identity: ```text Tag: v0.5.0-rc.1 @@ -24,13 +23,13 @@ Tests: 589 / 589 PASS Stable `0.4.0` remains unchanged and remains the latest stable release. -Passing the `0.5.0-rc.1` family gate is a runtime compatibility decision. It is **not** a statement that the detected Mac model has been physically tested by the BCPC project. +Passing the `0.5.0-rc.2` family gate is a runtime compatibility decision. It is **not** a statement that the detected Mac model has been physically tested by the BCPC project. -Current development builds determine normal `SupportedIntelMac` eligibility directly from detected Apple hardware and an Intel CPU. Exact model identity remains useful hardware/reporting context, but it is neither a processor-profile whitelist nor a fan-write permission gate. +`0.5.0-rc.2` determines normal `SupportedIntelMac` eligibility directly from detected Apple hardware and an Intel CPU. Exact model identity remains useful hardware/reporting context, but it is neither a processor-profile whitelist nor a fan-write permission gate. ## Compatibility matrix -| Model / observed family | Processor profile | Fan monitoring | Current development fan writes | Crash fan recovery | Physical evidence | +| Model / observed family | Processor profile | Fan monitoring | `0.5.0-rc.2` fan writes | Crash fan recovery | Physical evidence | |---|---:|---:|---:|---:|---| | `MacBookPro16,1` / `PerFanModeFloat32` | Yes | Yes | Capability-qualified | Yes | **Physically verified end-to-end** | | `MacBookPro12,1` / `GlobalMaskFpe2` | Yes | Yes | Capability-qualified for proven one-fan topology | Implemented with v4 journal; fake restart-tested | **One-fan physical write/readback/Apple Auto round trip PASS** | @@ -121,7 +120,7 @@ A new BCPC fan takeover additionally requires: If fans are already Manual without valid BCPC ownership, BCPC does not silently take control. The CPU Gaming profile remains available independently. -## MacBookPro16,1 — physically verified reference path +## MacBookPro16,1 — PerFanModeFloat32 physical evidence Primary physical validation machine: @@ -246,7 +245,7 @@ Physical one-fan `GlobalMaskFpe2` write/readback/Apple Auto qualification is now Hard-crash recovery of the implementation's deterministic partial write prefixes remains covered by fake/in-memory restart tests. Physical hard-crash recovery for `GlobalMaskFpe2` has not yet been exercised and is not implied by the short controlled round trip. -## What “T2 family support” means in `0.5.0-rc.1` +## What capability-family support means in `0.5.0-rc.2` It means BCPC can enable one guarded writer only when the **live** AppleSMC interface exactly matches that writer's verified mechanism schema and runtime state. @@ -294,7 +293,7 @@ The repository also contains an independently authored experimental KMDF researc Its physically completed T2 research boundary currently reaches Gate 5D-B fixed-key `GET_KEY_INFO(F0Mx/F1Mx)` metadata transactions on `MacBookPro16,1`. -This research driver is not the production fan-control dependency for `0.5.0-rc.1`, is not included in release packages, and must not be interpreted as generic T1/T2 support. +This research driver is not the production fan-control dependency for `0.5.0-rc.2`, is not included in release packages, and is not claimed as physically write-qualified or as generic T1/T2 support. ## Safe validation order for another Mac