Initialize-DeveloperMachine.psd1

@{
    RootModule        = 'Initialize-DeveloperMachine.psm1'
    ModuleVersion     = '0.1.2'
    GUID              = 'f3f98b03-1835-4fa7-a0bc-440739c8cee2'
    Author            = 'gonace'
    CompanyName       = 'gonace'
    Copyright         = '(c) gonace. All rights reserved.'
    Description       = 'Bootstrap a Windows developer machine: relocate caches off C:, install winget tools, set up WSL + Docker Desktop. Modular tasks, idempotent, dry-run support.'
    PowerShellVersion = '5.1'
    CompatiblePSEditions = @('Desktop','Core')

    FunctionsToExport = @('Initialize-DeveloperMachine')
    CmdletsToExport   = @()
    VariablesToExport = @()
    AliasesToExport   = @()

    PrivateData = @{
        PSData = @{
            Tags         = @('Developer','Bootstrap','Windows','WSL','DockerDesktop','winget','Junction','Cache','NuGet','npm')
            LicenseUri   = 'https://github.com/gonace/Initialize-DeveloperMachine/blob/master/LICENSE'
            ProjectUri   = 'https://github.com/gonace/Initialize-DeveloperMachine'
            ReleaseNotes = @'
Patch release. All three changes are from real-world install of `v0.1.1` finding rough edges that shipped accidentally.
 
```powershell
Update-Module Initialize-DeveloperMachine -Scope CurrentUser
# or, fresh install:
# Install-Module Initialize-DeveloperMachine -RequiredVersion 0.1.2 -Scope CurrentUser
```
 
## 🐛 Fixes
 
- **Interactive scaffold now actually fires for `Install-Module` users.** `v0.1.1` shipped the bundled `Initialize-DeveloperMachine.config.json` inside the module so the scaffold could read it as a template — but the script's config-file lookup chain *also* looked at `$PSScriptRoot`, which meant the bundled file silently shadowed user-scope config locations. PSGallery installs were running with the maintainer's bundled config and never got the scaffold prompt. Fixed: `$PSScriptRoot` is no longer in the lookup chain. The bundled file is now strictly the template source for the scaffold; the active-config lookup considers user locations only (`-ConfigFile`, `$PWD`, `%AppData%\…`, `~\.config\…`).
 
- **Blocking-process warning no longer offers the misleading `[S] Suspend` option.** PowerShell's default `ShouldContinue` prompt presents `[Y] Yes [N] No [S] Suspend [?] Help`. Several users picked `S` thinking it meant "skip" — it actually drops the user into a *nested* PowerShell sub-shell while the original script (and its single-instance lock) stays alive. Subsequent runs then hit `Another instance of Initialize-DeveloperMachine is already running.` The prompt is now a plain Y/N; the trapdoor option is gone.
 
- **`Ctrl+C` hook for defensive lock-file cleanup.** The existing `try/finally` already releases the lock on Ctrl+C-during-cmdlet (PipelineStoppedException unwinds finally cleanly), but Ctrl+C *while sitting at an interactive prompt* didn't always reach the finally on every host. New `Console.CancelKeyPress` handler disposes the lock stream and removes the lock file directly, idempotent with the finally so neither path leaves stale state behind.
 
See the [README](https://github.com/gonace/Initialize-DeveloperMachine#readme) for full configuration details.
'@

        }
    }
}