Files
herdr/scripts/windows_check.ps1
T
Can Celik 207be3c771 refactor: render the shell in the client (#3487)
* feat: add opt-in client-rendered shell

* feat: add client-owned shell mouse controls

* feat: complete client-owned shell chrome

* feat: add client-owned shell settings and notifications

* feat: run client shell custom commands

* feat: render popup terminals in client shell

* feat: add client-owned scrollback and copy mode

* fix: preserve client worktree trust defaults

* feat: render startup diagnostics in client shell

* feat: render onboarding in client shell

* feat: render product announcements in client shell

* feat: render release notes in client shell

* feat: render mobile switcher in client shell

* feat: render kitty graphics in client shell

* fix: preserve client shell lifecycle coherence

* refactor: route client shell commands through endpoint connections

* refactor: make the client-rendered shell the default

* refactor: remove monolithic launch mode

* refactor: complete client-rendered shell cutover

* perf: retain client pane surface updates

* perf: scale retained pane surface updates

* perf: remove remote pane input latency

* test: make client shell checks platform-independent

* fix: prevent client timer starvation

* test: fix client shell platform gates

* test: accept retained surfaces in cross-area checks

* test: make client mode assertions platform-neutral

* fix: badge only outdated integrations
2026-09-01 15:48:22 +03:00

103 lines
2.9 KiB
PowerShell

param(
[ValidateSet("lint", "check")]
[string]$Mode = "check"
)
$ErrorActionPreference = "Stop"
function Invoke-Checked {
param([string]$Command, [string[]]$Arguments)
& $Command @Arguments
if ($LASTEXITCODE -ne 0) {
throw "command failed with exit code $LASTEXITCODE`: $Command $($Arguments -join ' ')"
}
}
function Invoke-CargoWithZigCacheRecovery {
param([string[]]$Arguments)
& cargo @Arguments
if ($LASTEXITCODE -eq 0) {
return
}
Write-Warning "cargo compile failed; clearing Zig build caches and retrying once"
Remove-Item -Recurse -Force .zig-cache -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force vendor/libghostty-vt/.zig-cache -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force vendor/libghostty-vt/zig-out -ErrorAction SilentlyContinue
Invoke-Checked cargo $Arguments
}
function Invoke-CargoTestFilter {
param(
[Parameter(Mandatory)]
[string]$Filter,
[switch]$Exact
)
$commonArguments = @(
"test",
"--locked",
"--target",
"x86_64-pc-windows-msvc",
"--bin",
"herdr",
$Filter
)
$harnessArguments = @("--list")
if ($Exact) {
$harnessArguments += "--exact"
}
$listArguments = $commonArguments + @("--") + $harnessArguments
$listOutput = @(& cargo @listArguments)
if ($LASTEXITCODE -ne 0) {
throw "could not enumerate tests for filter '$Filter': $($listOutput -join [Environment]::NewLine)"
}
$testNames = @(
foreach ($line in $listOutput) {
$match = [regex]::Match([string]$line, '^\s*(\S+): test\s*$')
if ($match.Success) {
$match.Groups[1].Value
}
}
)
if ($testNames.Count -eq 0) {
throw "test filter '$Filter' selected zero tests"
}
Write-Host "Running $($testNames.Count) test(s) for '$Filter'"
$runArguments = $commonArguments
if ($Exact) {
$runArguments += @("--", "--exact")
}
Invoke-Checked cargo $runArguments
}
Invoke-Checked rustup @("target", "add", "x86_64-pc-windows-msvc")
Invoke-Checked cargo @("fmt", "--check")
Invoke-CargoWithZigCacheRecovery @(
"clippy",
"--bin",
"herdr",
"--locked",
"--target",
"x86_64-pc-windows-msvc",
"--",
"-D",
"warnings"
)
if ($Mode -eq "lint") {
return
}
Invoke-CargoTestFilter "windows_"
Invoke-CargoTestFilter "server::client_transport::tests"
Invoke-CargoTestFilter "input::lease::tests::duplicate_physical_press_normalizes_for_forwarded_and_consumed_leases" -Exact
Invoke-CargoTestFilter "client::shell::tests::input_domain::physical_release_uses_the_leased_press_code_with_current_modifiers" -Exact
Invoke-CargoTestFilter "client::shell::tests::input_domain::pane_key_release_keeps_the_press_target" -Exact
Invoke-Checked cargo @("build", "--locked", "--target", "x86_64-pc-windows-msvc")