2026-11-10T10:48:24.700+00:00 +0.014993 MANIFEST {"id": "P20", "case": "checksum-invalid-digest", "side": "after", "sha": "965b08b3060575186415df240c898a50c8736c5d", "environment": "Ubuntu 24.04.4 LTS Linux x86_64; kernel 6.8.0-117-generic; dash 0.5.12-6ubuntu5 or bash 5.2.21 --posix; curl 8.5.0; GNU wget 1.21.4; BusyBox 1.36.1; Node v26.12.1; PowerShell 7.4.6 Core on Linux (helpers only)", "selected": {"surface": "P", "shell": null, "transport": null, "path": null, "mech": "W", "pty": null}, "selected_transport_version": "curl 8.5.0", "command": "/tmp/lead-32913-r1/evidence-capture/powershell-7.4.6/pwsh -NoLogo -NoProfile -File /tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/observe.ps1", "env": {"HOME": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/home", "T3CODE_HOME": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/home/t3", "T3CODE_INSTALL_BIN_DIR": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/bin", "TMPDIR": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/tmp", "TMP": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/tmp", "TEMP": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/tmp", "TERM": "dumb", "LANG": "C.UTF-8", "LC_ALL": "C.UTF-8", "NO_COLOR": "1", "CAPTURE_TRANSPORT": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/transport.jsonl", "T3CODE_VERSION": "1.2.3", "T3CODE_RELEASE_BASE_URL": "http://127.0.0.1:37323", "PROCESSOR_ARCHITECTURE": "AMD64", "DOTNET_CLI_HOME": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/home", "POWERSHELL_TELEMETRY_OPTOUT": "1", "PATH": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/path", "CAPTURE_STAGING": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/helper-staging", "CAPTURE_URL": "http://127.0.0.1:37323/v1.2.3/SHA256SUMS", "CAPTURE_DEST": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/downloaded", "CAPTURE_SCRIPT": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/install.ps1"}, "original_source_sha256": "d24dd0357bd107d3643aeeb1e80eaebf2cb8d84928a5bbed3682a9a6b491f92c", "executed_source_sha256": "3f38f5f936a8c5fcd273cff18af1a900d100fecd29b8d3610b56f315524588a3", "transforms": ["Set-PSDebug -Trace 1 observes execution of exact helper source, including disposal and request commands", "verbatim prologue and helper slice; real-HTTP synthetic caller; discovery origins only remapped"], "steps": "Start fixture; run command; deliver terminal Ctrl-C only when specified precondition is observed; capture exit, requests, install state, tracked PIDs."}
2026-11-10T10:48:24.703+00:00 +0.018189 SPAWN {"pid": 614682, "pty": false, "stdin": "noninteractive"}
2026-11-10T10:48:25.022+00:00 +0.337009 OUTPUT "DEBUG:    2+  >>>> & $env:CAPTURE_SCRIPT\n\n"
2026-11-10T10:48:25.104+00:00 +0.419032 OUTPUT "DEBUG:   16+  >>>> $ErrorActionPreference = \"Stop\"\n\nDEBUG:   17+  >>>> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12\n\n"
2026-11-10T10:48:25.109+00:00 +0.424366 OUTPUT "DEBUG:   19+  >>>> $repo = \"pingdotgg/t3code\"\n\n"
2026-11-10T10:48:25.110+00:00 +0.425298 OUTPUT "DEBUG:   20+  >>>> $baseUrl = if ($env:T3CODE_RELEASE_BASE_URL) { $env:T3CODE_RELEASE_BASE_URL.TrimEnd(\"/\") } else { \"http://127.0.0.1:37323/$repo/releases/download\" }\n\nDEBUG:   20+ $baseUrl = if ( >>>> $env:T3CODE_RELEASE_BASE_URL) { $env:T3CODE_RELEASE_BASE_URL.TrimEnd(\"/\") } else { \"http://127.0.0.1:37323/$repo/releases/download\" }\n\n"
2026-11-10T10:48:25.111+00:00 +0.426611 OUTPUT "DEBUG:   20+ $baseUrl = if ($env:T3CODE_RELEASE_BASE_URL) {  >>>> $env:T3CODE_RELEASE_BASE_URL.TrimEnd(\"/\") } else { \"http://127.0.0.1:37323/$repo/releases/download\" }\n\n"
2026-11-10T10:48:25.122+00:00 +0.436717 OUTPUT "DEBUG:   21+  >>>> $t3Home = if ($env:T3CODE_HOME) { $env:T3CODE_HOME } else { Join-Path $HOME \".t3\" }\n\nDEBUG:   21+ $t3Home = if ( >>>> $env:T3CODE_HOME) { $env:T3CODE_HOME } else { Join-Path $HOME \".t3\" }\n\nDEBUG:   21+ $t3Home = if ($env:T3CODE_HOME) {  >>>> $env:T3CODE_HOME } else { Join-Path $HOME \".t3\" }\n\nDEBUG:   22+  >>>> $binDir = if ($env:T3CODE_INSTALL_BIN_DIR) { $env:T3CODE_INSTALL_BIN_DIR } else { Join-Path $HOME \".local\\bin\" }\n\nDEBUG:   22+ $binDir = if ( >>>> $env:T3CODE_INSTALL_BIN_DIR) { $env:T3CODE_INSTALL_BIN_DIR } else { Join-Path $HOME \".local\\bin\" }\n\nDEBUG:   22+ $binDir = if ($env:T3CODE_INSTALL_BIN_DIR) {  >>>> $env:T3CODE_INSTALL_BIN_DIR } else { Join-Path $HOME \".local\\bin\" }\n\nDEBUG:   24+  >>>> $binDir = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($binDir)\n\n"
2026-11-10T10:48:25.127+00:00 +0.442450 OUTPUT "DEBUG:   31+  >>>> $terminal = -not [Console]::IsErrorRedirected -and $env:TERM -ne \"dumb\"\n\n"
2026-11-10T10:48:25.131+00:00 +0.445906 OUTPUT "DEBUG:   32+  >>>> $interactive = $terminal -and $Host.UI.SupportsVirtualTerminal\n\nDEBUG:   33+ if ( >>>> $interactive) {\n\nDEBUG:   39+  >>>> $esc = [char]27\n\n"
2026-11-10T10:48:25.132+00:00 +0.447295 OUTPUT "DEBUG:   40+  >>>> $reset = $bold = $muted = $accent = $green = \"\"\n\nDEBUG:   40+ $reset =  >>>> $bold = $muted = $accent = $green = \"\"\n\n"
2026-11-10T10:48:25.132+00:00 +0.447388 OUTPUT "DEBUG:   40+ $reset = $bold =  >>>> $muted = $accent = $green = \"\"\n\nDEBUG:   40+ $reset = $bold = $muted =  >>>> $accent = $green = \"\"\n\nDEBUG:   40+ $reset = $bold = $muted = $accent =  >>>> $green = \"\"\n\n"
2026-11-10T10:48:25.135+00:00 +0.449791 OUTPUT "DEBUG:   41+ if ( >>>> $interactive -and -not $env:NO_COLOR) {\n\nDEBUG:  120+  >>>> $version=\"1.2.3\"; $arch=\"x64\"; $staging=$env:CAPTURE_STAGING; $archive=\"t3-1.2.3-win32-x64.zip\"\n\nDEBUG:  120+ $version=\"1.2.3\";  >>>> $arch=\"x64\"; $staging=$env:CAPTURE_STAGING; $archive=\"t3-1.2.3-win32-x64.zip\"\n\nDEBUG:  120+ $version=\"1.2.3\"; $arch=\"x64\";  >>>> $staging=$env:CAPTURE_STAGING; $archive=\"t3-1.2.3-win32-x64.zip\"\n\nDEBUG:  120+ $version=\"1.2.3\"; $arch=\"x64\"; $staging=$env:CAPTURE_STAGING;  >>>> $archive=\"t3-1.2.3-win32-x64.zip\"\n\nDEBUG:  121+  >>>> New-Item -ItemType Directory -Force -Path $staging | Out-Null\n\n"
2026-11-10T10:48:25.305+00:00 +0.620459 OUTPUT "DEBUG:  123+        >>>> Fetch \"$baseUrl/v$version/SHA256SUMS\" (Join-Path $staging \"SHA256SUMS\")\n\n"
2026-11-10T10:48:25.321+00:00 +0.636638 OUTPUT "DEBUG:   80+ function Fetch([string] $uri, [string] $destination, [switch] $progress)  >>>> {\n\n"
2026-11-10T10:48:25.326+00:00 +0.640772 OUTPUT "DEBUG:   81+   if ( >>>> -not $progress -or -not $interactive) {\n\nDEBUG:   82+      >>>> $ProgressPreference = if ($progress -and $terminal) { \"Continue\" } else { \"SilentlyContinue\" }\n\nDEBUG:   82+     $ProgressPreference = if ( >>>> $progress -and $terminal) { \"Continue\" } else { \"SilentlyContinue\" }\n\nDEBUG:   82+     $ProgressPreference = if ($progress -and $terminal) { \"Continue\" } else {  >>>> \"SilentlyContinue\" }\n\nDEBUG:   83+      >>>> Invoke-Retrying { Invoke-WebRequest -Uri $uri -OutFile $destination -UseBasicParsing }\n\n"
2026-11-10T10:48:25.331+00:00 +0.645706 OUTPUT "DEBUG:   74+ function Invoke-Retrying([scriptblock] $request)  >>>> {\n\nDEBUG:   75+   for ( >>>> $attempt = 1; ; $attempt++) {\n\nDEBUG:   76+     try { return  >>>> & $request }\n\nDEBUG:   83+     Invoke-Retrying  >>>> { Invoke-WebRequest -Uri $uri -OutFile $destination -UseBasicParsing }\n\nDEBUG:   83+     Invoke-Retrying {  >>>> Invoke-WebRequest -Uri $uri -OutFile $destination -UseBasicParsing }\n\n"
2026-11-10T10:48:25.393+00:00 +0.708257 SERVER {"request_t": 0.707769, "event": "request", "path": "/v1.2.3/SHA256SUMS", "endpoint": "sums", "attempt": 1, "status": 200, "behavior": 200, "accept": null}
2026-11-10T10:48:25.396+00:00 +0.711306 SERVER {"event": "body_complete", "endpoint": "sums", "bytes": 181}
2026-11-10T10:48:25.396+00:00 +0.711455 SERVER {"event": "request_handler_end", "endpoint": "sums"}
2026-11-10T10:48:25.415+00:00 +0.729952 OUTPUT "DEBUG:   83+     Invoke-Retrying { Invoke-WebRequest -Uri $uri -OutFile $destination -UseBasicParsing  >>>> }\n\n"
2026-11-10T10:48:25.416+00:00 +0.730778 OUTPUT "DEBUG:   79+  >>>> }\n\nDEBUG:   84+      >>>> return\n\nDEBUG:  119+  >>>> }\n\nDEBUG:  131+      >>>> Fetch \"$baseUrl/v$version/$archive\" (Join-Path $staging $archive) -progress\n\n"
2026-11-10T10:48:25.417+00:00 +0.732480 OUTPUT "DEBUG:   80+ function Fetch([string] $uri, [string] $destination, [switch] $progress)  >>>> {\n\n"
2026-11-10T10:48:25.418+00:00 +0.733264 OUTPUT "DEBUG:   81+   if ( >>>> -not $progress -or -not $interactive) {\n\n"
2026-11-10T10:48:25.420+00:00 +0.735022 OUTPUT "DEBUG:   82+      >>>> $ProgressPreference = if ($progress -and $terminal) { \"Continue\" } else { \"SilentlyContinue\" }\n\n"
2026-11-10T10:48:25.420+00:00 +0.735110 OUTPUT "DEBUG:   82+     $ProgressPreference = if ( >>>> $progress -and $terminal) { \"Continue\" } else { \"SilentlyContinue\" }\n\nDEBUG:   82+     $ProgressPreference = if ($progress -and $terminal) { \"Continue\" } else {  >>>> \"SilentlyContinue\" }\n"
2026-11-10T10:48:25.421+00:00 +0.736054 OUTPUT "\n"
2026-11-10T10:48:25.421+00:00 +0.736464 OUTPUT "DEBUG:   83+      >>>> Invoke-Retrying { Invoke-WebRequest -Uri $uri -OutFile $destination -UseBasicParsing }\n\n"
2026-11-10T10:48:25.422+00:00 +0.736837 OUTPUT "DEBUG:   74+ function Invoke-Retrying([scriptblock] $request)  >>>> {\n\nDEBUG:   75+   for ( >>>> $attempt = 1; ; $attempt++) {\n\n"
2026-11-10T10:48:25.422+00:00 +0.736875 OUTPUT "DEBUG:   76+     try { return  >>>> & $request }\n\n"
2026-11-10T10:48:25.444+00:00 +0.759433 OUTPUT "DEBUG:   83+     Invoke-Retrying  >>>> { Invoke-WebRequest -Uri $uri -OutFile $destination -UseBasicParsing }\n"
2026-11-10T10:48:25.445+00:00 +0.760658 OUTPUT "\nDEBUG:   83+     Invoke-Retrying {  >>>> Invoke-WebRequest -Uri $uri -OutFile $destination -UseBasicParsing }\n\n"
2026-11-10T10:48:25.453+00:00 +0.767860 SERVER {"request_t": 0.767369, "event": "request", "path": "/v1.2.3/t3-1.2.3-win32-x64.zip", "endpoint": "archive", "attempt": 1, "status": 200, "behavior": 200, "accept": null}
2026-11-10T10:48:25.454+00:00 +0.768810 SERVER {"event": "body_complete", "endpoint": "archive", "bytes": 262677}
2026-11-10T10:48:25.454+00:00 +0.768886 SERVER {"event": "request_handler_end", "endpoint": "archive"}
2026-11-10T10:48:25.471+00:00 +0.785756 OUTPUT "DEBUG:   83+     Invoke-Retrying { Invoke-WebRequest -Uri $uri -OutFile $destination -UseBasicParsing  >>>> }\n\nDEBUG:   79+  >>>> }\n\nDEBUG:   84+      >>>> return\n\nDEBUG:  119+  >>>> }\n\nDEBUG:  133+      >>>> Step \"Verifying the download...\"\n\nDEBUG:   45+ function Step([string] $message)  >>>> {\n\nDEBUG:   46+   if ( >>>> $interactive) { [Console]::Error.Write(\"`r$esc[2K  $muted$message$reset\") }\n\nDEBUG:   47+   else {  >>>> [Console]::Error.WriteLine(\"  $message\") }\n\n"
2026-11-10T10:48:25.473+00:00 +0.787907 OUTPUT "  Verifying the download...\nDEBUG:   48+  >>>> }\n\nDEBUG:  135+      >>>> $expected = (Get-Content (Join-Path $staging \"SHA256SUMS\") | Where-Object { $_ -match \"\\s\\*?$([regex]::Escape($archive))$\" } | Select-Object -First 1)\n\n"
2026-11-10T10:48:25.481+00:00 +0.796666 OUTPUT "DEBUG:  135+     $expected = (Get-Content (Join-Path $staging \"SHA256SUMS\") | Where-Object  >>>> { $_ -match \"\\s\\*?$([regex]::Escape($archive))$\" } | Select-Object -First 1)\n\nDEBUG:  135+     $expected = (Get-Content (Join-Path $staging \"SHA256SUMS\") | Where-Object {  >>>> $_ -match \"\\s\\*?$([regex]::Escape($archive))$\" } | Select-Object -First 1)\n\n"
2026-11-10T10:48:25.482+00:00 +0.796847 OUTPUT "DEBUG:  135+     $expected = (Get-Content (Join-Path $staging \"SHA256SUMS\") | Where-Object { $_ -match \"\\s\\*?$( >>>> [regex]::Escape($archive))$\" } | Select-Object -First 1)\n\n"
2026-11-10T10:48:25.491+00:00 +0.806234 OUTPUT "DEBUG:  135+     $expected = (Get-Content (Join-Path $staging \"SHA256SUMS\") | Where-Object { $_ -match \"\\s\\*?$([regex]::Escape($archive))$\"  >>>> } | Select-Object -First 1)\n\n"
2026-11-10T10:48:25.495+00:00 +0.809805 OUTPUT "DEBUG:  135+     $expected = (Get-Content (Join-Path $staging \"SHA256SUMS\") | Where-Object  >>>> { $_ -match \"\\s\\*?$([regex]::Escape($archive))$\" } | Select-Object -First 1)\n\nDEBUG:  135+     $expected = (Get-Content (Join-Path $staging \"SHA256SUMS\") | Where-Object {  >>>> $_ -match \"\\s\\*?$([regex]::Escape($archive))$\" } | Select-Object -First 1)\n\nDEBUG:  135+     $expected = (Get-Content (Join-Path $staging \"SHA256SUMS\") | Where-Object { $_ -match \"\\s\\*?$( >>>> [regex]::Escape($archive))$\" } | Select-Object -First 1)\n\nDEBUG:  135+     $expected = (Get-Content (Join-Path $staging \"SHA256SUMS\") | Where-Object { $_ -match \"\\s\\*?$([regex]::Escape($archive))$\"  >>>> } | Select-Object -First 1)\n\n"
2026-11-10T10:48:25.496+00:00 +0.811105 OUTPUT "DEBUG:  136+     if ( >>>> -not $expected) { Fail \"$archive is not listed in SHA256SUMS\" }\n\n"
2026-11-10T10:48:25.497+00:00 +0.812629 OUTPUT "DEBUG:  137+      >>>> $expected = ($expected -split \"\\s+\")[0].ToLowerInvariant()\n\n"
2026-11-10T10:48:25.502+00:00 +0.817709 OUTPUT "DEBUG:  138+      >>>> $actual = (Get-FileHash -Algorithm SHA256 (Join-Path $staging $archive)).Hash.ToLowerInvariant()\n\n"
2026-11-10T10:48:25.512+00:00 +0.827069 OUTPUT "DEBUG:  139+     if ( >>>> $actual -ne $expected) { Fail \"checksum mismatch for $archive\" }\n"
2026-11-10T10:48:25.515+00:00 +0.830634 OUTPUT "\nDEBUG:  139+     if ($actual -ne $expected) {  >>>> Fail \"checksum mismatch for $archive\" }\n\nDEBUG:   26+ function Fail([string] $message)  >>>> {\n\nDEBUG:   27+    >>>> Write-Error \"t3 install: $message\"\n\n"
2026-11-10T10:48:25.783+00:00 +1.098309 OUTPUT "Write-Error: /tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P20-checksum-invalid-digest/after/install.ps1:139\nLine |\n 139 |  …  if ($actual -ne $expected) { Fail \"checksum mismatch for $archive\" }\n     |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n     | t3 install: checksum mismatch for t3-1.2.3-win32-x64.zip\n"
2026-11-10T10:48:25.870+00:00 +1.184938 SERVER_STATE_BEFORE_DRIVER_CLEANUP {"active_handlers": 0}
2026-11-10T10:48:25.873+00:00 +1.188066 RESULT {"exit_code": 1, "elapsed_seconds": 1.184866, "requests": 2, "interrupt_sent": false, "timeout": false, "state": {"marker": false, "files": [{"path": "home/.cache/powershell/StartupProfileData-NonInteractive", "bytes": 100268, "symlink": null}], "helper_outputs": [{"path": "helper-staging/t3-1.2.3-win32-x64.zip", "bytes": 262677}, {"path": "helper-staging/SHA256SUMS", "bytes": 181}], "staging": [], "sidecars": [], "tracked_downloader_pids": [], "remaining_tracked_downloaders": []}, "symlink_executable_check": null}
