Wisely

Changelog

  1. v3.0.0

    • wisely -Diagnose: one command, the full picture, in the order that actually matters — what's happening, why, is it dangerous, what can you do, is it even worth doing
    • Covers .wslconfig validity, whether autoMemoryReclaim is active, sparseVhd, VHDX size, active distros, and your memory ceiling relative to host RAM
    • -Diagnose -Explain <key>: explains any .wslconfig key Wisely doesn't manage itself, and whether WSL Settings already covers it
    • -Diagnose -History: tells you which history entries are trustworthy and which aren't, instead of a silently sparse report
    • Before interrupting WSL2, Wisely now tries to show which processes in your active distro are actually using the most memory
    • Every number shown states its own confidence — direct, attributed, estimated, or correlated — nothing is displayed without knowing what it actually means
  2. v2.6.0

    • wisely -GuestInfo: a first read from inside your running WSL2 distro (memory available vs. reclaimable cache), under an explicit consent you control
    • wisely -Consent grant/revoke/status: consent is off by default, revocable anytime, and every change is logged in history
    • A closed, documented list of six read-only commands — nothing else is ever executed inside your distro
    • Fixed a bug where the very first history entry after install could be written in the wrong shape
  3. v2.5.0

    • RAM alerts and the -Watch dashboard now detect VmmemWSL as well as vmmem — they were silently blind on recent Windows builds
    • The alert threshold now compares usage against your WSL2 memory ceiling from .wslconfig, not total machine RAM
    • Removed the RAM-freed-at-switch metric — it was being attributed to the wrong profile and wasn't trustworthy (a real replacement is planned later)
    • The active profile's identity is now marked explicitly in .wslconfig instead of guessed by matching memory size
    • .wslconfig writes now merge into the file instead of rewriting it whole — every setting you or another tool (Docker Desktop, WSL Settings) added stays untouched
    • Security fix: profile keys containing newline characters are now rejected, closing a potential .wslconfig injection
  4. v2.4.0

    • Safety guard before shutting down WSL2: warns and asks for confirmation if any distribution is still running, with a -Force flag for scripted use
    • Full documentation overhaul: a clear problem statement, product vision, and a versioned decision log now guide every future release
    • The experimental Terminal.Gui interface prototype was cancelled — no real user need behind it
  5. v2.3.0

    • Pester test suite covering the RAM monitor, the scheduled task script, and the weekly report generator
    • Real post-switch metrics: RAM freed or used, and WSL2 restart time
    • Weekly reports now include the average RAM freed or used per profile
    • wisely -Watch: a live dashboard for RAM/CPU usage, active profile, and the last alert
    • Full repository audit: 15 findings fixed
    • Semgrep added to CI alongside CodeQL; GitHub Actions pinned by commit SHA
  6. v2.2.0

    • swapFile paths now support environment variables (%TEMP%, %USERPROFILE%, %LOCALAPPDATA%)
    • Settings validation hardened (historyMaxEntries, backupEnabled, monitorIntervalSeconds)
    • profiles.json validated against a JSON Schema in CI
    • wisely -Status -Short for prompt integration (Oh My Posh, Windows Terminal)
    • wisely -Snapshot to capture the current state as a new profile
    • CONTRIBUTING.md and issue/PR templates
    • README profile gallery by use case, plus an Oh My Posh snippet
  7. v2.1.0

    • Pester test suite, wired into CI
    • Swap file path validated before writing to .wslconfig
    • Versioned backups with a rolling history (default: 5)
    • Memoized profile config cache, invalidated automatically after every write
    • -Verbose (diff of .wslconfig before/after a switch) and -Quiet flags
    • Fixed a visual truncation bug in the RAM bar shown by wisely -Status
  8. v2.0.0

    • Full refactor: monolithic script into a modular 5-file structure
    • Profiles externalized to data/profiles.json — no more code to edit
    • Clear separation between business logic, UI, monitoring, and reporting
    • Interactive menu with keyboard navigation (arrows + Enter)
    • Automatic .wslconfig backup before every switch
    • Instant rollback via wisely -Rollback
    • Post-write validation with automatic rollback if .wslconfig turns out invalid
    • Full operation history in data/history.json
    • Simulation mode (-DryRun) with no system writes
    • Custom profile creation from the CLI
    • Profile import / export as JSON
    • Background WSL2 RAM monitoring via a Windows scheduled task, no terminal required
    • vmmem process used as a proxy for WSL2 memory consumption
    • Native Windows Toast alerts via the Windows Runtime API
    • Cooldown system: 30 minutes between two alerts
    • -Monitor start|stop|status commands
    • Automatic weekly report every Monday at 9am
    • Manual generation via wisely -Report
    • Automatic rotation: a maximum of 12 reports kept
    • Global PowerShell alias wisely, usable anywhere without changing directory
    • profiles.json validation on startup with actionable error messages
    • wisely -Clean command to purge temporary files
  9. v1.0

    • Switching between the WEB (2GB) and DATA SCIENCE (6GB) profiles
    • Display of the active profile and Windows RAM
    • Basic user help