github SteamClientHomebrew/Millennium v3.0.0

6 hours ago

3.0.0 (2026-05-30)

Bug Fixes

  • acknowledge crash when plugin is disabled (a8c1d27)
  • add 32-bit openssl and libidn2 to PKGBUILD makedepends (7227ba3)
  • add libx11 and libxtst to PKGBUILD makedepends (4107565)
  • add safe.directory for git in container (7f4fdd9)
  • add workspace node_modules/.bin to PATH for sub-package builds (5948687)
  • allow builder user to access workspace repo (2c95321)
  • always clean up emittedPlugins when destroying a plugin (caf35e2)
  • arch: build with RelWithDebInfo for debug symbol generation (edb0cf5)
  • arch: convert to split package so paru can resolve millennium-debug (c1579c1)
  • arch: create install directory and enable debug symbol package (0863182)
  • arch: remove unused DISTRO_ARCH cmake flag (314e01b)
  • arch: replace SUDO_USER-dependent home detection with passwd enumeration (785f777)
  • arch: simplify PKGBUILD to single package with auto-generated debug and remapped debug paths (655350d)
  • Better fallback on main browser fail in captureBrowserSnapshot (77eb09e)
  • Better legacyPluginDisabledTooltip tooltip locale (05fb5b2)
  • bindings: Normalize Theme color and condition values before config propagation (583fd04)
  • bindings: Validate plugin install/uninstall payload keys (7ce1020)
  • build paru from source, use PACMAN=paru for AUR dep resolution (3e2b83e)
  • build paru-bin from AUR instead of stale prebuilt binary (859c6f7)
  • build TypeScript during configure so virtfs embeds chunk files (3a5f851)
  • build: add loader package to bun workspace (7373eda)
  • build: add missing sstream include and remove unused set_config (23cd4c2)
  • build: remove stale websocketpp add_subdirectory (e72be84)
  • build: suppress compiler warnings in shared.h, loopback, and curl targets (207898f)
  • bun instead of bun-bin (65809cd)
  • cdp: scope Page.* blocks to SharedJSContext and forward target sessionId (830d1e1)
  • cdp: support multiple event listeners per CDP event (59e93b3)
  • child_process: handle ECHILD when steam reaps child before millennium (f46eb6b)
  • child: prevent terminal signals from propagating to plugins (9deb2d2)
  • ci: extract only main package for verification, exclude debug split (a1a59c2)
  • CI: Fail compilation if MILLENNIUM_VERSION can't be found (e39cc55)
  • CI: Fetch full git history so semantic-release sees all tags (4d49bb0)
  • ci: move tests/ffi into workspace root to fix Windows build (d071b1b)
  • ci: use millennium/ subdirectory in release artifacts (c6d7ce4)
  • cmake: declare resources.rc as generated output on Windows Release (8096307)
  • CMake: Prevent macOS from compiling Linux subhook source (27ae3bb)
  • cmake: remove CACHE from internal set() variables (187c88e)
  • cmake: resolve canonical Steam path and consolidate build messages (e55033b)
  • config: eliminate race condition in config-provider sync (94d7e4d)
  • correct PyUninstallPlugin FFI return type (bc92023)
  • crash-modal: delay showing crash modal 5s after main window is ready (9b824ae)
  • deliver pending crashes via startup config (ffe20a4)
  • deploy 64-bit bootstrap and hhx64 to steamwebhelper runtime (bc0e09c)
  • deploy 64-bit bootstrap in install script and CI (d70b7e9)
  • disable 64-bit optional curl deps in 32-bit Linux build (59aed87)
  • drop paru, install deps via pacman and bun manually (16c2f28)
  • engine: make Millennium shutdown deterministic on Steam quit (f3d4f01)
  • Expose webkit FFI binding per session and harden loader FFI availability check (3a43baa)
  • ffi: remove dead updater FFI bindings (b922613)
  • Fix AUR test slave falling behind a commit (d46c0fd)
  • Fix dev build improperly resolving typescript metadata (4d84ac5)
  • Fix Field in latest Steam client breaking Millennium settings (44225e6)
  • Fix Millennium not starting properly when using BPM as startup location (b4d68fc)
  • Fix release build (2bd1f3d)
  • Fix startup issues on beta 18-20 (hopefully) (4228dd1)
  • Fix theme config not saving properly across sessions (05bcb65)
  • Fix ttc skipping optional call hooks (ex: memb?.fn?.()) (43273f7)
  • frontend: Guard theme switching and sequence JS context reload safety (c03b1d3)
  • frontend: Only restart UI when reload prompt is confirmed (b0d27c4)
  • frontend: Prevent updates effect cleanup crash and restore macOS manual update action (0527e61)
  • frontend: show legacy plugin warnings for already-disabled plugins (7290a44)
  • frontend: theme editor dropdown and sidebar styling (99f3d8d)
  • frontend: Treat RootColors as CSS text and prevent init crashes from blocking Millennium routes (059b815)
  • handle numeric slider defaults in theme condition init. Closes #730 (ba269ef)
  • Http: Align Internal asset interception and loopback compatibility for macOS (3214e93)
  • install all build deps manually in CI, add bun install step (a28de3a)
  • install.sh: chmod +x libmillennium_pvs64 and libmillennium_luavm_x86 (1004c21)
  • install.sh: chmod +x libmillennium_pvs64 and libmillennium_luavm_x86 (8f6a93c)
  • invalidate update cache after successful plugin update (f57fdbf)
  • ipc: parse JSON-encoded strings from Lua backends (9fac1db)
  • let PKGBUILD handle bun installation (896c360)
  • linux: Add missing include in crash_handler (ad69e96)
  • linux: add missing include in crash_report (3817b13)
  • linux: Fix compilation errors in crash_handler and linux_legacy (23d67ee)
  • locales: evaluate settings tab titles at render time (ee9eb71)
  • locales: evaluate settings tab titles at render time (f45fa5d)
  • log error code and command in CreateProcess failure (f29293b)
  • loopback: scope re2 to loopback target and guard fopen_s behind WIN32 (bd4c2f2)
  • lua: Make remove_browser_module shutdown-safe during backend teardown (25da728)
  • macOS: Align async-ffi sources and remove stale python runtime refs (4ef0cd2)
  • nix: correct stale typescript source paths (4313886)
  • nix: Fixed build bug with python venv (c80aa45)
  • nix: force RPATH for Steam compat (65d3966)
  • only define dev path overrides in non-CI builds (1470e32)
  • only reload frontend when plugins are enabled (bb805ec)
  • only spawn newly enabled plugins in set_plugins_enabled (d386518)
  • PKGBUILD: Remove all refs to $srcdir in release builds (f635002)
  • platform: support both CEF directory variants for hardlinks (dfaba25)
  • platform: use trampolines, fopen_s, WSASocketW, and drop stale includes (bfaa87f)
  • pre-populate srcdir to avoid makepkg git clone issues (7c2e9e4)
  • Preserve skin.json key order through the IPC layer (d6e8159)
  • prevent duplicate frontend bootstrap on plugin toggle (628bde0)
  • quote PKGBUILD variable expansions to handle paths with spaces (d25af28), closes #686
  • remove nonexistent lib32-curl from makedepends (e5b6361)
  • resolve double-log and double-unload shutdown issues (cb14bf5)
  • resolve lua_host path relative to loaded library on Linux (985c6cc)
  • resolve millennium-ttc via direct path instead of bin lookup (1fc7ac4)
  • resolve paru download URL from GitHub API (0268301)
  • resolve theme update loop and add update diagnostics (4b426ca)
  • restore callable backwards compat for pre-compiled plugins (1cd2afb)
  • Runtime: Make Python environment and runtime paths version-aware on Posix and Macos (34bcd5d)
  • Scope deps audit to Millennium runtime env (b675d40)
  • SDK: Remove IPC request timeouts (6c0368d)
  • settings: restore saved tab when returning to settings (c9fa827)
  • Show placeholder in Logs panel when there are no logs (5ea0e77)
  • shutdown: event-driven CDP pipe cancellation on terminate (308afbf)
  • silence benign CDP and VFS error logs (fa66952)
  • skip runtime deps in test PKGBUILD (66415ef)
  • Steam Beta: Fix component hooks causing the front-end to crash (1f50daf)
  • strip steam dep instead of skipping all deps (f27201b)
  • themes: inject root colors, slider CSS, and webkitJS into webkit pages (b341752), closes #617 #694
  • themes: inject stylesheets before to fix cascade order (86f2334), closes #210
  • ttc: default baseUrl to tsconfig dir when not set (93251a5)
  • ttc: Fix pathing issue (5c22bbf)
  • ttc: Fix ttc cli shebang (dcbd5a0)
  • types: correct ThemeEditor separator type and IsThemeInstalled return type (bfa1864)
  • update metadata.json with new commit hash after plugin update (fb708f6)
  • Updater: Fix updater installing to %steam%/millennium instead of %steam% (c2a7921)
  • Updates Panel: Fix styling and remove debug state. (bc96812)
  • updates: Correct expand caret direction on update cards (2fb7057)
  • use paru for AUR dep resolution in CI (f8e62f7)
  • virtfs: introduce MILLENNIUM_EMBED_ASSETS and extend to RelWithDebInfo in all relevant checks (ce25b0f)
  • virtfs: treat RelWithDebInfo as Release for asset embedding (87227d9)

