feat(install-windows): close the terminal at the end, since its PATH is stale

A process reads PATH once, at startup, so the shell the installer ran in can
never resolve ncp. The ending now says that and closes the window. Uses
Stop-Process -Id $PID rather than 'exit', which only closes the window when the
host was started with -File.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
jon
2026-07-22 15:17:59 -05:00
co-authored by Claude Opus 4.8
parent e54864ad34
commit a62b68a909
+22 -10
View File
@@ -13,11 +13,11 @@
Requires Windows 10/11 with winget (App Installer). No reboot needed.
.PARAMETER OwnsWindow
Internal. Set only on the elevated run this script starts for itself, which
gets a console window of its own - so it is allowed to close that window when
it finishes. Without it we assume we are a guest in someone's existing shell
and must not kill it (closing would take their session, and any transcript
they were recording, with it). Not meant to be passed by hand.
Internal. Set only on the elevated run this script starts for itself. That
run has a console of its own, so a fatal error has to pause before the window
disappears with the message on it. In a shell the user already had open the
text stays on screen, and a prompt there is a keystroke nobody asked for.
Not meant to be passed by hand.
#>
param(
[switch]$OwnsWindow
@@ -283,10 +283,22 @@ Write-Host " The app opens at http://localhost:8000" -ForegroundColor White
Write-Host " The AI starts OFF - click 'Start AI' in the sidebar to turn it on." -ForegroundColor White
Write-Host ""
Write-Host " Terminal: open a NEW terminal (PowerShell or cmd), then run ncp help" -ForegroundColor White
Write-Host " (PATH is read at process start, so open windows lack it)" -ForegroundColor DarkGray
Write-Host " ==========================================================" -ForegroundColor Green
Write-Host ""
if ($OwnsWindow) {
Read-Host "Press Enter to close"
exit 0 # -File means the script ending ends powershell.exe, closing the window
}
Write-Host " This window has to close for ncp to work." -ForegroundColor Yellow
Write-Host " A process reads PATH once, when it starts. This shell started before" -ForegroundColor DarkGray
Write-Host " the installer put management\ on PATH, so it will never see ncp no" -ForegroundColor DarkGray
Write-Host " matter what you run here. The next terminal you open will." -ForegroundColor DarkGray
Write-Host ""
Read-Host " Press Enter to close this window (Ctrl+C works too)"
# Stop-Process on our own PID, not `exit`: `exit` only ends the window when the
# host was started with -File. Run interactively - `& .\install-windows.ps1` from
# a shell already open, which is the common case - it would just return to the
# prompt in a session whose PATH is permanently stale. Killing the host closes
# the window either way, which is the point: the user cannot accidentally keep
# using a shell where ncp will never resolve.
# Caveat: a Start-Transcript in this window never reaches Stop-Transcript. The
# transcript is flushed as it is written, so the content survives without the
# closing footer.
Stop-Process -Id $PID