Release notes
What changed.
Generated from the project changelog whenever its release history changes.
All notable changes to Millennium Helpers are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
- Pages code examples use theme-aware shell syntax highlighting without changing copied commands.
Fixed
- Explicit light mode keeps its light palette when the operating system prefers dark mode.
4.0.0 - 2026-08-31
Changed
- Breaking: Go consumers must migrate imports from
github.com/bolens/millenium-helperstogithub.com/bolens/millennium-helpers. Installer, packaging, and documentation URLs use the corrected repository name.
Fixed
- Unix Steam discovery rejects Wine paths instead of treating them as native installations
- From-source packaging accepts the controlled release archive layout
Security
- Release and CI builds use Go 1.25.13 to include standard-library vulnerability fixes
3.2.1 - 2026-08-08
Fixed
- Fish top-level completion offers
millennium config, with dispatcher entries generated from the CLI contract to prevent future omissions
3.2.0 - 2026-08-07
Added
- Native
millennium configcommands inspect client settings, toggle installed plugins, select or disable themes, and identify/disable components with directly attributed recent errors without relying on Steam's settings UI
Fixed
- Error remediation ignores recognized prior Steam sessions, tolerates missing component directories, and rejects action-specific options outside their valid CLI and MCP actions
3.1.0 - 2026-08-07
Added
- Reversible
millennium injection status|disable|enablecontrols preserve configuration, plugins, themes, and installed client files - Injection safety checks refuse foreign or conflicting bootstrap files and report partial hook states
Changed
- MCP registration uses
millennium mcp, and Windows scheduled updates resolve the unified dispatcher directly
Removed
- Retired argv0 twin dispatch, legacy execution environment switches, metadata migration, and the unused legacy Go package
3.0.2 - 2026-08-05
Changed
- Repository agent guidance documents safe contribution and validation practices
- Release CI pins third-party actions, verifies downloaded tooling, and publishes build-provenance attestations
Fixed
- Remote archives, bootstrap downloads, and GitHub API responses enforce path, entry-count, and size limits
- MCP child processes terminate as a process tree when requests time out
- Configuration updates and the setup wizard preserve malformed or unreadable state instead of overwriting it
- Linux all-users upgrades link hooks for the target user
- Failed Windows installs and rollbacks restore the previous installation transactionally
- Backup retention applies configured count and maximum age on Linux and Windows
- Theme bulk updates and uninstall cleanup report partial failures
3.0.1 - 2026-07-15
Fixed
- Arch PKGBUILD/
.SRCINFOmillennium-helpers.sudoerssha256sums after the v3.0.0 peel (makepkg validity check) check-versionasserts Arch sudoers checksums stay in sync (skips absent package trees in CI fixtures)- MCP JSON spacing helper no longer sizes buffers with
len+N(CodeQLgo/allocation-size-overflow)
3.0.0 - 2026-07-15
Added
millennium installandmillennium uninstallprovide verified release or main-track installation on Linux and Windows, including PATH, completions, schedules, and sudoers integration.- A contract-driven generator keeps completions, man pages, MCP schemas, and dispatch allowlists synchronized with
spec/cli-contract.yaml.
Changed
- Breaking: New installs expose only the
millenniumcommand. Usemillennium <command>instead of the former long-name executables. Existing long-name dispatch remains compatible when present. - Release archives and packages ship the Go CLI instead of duplicate Bash and PowerShell feature implementations.
- Platform CI now tests the Go-owned command surface on Linux, Windows, and macOS.
Removed
- Retired feature scripts, PATH dispatchers, shared installer libraries, the Windows piped installer, and completed migration trackers.
2.7.0 - 2026-07-15
Added
- A unified Go CLI for scheduling, themes, diagnostics, upgrades, repair, purge, and MCP operations.
- A machine-readable CLI contract with synchronized completions, man pages, MCP schemas, and cross-platform smoke tests.
- Arch, Homebrew, Scoop, Nix, deb, rpm, and Chocolatey packaging with OS-specific release archives.
- Native Linux and Windows scheduling plus an interactive setup wizard.
Changed
- Installers require the Go dispatcher and register platform schedulers through
millennium <command>. - Release assets are versioned by OS and architecture; source packages use controlled archives.
Removed
- Shell and PowerShell PATH dispatchers, duplicate feature libraries, dead shared helpers, and the Python MCP fallback.
2.6.2 - 2026-07-10
Fixed
- Windows↔Unix parity: schedule
configunder StrictMode; scheduled task uses-Yes -Quiet, theme update, andupdater.log - Windows upgrade honors
backup_max_age_daysand accepts GNU-style channel/force/file/rollback flags - Windows repair supports
-SkipTheme/--skip-themeand refreshes themes after force reinstall - Setup wizard (Unix + Windows) preserves
backup_limit/backup_max_age_dayswhen rewriting config
2.6.1 - 2026-07-10
Changed
- Arch
-gitpackaging follows AUR VCS policy: no perpetualpkgversync on every commit;pkgver()is authoritative atmakepkgtime;.SRCINFOregenerates only when the-gitrecipe changes (make sync-git-srcinfo)
Fixed
- Portable packaging CI sed (GNU vs BSD/macOS) and Windows InstallTrack I/O so Cross-Platform Test Suite stays green
- Diag install-track meta no longer breaks when
USERPROFILEis unset or tests mockGet-Content
2.6.0 - 2026-07-10
Added
- Helpers install tracks (
release/main/tag/checkout) withinstall-meta.json,--track/--tag(Unix) and-Track/-Tag(Windows) - Auto-migrate legacy installs without meta on first install/diag/doctor touch
- Winget tip-of-main manifests (
packaging/winget-git/,bolens.millenniumhelpers.git) - Millennium client channel
main(tip-of-development) alongsidestable/beta— separate from helpers track - Diag JSON fields
helpers_track/helpers_ref; track-aware doctor sync
Changed
- Doctor and update checks follow the recorded helpers track (pinned tags stay pinned;
-gitpackages are not compared to release tags)
Fixed
sync-stable-srcinfono longer truncates.SRCINFOwhenmakepkg --printsrcinfofails (e.g. missinginstall=file in test trees)
2.5.0 - 2026-07-10
Added
- Versioned Arch package (
packaging/millennium-helpers) built from the Linux release tarball; release CD bumps pkgver + sha256 alongside Formula/Scoop/Winget/Nix - Scoop
millennium-helpers-gitnightly manifest (tip ofmainvia GitHub archive) - Nix flake packages:
millennium-helpers(release tarball) andmillennium-helpers-git(flake source / latest commit)
Changed
- Arch
-gitrecipe moved topackaging/millennium-helpers-git/(AUR-ready layout)
Fixed
millennium-schedule setupunder sudo verifies passwordless rules for the real user (sudo -U), matching doctor
2.4.0 - 2026-07-10
Added
- Modular
millennium-diaglibraries on Linux (scripts/lib/diag_*.sh) and Windows (scripts/windows/lib/Diag*.ps1) - Install-method detection (pacman/scoop/winget/manual/mixed) with release-tag comparison
- Doctor cleanup of unmanaged leftovers before package-upgrade hints
- PowerShell completion health checks and doctor repair
-Yes/--yesauto scoop/winget/pacman package upgrade when helpers are outdated- JSON fields:
install_method,mixed_install_ok,helpers_checkout,latest_release_tag,completions_ok
Fixed
- Pacman upgrades no longer blocked by unmanaged completion leftovers; doctor refuses to overwrite package-owned files
- Empty
DIAG_TEST_OBSOLETE_LISTcorrectly means “no obsolete candidates” in tests - Winget package ID uses
bolens.millenniumhelpers - Windows PowerShell 5.1 no longer fails to parse diag modules (ASCII-only sources; Scoop profile hook no longer calls
scoopat profile load)
Changed
- Thin loaders: Linux
diag.sh(replacesdiag_report.sh), WindowsDiag.ps1(replacesDiagReport.ps1) - Manual installs sync helper scripts from the latest release tarball/zip instead of
main
2.3.0 - 2026-07-10
Added
- PowerShell Tab completions with installer profile hooks (Windows + Scoop)
- Cross-shell completion tests (bash/zsh/fish/nushell) and nested zsh simulation
- Homebrew bash/zsh completion symlinks and Nushell completion install
- Isolated prefix install/uninstall coverage in
test_install.sh
Fixed
- Fish completions no longer ship bare
VERSION_PLACEHOLDERtokens sudo millennium-schedulereaches the user systemd bus via sharedsysctl_user- Uninstall disables cron as well as systemd/LaunchAgent schedulers
- Windows uninstall removes the
MillenniumUpdatescheduled task - Shared library resolution works from Homebrew-style
prefix/binlayouts - Cron enable/disable under sudo targets the invoking user's crontab
- PKGBUILD conflict cleanup docs include bare
millenniumartifacts
Changed
- Linux installer also installs Nushell completions into the user config path
- Release Windows zip includes
completions/powershell/ - Manual uninstall docs cover PowerShell hooks, state dirs, and Scoop hooks
2.2.1 - 2026-07-10
Security
- Verify SHA256 checksums in piped
install.shagainst release.sha256sidecars - Verify SHA256 checksums during Windows
millennium-upgrade(parity with Linux) - Restrict Windows
config.jsonACLs when writinggithub_token
Fixed
- Include
scripts/millennium-mcp.pyin the trimmed Windows release zip / Scoop CI staging - Update standalone installer tests for trimmed release archive layout
- Republish release assets so packaging checksums match the Windows zip that includes MCP
Changed
- Wire
test_millennium_dispatcher.shandtest_packaging_ci.shinto the CI matrix - Slim local
tests/run_tests.shto source shared assertions and defer packaging gates to CI
2.2.0 - 2026-07-09
See GitHub release notes for v2.2.0.