Project note: the app is now branded as OpCore-OneClick. Legacy repo/update coordinates and the persisted app-data path remain unchanged for continuity.
- Replaced the Node 20-only release-publish action with a direct
gh release createstep so the release workflow no longer depends on a deprecated Node 20 action.
- Updated release, issue, homepage, and updater lookup URLs to the live
redpersongpt/OpCore-OneClickrepo after the GitHub repo rename landed. - Kept the existing
appIdand persisteduserDatapath unchanged, but stopped relying on GitHub's redirect for updater checks.
- Fixed the SSDT source-policy regression in the in-progress follow-up patch so the Electron build path matches the source-policy module again.
- Added explicit source coverage for the shipped AMD desktop, Coffee Lake, Alder Lake, and Raptor Lake SSDT sets.
- EFI build now fails clearly if a required SSDT has no supported source policy instead of falling into a type/runtime mismatch.
- Updated the release workflow action versions to current Node 24-capable majors to clear the GitHub Actions Node 20 deprecation warnings from the release pipeline.
- The app is now branded as
OpCore-OneClickacross the packaged app, window title, diagnostics, support logs, updater copy, and CLI usage text. - Existing updater/release continuity was preserved. The app still checks releases from
redpersongpt/macOS-One-Clickbecause the GitHub repo slug is unchanged. - Internal compatibility-sensitive paths were intentionally kept where needed. The existing
appId, persisteduserDatapath, and legacymacos-oneclickCLI alias remain in place for continuity.
- The app no longer tells Linux users to run the entire GUI as root. Disk operations now use pkexec (polkit) for per-command elevation, the same model macOS uses with system prompts.
- Removed
--no-sandboxfrom default Linux executable args. The auto no-sandbox workaround is kept only for backwards compatibility when already running as root. - Updated all privilege-related error messages, suggestions, and remediations to say "install polkit" instead of "run with sudo."
- Added a headless CLI entry point (
opcore-oneclick, legacy aliasmacos-oneclick, ornode dist-electron/electron/cli.js). - Commands:
scan,compatible,report,matrix,version. - JSON (
--json) and human-readable output. Correct exit codes (0=ok, 1=error/blocked, 2=usage). --targetflag for specifying macOS version oncompatibleandreportcommands.- Read-only — destructive operations (flash/build) require the GUI.
- Extracted
detectCpuGeneration,detectArchitecture,mapDetectedToProfilefrom main.ts intoelectron/hardwareMapper.tsso both the Electron app and CLI share the same mapping logic.
- Fixed GPT detection on Windows:
Get-Disknow targets the specific disk number and wraps in try/catch so GPT drives are no longer misreported as "unknown partition table." - Improved diskpart error handling: silent
.catch(() => {})on drive-letter assignment replaced with logged error path; retry window widened from 12×500ms to 20×400ms. - Final flash error now distinguishes "partition exists but no letter" from "no partition created at all."
- Added structured error entries for diskpart prep failure and drive-letter assignment failure with actionable remediation copy.
- SMBIOS recomputed on target OS change so Tahoe builds get the correct model.
- SSDT sourcing reads real AML from OpenCore package instead of empty placeholder files.
- VersionStep: "Use {version}" vs "Continue with {version}" button logic; cursor-pointer on all interactive buttons.
- Resource plan no longer blanks while a new plan loads — keeps previous plan visible.
- Recovery download step shows accurate 700 MB copy instead of implying full OS size.
- Added 7 new test files covering diskOps safety commands, structured error classification, flash safety gates, kext source policy, release flow SMBIOS, config generator, and VersionStep button states.
- Fixed EFI build failing on codeless kexts like AppleMCEReporterDisabler that have only an Info.plist and no binary in Contents/MacOS. Both the build validator and the install validator now recognize codeless kexts as valid.
- Rewrote the updater panel to a compact single-row layout so download/install/restart actions stay visible without scrolling.
- Removed dead blank space from compatibility matrix cards (hard min-height floor).
- Tightened spacing and shortened copy across version selection, hardware report, and resource plan screens.
- Made the landing page scrollable so the updater is never clipped below the viewport.
- Added 83 regression tests covering updater action visibility, sidebar single-active state, resource plan persistence across Build EFI re-entry, and compatibility matrix layout invariants.
- Fixed Windows disk identity so
PhysicalDriveNpaths are canonical end-to-end instead of mixingdiskNaliases that broke partition-table and system-disk checks. - Widened USB detection beyond
BusType=USBto catch bridge-backed removable media throughInterfaceType,PNPDeviceID, andMediaType. - Separated partition-table errors from system-disk errors so users see the right remediation instead of a generic safety block.
- Capped FAT32 partition size on drives larger than 32 GB so
diskpartprep does not exceed the FAT32 volume limit. - Added a diskpart retry path for the common Windows lock/mount-handle failure.
- Restored flash authorization from saved scan artifacts on app restart so a valid session survives relaunch.
- Kext resolution now routes explicitly to bundled, GitHub, direct download, embedded fallback, or hard fail — no more fake offline stubs.
- Added direct-download paths for AMD kexts and other non-API-friendly sources.
- Resource plan persists across Build EFI re-entry when the hardware profile has not changed.
- Sidebar highlights exactly one active step instead of allowing duplicates.
- Updater polling runs only during active check/download/install states.
- Shortened recommendation, compatibility, and report copy.
- Fixed USB flash-prep disk identity loss on Windows so valid removable targets keep a stable identity from selection through flash confirmation.
- Fixed a stale disk-info race where an older lookup could overwrite the currently selected USB target.
- Fixed Windows disk info IPC instability by degrading slow removable-media queries safely instead of failing the whole lookup.
- Fixed the remaining EFI-build stall after BIOS Continue by auto-starting the build flow instead of landing on a second manual Begin gate.
- Prevented stale BIOS refresh responses from clearing an accepted BIOS session after Continue, so the non-destructive build path stays coherent until EFI generation starts.
- Added an in-app "Update to latest version" button that opens the latest GitHub release page from both the landing screen and the main shell.
- Timed out BIOS-state firmware probing in the main process and emitted EFI-build progress before BIOS validation so hung firmware reads fail clearly instead of leaving the build screen waiting indefinitely.
- Kept destructive safety unchanged: accepted BIOS sessions still do not unlock partitioning or flashing without a real ready BIOS state.
- Fixed the BIOS-step recovery bug where the combined recheck/continue flow could fall into a generic unknown-error surface instead of staying in a clear BIOS-specific path.
- Split the BIOS step into distinct Recheck BIOS and Continue actions so recheck reruns firmware detection while continue uses the current known checklist state without silently probing again.
- Added BIOS-specific recovery messaging and session persistence for continuing from the current BIOS state, while keeping the later build/deploy safety gates unchanged.
- Fixed a release-blocking EFI build pipeline bug where renderer-side step transitions could read stale state after a successful build and leave the app looking stuck instead of moving forward or failing clearly.
- Added build-flow stall detection, clearer recovery context, and richer issue-report diagnostics for stuck build, kext, and recovery phases without weakening any destructive safety checks.
- Removed the Safe / Exploratory planning-mode split and collapsed the app onto one clearer compatibility guidance path.
- Reworked macOS version selection into a calmer, more professional recommendation layout with a stronger featured starting point and cleaner state presentation.
- Hardened packaged startup recovery so renderer/load failures surface a clean recovery path instead of raw diagnostics or blank-screen dead ends.
- Added sanitized support-log export and cleaner failure recovery messaging without changing flash, BIOS, validation, backup, or destructive authorization rules.
- Refined the macOS selection and BIOS preparation screens for calmer hierarchy, clearer recommendations, steadier back navigation, and better checklist readability.
- Added guided fix suggestions, community match levels, likely failure points, and decision-trace context for Experimental and Risky Hackintosh paths.
- Added Safe Mode and Exploratory Mode planning surfaces so advanced users can stretch community-proven hardware paths without weakening destructive safety.
- Kept destructive write protection unchanged: flash token safety, live disk identity checks, EFI validation, BIOS readiness, backup policy, and confirmation flow are all intact.
- Preserved the packaged startup-path fix so published Windows and Linux builds do not regress into a black-screen launch failure.
- Fixed the packaged startup path so released apps load the renderer bundle from the correct
dist/index.htmllocation instead of opening to a black screen. - Fixed the Electron packaging entry so Windows and Linux packages include the correct compiled main-process bootstrap.
- Split build and packaging scripts so release packaging can target Windows and Linux without producing a macOS package.
- Moved public release packaging to native GitHub Actions runners for Windows and Linux and removed the macOS publish job from the release workflow.
- Hardened diagnostics and issue reporting so build, validation, recovery, disk, simulation, and runtime failures produce sanitized bug-report drafts instead of leaking raw paths or identifiers.
- Sanitized structured logs and diagnostics output to remove tokens, personal paths, raw serial-like values, and full device identifiers from copied reports.
- Tightened renderer failure handling so runtime exceptions surface a stable error overlay instead of silently disappearing.
- Preserved the existing destructive safety architecture while keeping imported profiles, simulation, backup manifests, and resource plans advisory-only.
- Removed renderer-side environment-key injection and cleaned release metadata for public distribution.