param ( [string]$Port = "3000" ) $HealthUrl = "http://127.0.0.1:$Port/ping" $UiUrl = "http://127.0.0.1:$Port/?t=$(Get-Random)" $ExpectedContent = "open-color" # Basic sanity check that we are serving the updated UI Write-Host "Verifying server HEALTH at $HealthUrl..." -ForegroundColor Cyan for ($i = 1; $i -le 40; $i++) { try { $healthResponse = Invoke-WebRequest -Uri $HealthUrl -UseBasicParsing -ErrorAction Stop if ($healthResponse.StatusCode -eq 200) { Write-Host "✅ Server /ping is UP! (Attempt $i)" -ForegroundColor Green Write-Host "Verifying UI payload at $UiUrl..." -ForegroundColor Cyan $uiResponse = Invoke-WebRequest -Uri $UiUrl -UseBasicParsing -ErrorAction Stop if ($uiResponse.Content -match $ExpectedContent) { Write-Host "✅ Server is serving the correct UI payload!" -ForegroundColor Green exit 0 } else { Write-Host "⚠️ Server is healthy but UI serving old cached content. Retrying..." -ForegroundColor Yellow } } } catch { Write-Host "⏳ Server /ping not responding yet... (Attempt $i)" -ForegroundColor Yellow } Start-Sleep -Seconds 1 } Write-Error "❌ Deployment verification failed! /ping endpoint unreachable after 40 seconds." exit 1