4.8 KiB
Existing REST coverage probe portability — 2026-09-11
Owner: Codex-ytr83r /root/linux_build_plan, assigned by root after the Linux build preparation. Read complete helper and Gitea issue1 through297; ownership announced in comment298. Own only this report and harness/fixtures/rest-coverage/run-coverage-probe.ps1. No WSL, apt, compiler, Cargo, server, GUI or Git mutation. Root owns active setup/build and actual Linux acceptance.
Correction
The existing helper now declares PowerShell7.0 explicitly and splats its unchanged Start-Process arguments. Only Windows adds WindowStyle = 'Hidden'; Linux omits that unsupported parameter. Windows retains hidden launch, identical executable and quoted store/token arguments, process handle, stdout/stderr files and readiness loop. PowerShell7 was already implicitly required by ConvertFrom-Json -AsHashtable and Invoke-WebRequest -SkipHttpErrorCheck; the requirement now fails clearly before creating evidence on older PowerShell.
Microsoft's Start-Process reference documents platform-specific launch behavior and argument joining. A Linux child remains attached to its launching shell; keep the PowerShell invocation alive for the probe. No nohup, detach, shell intermediary or persistent service was added.
Whole-helper platform review
$PSScriptRoot/Join-Pathstill resolve the checked-in fixture and repository independently of working directory.-ServerExeresolves to an explicit supplied path; no.exesuffix, Windows drive, registry or user profile is hardcoded. Store/token arguments retain explicit double quotes for ordinary paths containing spaces. Unusual literal quote characters in paths remain outside the existing argument-quoting contract.- .NET loopback listener, file writes, hashing, JSON conversion and PowerShell7 HTTP APIs are available across platforms. Same localhost port, synthetic local token, HTTP headers/body bytes, response decoding, source comparisons, exact coverage tuples and ETag comparisons remain. No fixture or oracle assertion changed.
- Start/Stop helpers retain the owned Process object; Stop-Process plus WaitForExit and the outer
finallyremain unchanged. Actual stop/start with the same store, restarted model/source/validation equality and ETag equality still execute in the same order. This is process-restart persistence after completed requests, not graceful-shutdown or crash-mid-write acceptance. - Existing limitations remain: ephemeral-port selection closes the reservation before bind (small race); evidence names have one-second resolution and refuse colliding directories; readiness is bounded by40 one-second requests plus250ms delays, not a strict ten-second deadline. Root should run one invocation at a time. No unrelated lifecycle or oracle redesign was introduced.
Validation and exact execution
Windows PowerShell7.6.5 parser accepted the modified file with zero errors, required version7.0 and seven functions. Original and modified ASTs also parsed with zero errors. A normalized AST statement comparison verifies all top-level statements outside Start-ProbeServer remain byte-identical (apart from CRLF normalization); the full fixture has no Git diff. Manual diff review confirms readiness/cleanup inside the changed launch function remain untouched. git diff --check passed. Neither Windows nor Linux server execution was performed, so this is source/static validation only.
After root has a matching native Linux server and PowerShell7 in the ext4 checkout containing this correction:
pwsh -NoProfile -File harness/fixtures/rest-coverage/run-coverage-probe.ps1 \
-ServerExe "$CARGO_TARGET_DIR/debug/arcadia-server"
The command assumes the checkout is current working directory and CARGO_TARGET_DIR is the Linux target directory from the build plan; use the release binary for final package acceptance. From an unrelated directory, pass the absolute path to the helper and binary. No Python module or Pester installation is needed. Linux executable permission and runtime loader must be valid. The repository checkout must be writable for .local/rest-coverage-<timestamp>/; evidence includes supplied executable hash, exact request/response/meta files, separate two-launch logs and terminal result/failure. Preserve the process/store evidence if the actual run fails. Peer Linux installation reports are not acceptance of this local script/binary pair.
This correction supersedes only the build-plan warning that this specific REST coverage helper still needs Linux WindowStyle adaptation. The separate timed-bundle helper and historical Python experiment remain unchanged and retain their previously reported limitations. No package, shared ledger or Wiki ownership taken.