2026-11-10T10:48:58.327+00:00 +0.035506 MANIFEST {"id": "P17", "case": "httpclient-truncated-H", "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": "H", "pty": true}, "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/P17-httpclient-truncated-H/after/observe.ps1", "env": {"HOME": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P17-httpclient-truncated-H/after/home", "T3CODE_HOME": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P17-httpclient-truncated-H/after/home/t3", "T3CODE_INSTALL_BIN_DIR": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P17-httpclient-truncated-H/after/bin", "TMPDIR": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P17-httpclient-truncated-H/after/tmp", "TMP": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P17-httpclient-truncated-H/after/tmp", "TEMP": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P17-httpclient-truncated-H/after/tmp", "TERM": "xterm-256color", "LANG": "C.UTF-8", "LC_ALL": "C.UTF-8", "NO_COLOR": "1", "CAPTURE_TRANSPORT": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P17-httpclient-truncated-H/after/transport.jsonl", "T3CODE_VERSION": "1.2.3", "T3CODE_RELEASE_BASE_URL": "http://127.0.0.1:37509", "PROCESSOR_ARCHITECTURE": "AMD64", "DOTNET_CLI_HOME": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P17-httpclient-truncated-H/after/home", "POWERSHELL_TELEMETRY_OPTOUT": "1", "PATH": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P17-httpclient-truncated-H/after/path", "CAPTURE_STAGING": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P17-httpclient-truncated-H/after/helper-staging", "CAPTURE_URL": "http://127.0.0.1:37509/v1.2.3/t3-1.2.3-linux-x64.tar.gz", "CAPTURE_DEST": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P17-httpclient-truncated-H/after/downloaded", "CAPTURE_SCRIPT": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P17-httpclient-truncated-H/after/install.ps1"}, "original_source_sha256": "d24dd0357bd107d3643aeeb1e80eaebf2cb8d84928a5bbed3682a9a6b491f92c", "executed_source_sha256": "85cb373adef8995b8af5b773ede8f4ea036b55eb61fe6b173f308e61e26f973d", "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:58.346+00:00 +0.055390 SPAWN {"pid": 615833, "pty": true, "stdin": "PTY"}
2026-11-10T10:48:58.566+00:00 +0.274723 OUTPUT "\u001b[?1h\u001b="
2026-11-10T10:48:58.796+00:00 +0.504230 OUTPUT "DEBUG:    2+  >>>> & $env:CAPTURE_SCRIPT\r\n\r\n"
2026-11-10T10:48:58.893+00:00 +0.601319 OUTPUT "DEBUG:   16+  >>>> $ErrorActionPreference = \"Stop\"\r\n\r\nDEBUG:   17+  >>>> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12\r\n\r\n"
2026-11-10T10:48:58.899+00:00 +0.607194 OUTPUT "DEBUG:   19+  >>>> $repo = \"pingdotgg/t3code\"\r\n\r\nDEBUG:   20+  >>>> $baseUrl = if ($env:T3CODE_RELEASE_BASE_URL) { $env:T3CODE_RELEASE_BASE_URL.TrimEnd(\"/\") } else { \"http://127.0.0.1:37509/$repo/releases/download\" }\r\n\r\nDEBUG:   20+ $baseUrl = if ( >>>> $env:T3CODE_RELEASE_BASE_URL) { $env:T3CODE_RELEASE_BASE_URL.TrimEnd(\"/\") } else { \"http://127.0.0.1:37509/$repo/releases/download\" }\r\n\r\n"
2026-11-10T10:48:58.900+00:00 +0.608664 OUTPUT "DEBUG:   20+ $baseUrl = if ($env:T3CODE_RELEASE_BASE_URL) {  >>>> $env:T3CODE_RELEASE_BASE_URL.TrimEnd(\"/\") } else { \"http://127.0.0.1:37509/$repo/releases/download\" }\r\n\r\n"
2026-11-10T10:48:58.913+00:00 +0.621920 OUTPUT "DEBUG:   21+  >>>> $t3Home = if ($env:T3CODE_HOME) { $env:T3CODE_HOME } else { Join-Path $HOME \".t3\" }\r\n\r\n"
2026-11-10T10:48:58.920+00:00 +0.628257 OUTPUT "DEBUG:   21+ $t3Home = if ( >>>> $env:T3CODE_HOME) { $env:T3CODE_HOME } else { Join-Path $HOME \".t3\" }\r\n\r\nDEBUG:   21+ $t3Home = if ($env:T3CODE_HOME) {  >>>> $env:T3CODE_HOME } else { Join-Path $HOME \".t3\" }\r\n\r\nDEBUG:   22+  >>>> $binDir = if ($env:T3CODE_INSTALL_BIN_DIR) { $env:T3CODE_INSTALL_BIN_DIR } else { Join-Path $HOME \".local\\bin\" }\r\n\r\nDEBUG:   22+ $binDir = if ( >>>> $env:T3CODE_INSTALL_BIN_DIR) { $env:T3CODE_INSTALL_BIN_DIR } else { Join-Path $HOME \".local\\bin\" }\r\n\r\nDEBUG:   22+ $binDir = if ($env:T3CODE_INSTALL_BIN_DIR) {  >>>> $env:T3CODE_INSTALL_BIN_DIR } else { Join-Path $HOME \".local\\bin\" }\r\n\r\nDEBUG:   24+  >>>> $binDir = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($binDir)\r\n\r\n"
2026-11-10T10:48:58.925+00:00 +0.633400 OUTPUT "DEBUG:   31+  >>>> $terminal = -not [Console]::IsErrorRedirected -and $env:TERM -ne \"dumb\"\r\n\r\n"
2026-11-10T10:48:58.934+00:00 +0.643189 OUTPUT "DEBUG:   32+  >>>> $interactive = $terminal -and $Host.UI.SupportsVirtualTerminal\r\n\r\n"
2026-11-10T10:48:58.941+00:00 +0.649577 OUTPUT "DEBUG:   33+ if ( >>>> $interactive) {\r\n\r\nDEBUG:   35+    >>>> $glyphs = -join [char[]](0x2588, 0x2580, 0x2584, 0x25A0, 0x00B7)\r\n\r\n"
2026-11-10T10:48:58.947+00:00 +0.655320 OUTPUT "DEBUG:   36+    >>>> $encoding = [Console]::Error.Encoding\r\n\r\nDEBUG:   37+    >>>> $interactive = $encoding.GetString($encoding.GetBytes($glyphs)) -eq $glyphs\r\n\r\n"
2026-11-10T10:48:58.953+00:00 +0.661808 OUTPUT "DEBUG:   39+  >>>> $esc = [char]27\r\n\r\n"
2026-11-10T10:48:58.955+00:00 +0.663191 OUTPUT "DEBUG:   40+  >>>> $reset = $bold = $muted = $accent = $green = \"\"\r\n\r\nDEBUG:   40+ $reset =  >>>> $bold = $muted = $accent = $green = \"\"\r\n\r\nDEBUG:   40+ $reset = $bold =  >>>> $muted = $accent = $green = \"\"\r\n\r\nDEBUG:   40+ $reset = $bold = $muted =  >>>> $accent = $green = \"\"\r\n\r\nDEBUG:   40+ $reset = $bold = $muted = $accent =  >>>> $green = \"\"\r\n\r\nDEBUG:   41+ if ( >>>> $interactive -and -not $env:NO_COLOR) {\r\n\r\n"
2026-11-10T10:48:58.956+00:00 +0.665132 OUTPUT "DEBUG:  120+  >>>> [Console]::Error.WriteLine(\"CAPTURE_DISPATCH terminal=$terminal interactive=$interactive mechanism=H encoding=$([Console]::Error.Encoding.WebName)\")"
2026-11-10T10:48:58.958+00:00 +0.666684 OUTPUT "\r\n\r\n"
2026-11-10T10:48:58.960+00:00 +0.668409 OUTPUT "DEBUG:  120+ [Console]::Error.WriteLine(\"CAPTURE_DISPATCH terminal=$terminal interactive=$interactive mechanism=H encoding=$( >>>> [Console]::Error.Encoding.WebName)\")\r\n\r\n"
2026-11-10T10:48:58.969+00:00 +0.677364 OUTPUT "CAPTURE_DISPATCH terminal=True interactive=True mechanism=H encoding=utf-8\r\nDEBUG:  122+  >>>> Fetch $env:CAPTURE_URL $env:CAPTURE_DEST -progress\r\n\r\n"
2026-11-10T10:48:58.988+00:00 +0.696346 OUTPUT "DEBUG:   80+ function Fetch([string] $uri, [string] $destination, [switch] $progress)  >>>> {\r\n\r\nDEBUG:   81+   if ( >>>> -not $progress -or -not $interactive) {\r\n\r\nDEBUG:   86+    >>>> Add-Type -AssemblyName System.Net.Http\r\n\r\n"
2026-11-10T10:48:59.146+00:00 +0.854722 OUTPUT "DEBUG:   87+    >>>> $client = New-Object System.Net.Http.HttpClient\r\n\r\n"
2026-11-10T10:48:59.149+00:00 +0.858026 OUTPUT "DEBUG:   88+    >>>> $response = $source = $file = $null\r\n\r\nDEBUG:   88+   $response =  >>>> $source = $file = $null\r\n\r\nDEBUG:   88+   $response = $source =  >>>> $file = $null\r\n\r\nDEBUG:   90+     for ( >>>> $attempt = 1; ; $attempt++) {\r\n\r\nDEBUG:   91+       try {  >>>> $response = $client.GetAsync($uri, [System.Net.Http.HttpCompletionOption]::ResponseHeadersRead).GetAwaiter().GetResult() }\r\n\r\n"
2026-11-10T10:48:59.208+00:00 +0.916871 SERVER {"request_t": 0.9154, "event": "request", "path": "/v1.2.3/t3-1.2.3-linux-x64.tar.gz", "endpoint": "archive", "attempt": 1, "status": 200, "behavior": "truncate", "accept": null}
2026-11-10T10:48:59.212+00:00 +0.920687 SERVER {"event": "request_handler_end", "endpoint": "archive"}
2026-11-10T10:48:59.237+00:00 +0.945339 OUTPUT "DEBUG:   93+       if ( >>>> $response.IsSuccessStatusCode -or -not (Wait-Retry ([int]$response.StatusCode) $attempt)) { break }\r\n\r\nDEBUG:   93+       if ($response.IsSuccessStatusCode -or -not (Wait-Retry ([int]$response.StatusCode) $attempt)) {  >>>> break }\r\n\r\nDEBUG:   96+      >>>> $response.EnsureSuccessStatusCode() | Out-Null\r\n\r\n"
2026-11-10T10:48:59.247+00:00 +0.955688 OUTPUT "DEBUG:   97+      >>>> $source = $response.Content.ReadAsStreamAsync().GetAwaiter().GetResult()\r\n\r\n"
2026-11-10T10:48:59.314+00:00 +1.023211 OUTPUT "DEBUG:   98+      >>>> $file = [IO.File]::Create($destination)\r\n\r\n"
2026-11-10T10:48:59.317+00:00 +1.025361 OUTPUT "DEBUG:   99+      >>>> $buffer = New-Object byte[] 65536\r\n\r\n"
2026-11-10T10:48:59.321+00:00 +1.029520 OUTPUT "DEBUG:  100+      >>>> $bytes = 0L\r\n\r\n"
2026-11-10T10:48:59.323+00:00 +1.031578 OUTPUT "DEBUG:  101+      >>>> $clock = [Diagnostics.Stopwatch]::StartNew()\r\n\r\n"
2026-11-10T10:48:59.328+00:00 +1.036201 OUTPUT "DEBUG:  102+      >>>> Draw-Download 0 $response.Content.Headers.ContentLength\r\n\r\n"
2026-11-10T10:48:59.339+00:00 +1.047293 OUTPUT "DEBUG:   49+ function Draw-Download([long] $bytes, [long] $total)  >>>> {\r\n\r\n"
2026-11-10T10:48:59.339+00:00 +1.047513 OUTPUT "DEBUG:   50+   if ( >>>> -not $interactive) { return }\r\n\r\n"
2026-11-10T10:48:59.339+00:00 +1.047808 OUTPUT "DEBUG:   51+    >>>> $columns = [Console]::WindowWidth\r\n\r\nDEBUG:   52+   if ( >>>> $columns -le 0) { $columns = 80 }\r\n\r\n"
2026-11-10T10:48:59.341+00:00 +1.050120 OUTPUT "DEBUG:   53+   if ( >>>> $total -gt 0 -and $columns -ge 9) {\r\n\r\n"
2026-11-10T10:48:59.343+00:00 +1.051773 OUTPUT "DEBUG:   54+      >>>> $percent = [Math]::Min(100, [Math]::Floor($bytes * 100.0 / $total))\r\n\r\n"
2026-11-10T10:48:59.358+00:00 +1.066456 OUTPUT "DEBUG:   55+      >>>> $width = [Math]::Min(32, $columns - 8)"
2026-11-10T10:48:59.365+00:00 +1.073244 OUTPUT "\r\n\r\n"
2026-11-10T10:48:59.365+00:00 +1.074016 OUTPUT "DEBUG:   56+      >>>> $filled = [int][Math]::Floor($percent * $width / 100)\r\n\r\n"
2026-11-10T10:48:59.370+00:00 +1.078651 OUTPUT "DEBUG:   57+      >>>> $bar = ([string][char]0x25A0) * $filled"
2026-11-10T10:48:59.373+00:00 +1.081190 OUTPUT "\r\n\r\n"
2026-11-10T10:48:59.377+00:00 +1.086148 OUTPUT "DEBUG:   58+      >>>> $rest = ([string][char]0x00B7) * ($width - $filled)\r\n\r\n"
2026-11-10T10:48:59.380+00:00 +1.088711 OUTPUT "DEBUG:   59+      >>>> $sizes = (\"  {0:F1} / {1:F1} MB\" -f ($bytes / 1MB), ($total / 1MB))\r\n\r\n"
2026-11-10T10:48:59.387+00:00 +1.095317 OUTPUT "DEBUG:   60+     if ( >>>> $width + 7 + $sizes.Length -ge $columns) { $sizes = \"\" }\r\n\r\nDEBUG:   61+      >>>> [Console]::Error.Write((\"`r$esc[2K  $accent$bar$reset$muted$rest$reset {0,3}%\" -f $percent) + \"$muted$sizes$reset\")\r\n\r\n"
2026-11-10T10:48:59.388+00:00 +1.096987 OUTPUT "\r\u001b[2K  ································   0%  0.0 / 0.3 MBDEBUG:   66+  >>>> }\r\n\r\n"
2026-11-10T10:48:59.389+00:00 +1.097400 OUTPUT "DEBUG:  103+     while ( >>>> ($count = $source.Read($buffer, 0, $buffer.Length)) -gt 0) {\r\n\r\nDEBUG:  103+     while (( >>>> $count = $source.Read($buffer, 0, $buffer.Length)) -gt 0) {\r\n\r\n"
2026-11-10T10:48:59.395+00:00 +1.104104 OUTPUT "DEBUG:  104+        >>>> $file.Write($buffer, 0, $count)\r\n\r\n"
2026-11-10T10:48:59.402+00:00 +1.110395 OUTPUT "DEBUG:  105+        >>>> $bytes += $count\r\n\r\nDEBUG:  106+       if ( >>>> $clock.ElapsedMilliseconds -ge 100) {\r\n\r\nDEBUG:  103+     while ( >>>> ($count = $source.Read($buffer, 0, $buffer.Length)) -gt 0) {\r\n\r\nDEBUG:  103+     while (( >>>> $count = $source.Read($buffer, 0, $buffer.Length)) -gt 0) {\r\n\r\nDEBUG:  104+        >>>> $file.Write($buffer, 0, $count)\r\n\r\nDEBUG:  105+        >>>> $bytes += $count\r\n\r\nDEBUG:  106+       if ( >>>> $clock.ElapsedMilliseconds -ge 100) {\r\n\r\nDEBUG:  103+     while ( >>>> ($count = $source.Read($buffer, 0, $buffer.Length)) -gt 0) {\r\n\r\nDEBUG:  103+     while (( >>>> $count = $source.Read($buffer, 0, $buffer.Length)) -gt 0) {\r\n\r\nDEBUG:  104+        >>>> $file.Write($buffer, 0, $count)\r\n\r\nDEBUG:  105+        >>>> $bytes += $count\r\n\r\nDEBUG:  106+       if ( >>>> $clock.ElapsedMilliseconds -ge 100) {\r\n\r\nDEBUG:  103+     while ( >>>> ($count = $source.Read($buffer, 0, $buffer.Length)) -gt 0) {\r\n\r\nDEBUG:  103+     while (( >>>> $count = $source.Read($buffer, 0, $buffer.Length)) -gt 0) {\r\n\r\nDEBUG:  104+        >>>> $file.Write($buffer, 0, $count)\r\n\r\nDEBUG:  105+        >>>> $bytes += $count\r\n\r\nDEBUG:  106+       if ( >>>> $clock.ElapsedMilliseconds -ge 100) {\r\n\r\nDEBUG:  103+     while ( >>>> ($count = $source.Read($buffer, 0, $buffer.Length)) -gt 0) {\r\n\r\nDEBUG:  103+     while (( >>>> $count = $source.Read($buffer, 0, $buffer.Length)) -gt 0) {\r\n\r\n"
2026-11-10T10:48:59.422+00:00 +1.130943 OUTPUT "DEBUG:  114+     if ( >>>> $file) { $file.Dispose() }\r\n\r\nDEBUG:  114+     if ($file) {  >>>> $file.Dispose() }\r\n\r\nDEBUG:  115+     if ( >>>> $source) { $source.Dispose() }\r\n\r\nDEBUG:  115+     if ($source) {  >>>> $source.Dispose() }\r\n\r\n"
2026-11-10T10:48:59.429+00:00 +1.137654 OUTPUT "DEBUG:  116+     if ( >>>> $response) { $response.Dispose() }\r\n\r\n"
2026-11-10T10:48:59.431+00:00 +1.139218 OUTPUT "DEBUG:  116+     if ($response) {  >>>> $response.Dispose() }\r\n\r\n"
2026-11-10T10:48:59.433+00:00 +1.141268 OUTPUT "DEBUG:  117+      >>>> $client.Dispose()\r\n\r\n"
2026-11-10T10:48:59.437+00:00 +1.145329 OUTPUT "DEBUG:  127+    >>>> [Console]::Error.WriteLine(\"EXCEPTION_TYPE=$($_.Exception.GetType().FullName)\")\r\n\r\nDEBUG:  127+   [Console]::Error.WriteLine(\"EXCEPTION_TYPE=$( >>>> $_.Exception.GetType().FullName)\")\r\n\r\n"
2026-11-10T10:48:59.447+00:00 +1.155784 OUTPUT "EXCEPTION_TYPE=System.Management.Automation.MethodInvocationException\r\nDEBUG:  128+    >>>> [Console]::Error.WriteLine(\"ORIGINAL_STATUS=$([int]$_.Exception.Response.StatusCode)\")\r\n\r\nDEBUG:  128+   [Console]::Error.WriteLine(\"ORIGINAL_STATUS=$( >>>> [int]$_.Exception.Response.StatusCode)\")\r\n\r\n"
2026-11-10T10:48:59.454+00:00 +1.162801 OUTPUT "ORIGINAL_STATUS=0\r\n"
2026-11-10T10:48:59.454+00:00 +1.163193 OUTPUT "DEBUG:  129+    >>>> [Console]::Error.WriteLine(\"STATUS_VALUE=$($_.Exception.Response.StatusCode.value__)\")\r\n\r\nDEBUG:  129+   [Console]::Error.WriteLine(\"STATUS_VALUE=$( >>>> $_.Exception.Response.StatusCode.value__)\")\r\n\r\n"
2026-11-10T10:48:59.461+00:00 +1.170143 OUTPUT "STATUS_VALUE=\r\nDEBUG:  130+    >>>> [Console]::Error.WriteLine(\"EXCEPTION=$($_.Exception.Message)\")\r\n\r\nDEBUG:  130+   [Console]::Error.WriteLine(\"EXCEPTION=$( >>>> $_.Exception.Message)\")\r\n\r\n"
2026-11-10T10:48:59.465+00:00 +1.174125 OUTPUT "EXCEPTION=Exception calling \"Read\" with \"3\" argument(s): \"The response ended prematurely, with at least 131420 additional bytes expected. (ResponseEnded)\"\r\nDEBUG:  131+    >>>> throw\r\n\r\nDEBUG:  132+ } finally {  >>>> [Console]::Error.WriteLine(\"CAPTURE_CALLER_FINALLY\") }\r\n\r\nCAPTURE_CALLER_FINALLY\r\n"
2026-11-10T10:48:59.588+00:00 +1.296874 OUTPUT "ParentContainsErrorRecordException: /tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P17-httpclient-truncated-H/after/install.ps1:103\r\nLine |\r\n 103 |      while (($count = $source.Read($buffer, 0, $buffer.Length)) -gt 0) …\r\n     |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n     | Exception calling \"Read\" with \"3\" argument(s): \"The response ended prematurely, with at least 131420 additional\r\n     | bytes expected. (ResponseEnded)\"\r\n"
2026-11-10T10:48:59.735+00:00 +1.443707 SERVER_STATE_BEFORE_DRIVER_CLEANUP {"active_handlers": 0}
2026-11-10T10:48:59.738+00:00 +1.446293 RESULT {"exit_code": 1, "elapsed_seconds": 1.443614, "requests": 1, "interrupt_sent": false, "timeout": false, "state": {"marker": false, "files": [{"path": "home/.cache/powershell/StartupProfileData-NonInteractive", "bytes": 93020, "symlink": null}], "helper_outputs": [{"path": "downloaded", "bytes": 131320}], "staging": [], "sidecars": [], "tracked_downloader_pids": [], "remaining_tracked_downloaders": []}, "symlink_executable_check": null}