Features

  • accent colour support for macOS (a169179)
  • Add frontend -> webkit FFI support (f70e206)
  • add Linux dev environment setup and teardown scripts (24e6532)
  • add loading spinner to recheck for updates button (bdf76c8)
  • add plugin config API with cross-context sync (ffb2bf0)
  • add recheck for updates button to no-updates placeholder (e10cada)
  • Add Sliders to theme config. closes #653 (a4a8667)
  • Add testing suite to Millennium source code (1eb0ebb)
  • Added check for updates button (a396bbc)
  • backend: Add per-operation progress tracking for concurrent installs (857b2d1)
  • bootstrap: add millennium_pvs64 pressure-vessel unruntime shim for CDP pipe FD forwarding through bwrap (5eb398d)
  • bootstrap: Replace Legacy bootstrap app with wrapper + bootstrap and child-hook dylibs (211b25e)
  • build lua sandbox as native 64-bit on Linux (d4015ac)
  • build: integrate typescript build into cmake with incremental per-package targets (e75e5d6)
  • cdp: give each plugin its own isolated CDP instance (ac2fd6e)
  • cdp: route frontend CDP calls through C++ pipe binding (df6d564)
  • config: add initializer_list overloads for get/set (95b0bf2)
  • deps: Drop libgit2, themes no longer use git, Millennium version controls them manually (aa1ae1c)
  • ffi: propagate lua call site as caller in ffi records (f62d1ae)
  • Finally type FFI signatures between cxx and frontend. Added ffi() which will supersede callable() (783a186)
  • frontend: add ffi() v2 API and enable strict TypeScript (39e303f)
  • frontend: Route installer progress by operation ID (2bc6606)
  • frontend: warn users about legacy non-lua plugins on startup (cdf620a)
  • install.sh: Add support for --run-id which lets you install a Millennium build from a GitHub Actions run (8f8bbb2)
  • linux: add runtime AUR/distro update script detection helpers (d28c18e)
  • locales: add missing Russian and Ukrainian translation keys (2b16a53)
  • locales: add missing Russian and Ukrainian translation keys (fee51b4)
  • LTS: Remove deprecated Python support, officially moving Lua into LTS. (1ab6a6a)
  • macOS: Add install_macos.sh with tier0_proxy (8f2144e)
  • macOS: Add native window corner styling (8ec7f09)
  • macOS: bootstrap reorganization, menu fixes, and shutdown stability (a6f2715)
  • macOS: Enable native window styling in steam helper injection (22f4727)
  • macOS: Wrapper app install via install_macos.sh (6091a20)
  • migration: migrate legacy ext/ layout to millennium/ on startup (b20eef6)
  • Millennium now sandboxes plugin backends, preventing them from crashing Millennium. (6929933)
  • move HTTP from lua sandbox to parent process via RPC (297e6dc)
  • Move Millennium installation to %LOCALAPPDATA%/Millennium on windows (5ffe4b0)
  • plugins: add legacy plugin detection and superseded plugin modal (9f1a7bd)
  • quickcss: add native file watcher with live reload (aa40ed1)
  • remove unneeded dependencies: fmt, incbin, and vendored lua_cjson. fmt & incbin has been replaced with C++23 std::format and #embed. (c05144b)
  • run test PKGBUILD before publishing to AUR (05a6d6b)
  • scripts: Add Async-FFI macOS launch flow (1033f3b)
  • settings: Restore settings page after JS context restart (8f522bc)
  • src: Integrate Macos platform wiring in Cmake with menu hook and native dialogs (8932a97)
  • ttc: add --watch and fix constSysfsExpr throwing a warning on compilation (f0ddeaf)
  • ttc: use esbuild instead of typescript on dev builds, improving build speeds by 10x (703fd46)
  • updates: Support parallel theme and plugin updates (f1dff4c)

Reverts

  • remove %LOCALAPPDATA% migration, restore Steam directory layout (710f5f0)
  • undo global frontend reload change (4881288)

BREAKING CHANGES

  • plugins, themes, config, and binaries moved from /ext/ to /millennium/

What's Changed

New Contributors

Full Changelog: v2.35.0...v3.0.0

Don't miss a new Millennium release

NewReleases is sending notifications on new releases.