2026-11-10T10:49:22.794+00:00 +0.030885 MANIFEST {"id": "P22", "case": "ctrlc-backoff-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/P22-ctrlc-backoff-H/after/observe.ps1", "env": {"HOME": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P22-ctrlc-backoff-H/after/home", "T3CODE_HOME": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P22-ctrlc-backoff-H/after/home/t3", "T3CODE_INSTALL_BIN_DIR": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P22-ctrlc-backoff-H/after/bin", "TMPDIR": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P22-ctrlc-backoff-H/after/tmp", "TMP": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P22-ctrlc-backoff-H/after/tmp", "TEMP": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P22-ctrlc-backoff-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/P22-ctrlc-backoff-H/after/transport.jsonl", "T3CODE_VERSION": "1.2.3", "T3CODE_RELEASE_BASE_URL": "http://127.0.0.1:42899", "PROCESSOR_ARCHITECTURE": "AMD64", "DOTNET_CLI_HOME": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P22-ctrlc-backoff-H/after/home", "POWERSHELL_TELEMETRY_OPTOUT": "1", "PATH": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P22-ctrlc-backoff-H/after/path", "CAPTURE_STAGING": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P22-ctrlc-backoff-H/after/helper-staging", "CAPTURE_URL": "http://127.0.0.1:42899/v1.2.3/t3-1.2.3-linux-x64.tar.gz", "CAPTURE_DEST": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P22-ctrlc-backoff-H/after/downloaded", "CAPTURE_SCRIPT": "/tmp/lead-32913-r1/evidence-capture/runs-20261110T104757.726561Z/P22-ctrlc-backoff-H/after/install.ps1"}, "original_source_sha256": "d24dd0357bd107d3643aeeb1e80eaebf2cb8d84928a5bbed3682a9a6b491f92c", "executed_source_sha256": "ebe8de2f02272c4864f73d7a8b193e0c11e5a8e37d9cef44fee0aa6f06f48bc6", "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:49:22.798+00:00 +0.034547 SPAWN {"pid": 617345, "pty": true, "stdin": "PTY"}
2026-11-10T10:49:22.976+00:00 +0.212982 OUTPUT "\u001b[?1h\u001b="
2026-11-10T10:49:23.200+00:00 +0.436584 OUTPUT "DEBUG:    2+  >>>> & $env:CAPTURE_SCRIPT\r\n\r\n"
2026-11-10T10:49:23.273+00:00 +0.510136 OUTPUT "DEBUG:   16+  >>>> $ErrorActionPreference = \"Stop\"\r\n\r\n"
2026-11-10T10:49:23.281+00:00 +0.517693 OUTPUT "DEBUG:   17+  >>>> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12\r\n\r\n"
2026-11-10T10:49:23.293+00:00 +0.529431 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:42899/$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:42899/$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:42899/$repo/releases/download\" }\r\n\r\n"
2026-11-10T10:49:23.300+00:00 +0.537133 OUTPUT "DEBUG:   21+  >>>> $t3Home = if ($env:T3CODE_HOME) { $env:T3CODE_HOME } else { Join-Path $HOME \".t3\" }\r\n\r\n"
2026-11-10T10:49:23.302+00:00 +0.538409 OUTPUT "DEBUG:   21+ $t3Home = if ( >>>> $env:T3CODE_HOME) { $env:T3CODE_HOME } else { Join-Path $HOME \".t3\" }\r\n\r\n"
2026-11-10T10:49:23.303+00:00 +0.540362 OUTPUT "DEBUG:   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:49:23.308+00:00 +0.544814 OUTPUT "DEBUG:   31+  >>>> $terminal = -not [Console]::IsErrorRedirected -and $env:TERM -ne \"dumb\"\r\n\r\n"
2026-11-10T10:49:23.320+00:00 +0.557285 OUTPUT "DEBUG:   32+  >>>> $interactive = $terminal -and $Host.UI.SupportsVirtualTerminal"
2026-11-10T10:49:23.323+00:00 +0.560303 OUTPUT "\r\n\r\n"
2026-11-10T10:49:23.329+00:00 +0.566184 OUTPUT "DEBUG:   33+ if ( >>>> $interactive) {"
2026-11-10T10:49:23.333+00:00 +0.569752 OUTPUT "\r\n\r\nDEBUG:   35+    >>>> $glyphs = -join [char[]](0x2588, 0x2580, 0x2584, 0x25A0, 0x00B7)\r\n\r\n"
2026-11-10T10:49:23.341+00:00 +0.577729 OUTPUT "DEBUG:   36+    >>>> $encoding = [Console]::Error.Encoding\r\n\r\n"
2026-11-10T10:49:23.347+00:00 +0.583846 OUTPUT "DEBUG:   37+    >>>> $interactive = $encoding.GetString($encoding.GetBytes($glyphs)) -eq $glyphs\r\n\r\n"
2026-11-10T10:49:23.355+00:00 +0.592298 OUTPUT "DEBUG:   39+  >>>> $esc = [char]27\r\n\r\n"
2026-11-10T10:49:23.358+00:00 +0.594901 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\nDEBUG:  120+  >>>> [Console]::Error.WriteLine(\"CAPTURE_DISPATCH terminal=$terminal interactive=$interactive mechanism=H encoding=$([Console]::Error.Encoding.WebName)\")\r\n\r\n"
2026-11-10T10:49:23.361+00:00 +0.597455 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:49:23.370+00:00 +0.607030 OUTPUT "CAPTURE_DISPATCH terminal=True interactive=True mechanism=H encoding=utf-8"
2026-11-10T10:49:23.376+00:00 +0.612542 OUTPUT "\r\nDEBUG:  122+  >>>> Fetch $env:CAPTURE_URL $env:CAPTURE_DEST -progress\r\n\r\n"
2026-11-10T10:49:23.390+00:00 +0.626875 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\n"
2026-11-10T10:49:23.394+00:00 +0.630935 OUTPUT "DEBUG:   86+    >>>> Add-Type -AssemblyName System.Net.Http\r\n\r\n"
2026-11-10T10:49:23.539+00:00 +0.775791 OUTPUT "DEBUG:   87+    >>>> $client = New-Object System.Net.Http.HttpClient\r\n\r\n"
2026-11-10T10:49:23.555+00:00 +0.792047 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:49:23.635+00:00 +0.871637 SERVER {"request_t": 0.87018, "event": "request", "path": "/v1.2.3/t3-1.2.3-linux-x64.tar.gz", "endpoint": "archive", "attempt": 1, "status": 504, "behavior": 504, "accept": null}
2026-11-10T10:49:23.643+00:00 +0.879758 SERVER {"event": "body_complete", "endpoint": "archive", "bytes": 19}
2026-11-10T10:49:23.643+00:00 +0.879923 SERVER {"event": "request_handler_end", "endpoint": "archive"}
2026-11-10T10:49:23.656+00:00 +0.893321 OUTPUT "DEBUG:   93+       if ( >>>> $response.IsSuccessStatusCode -or -not (Wait-Retry ([int]$response.StatusCode) $attempt)) { break }\r\n\r\n"
2026-11-10T10:49:23.669+00:00 +0.905408 OUTPUT "DEBUG:   69+ function Wait-Retry([int] $status, [int] $attempt)  >>>> {"
2026-11-10T10:49:23.673+00:00 +0.910315 OUTPUT "\r\n\r\nDEBUG:   70+   if ( >>>> $attempt -ge 4 -or ($status -ge 400 -and $status -lt 500 -and $status -ne 408 -and $status -ne 429)) { return $false }\r\n\r\n"
2026-11-10T10:49:23.677+00:00 +0.913481 OUTPUT "DEBUG:   71+    >>>> Start-Sleep -Seconds ([Math]::Pow(2, $attempt - 1))\r\n\r\n"
2026-11-10T10:49:24.714+00:00 +1.951207 OUTPUT "DEBUG:   72+   return  >>>> $true\r\n\r\nDEBUG:   73+  >>>> }\r\n\r\n"
2026-11-10T10:49:24.717+00:00 +1.954203 OUTPUT "DEBUG:   94+        >>>> $response.Dispose()\r\n\r\n"
2026-11-10T10:49:24.720+00:00 +1.956987 OUTPUT "DEBUG:   90+     for ($attempt = 1; ;  >>>> $attempt++) {\r\n\r\n"
2026-11-10T10:49:24.723+00:00 +1.959740 OUTPUT "DEBUG:   91+       try {  >>>> $response = $client.GetAsync($uri, [System.Net.Http.HttpCompletionOption]::ResponseHeadersRead).GetAwaiter().GetResult() }\r\n\r\n"
2026-11-10T10:49:24.726+00:00 +1.962944 SERVER {"request_t": 1.961534, "event": "request", "path": "/v1.2.3/t3-1.2.3-linux-x64.tar.gz", "endpoint": "archive", "attempt": 2, "status": 504, "behavior": 504, "accept": null}
2026-11-10T10:49:24.728+00:00 +1.964455 SERVER {"event": "body_complete", "endpoint": "archive", "bytes": 19}
2026-11-10T10:49:24.728+00:00 +1.964609 SERVER {"event": "request_handler_end", "endpoint": "archive"}
2026-11-10T10:49:24.730+00:00 +1.966698 OUTPUT "DEBUG:   93+       if ( >>>> $response.IsSuccessStatusCode -or -not (Wait-Retry ([int]$response.StatusCode) $attempt)) { break }\r\n\r\n"
2026-11-10T10:49:24.734+00:00 +1.971232 OUTPUT "DEBUG:   69+ function Wait-Retry([int] $status, [int] $attempt)  >>>> {\r\n\r\nDEBUG:   70+   if ( >>>> $attempt -ge 4 -or ($status -ge 400 -and $status -lt 500 -and $status -ne 408 -and $status -ne 429)) { return $false }\r\n\r\nDEBUG:   71+    >>>> Start-Sleep -Seconds ([Math]::Pow(2, $attempt - 1))\r\n\r\n"
2026-11-10T10:49:25.037+00:00 +2.274298 ACTION {"step": "write terminal Ctrl-C byte", "precondition": "backoff", "requests_observed": 2}
2026-11-10T10:49:25.038+00:00 +2.275017 OUTPUT "^C"
2026-11-10T10:49:25.104+00:00 +2.340576 OUTPUT "DEBUG:  114+     if ( >>>> $file) { $file.Dispose() }\r\n\r\nDEBUG:  115+     if ( >>>> $source) { $source.Dispose() }\r\n\r\nDEBUG:  116+     if ( >>>> $response) { $response.Dispose() }\r\n\r\n"
2026-11-10T10:49:25.120+00:00 +2.356892 OUTPUT "DEBUG:  116+     if ($response) {  >>>> $response.Dispose() }\r\n\r\nDEBUG:  117+      >>>> $client.Dispose()\r\n\r\nDEBUG:  132+ } finally {  >>>> [Console]::Error.WriteLine(\"CAPTURE_CALLER_FINALLY\") }\r\n\r\nCAPTURE_CALLER_FINALLY\r\n"
2026-11-10T10:49:25.252+00:00 +2.488680 SERVER_STATE_BEFORE_DRIVER_CLEANUP {"active_handlers": 0}
2026-11-10T10:49:25.253+00:00 +2.490094 RESULT {"exit_code": 0, "elapsed_seconds": 2.488615, "requests": 2, "interrupt_sent": true, "timeout": false, "state": {"marker": false, "files": [{"path": "home/.cache/powershell/StartupProfileData-NonInteractive", "bytes": 87800, "symlink": null}], "helper_outputs": [], "staging": [], "sidecars": [], "tracked_downloader_pids": [], "remaining_tracked_downloaders": []}, "symlink_executable_check": null}
