{"details":{"exitCode":0,"dirStillExists":true},"lane":"real","pass":true,"desc":"ci_cache_selfheal.ps1: a healthy conda.bat exits 0 and is left untouched","id":"self.ci.cache_selfheal.healthy"}
{"details":{"exitCode":2,"dirRemoved":true},"lane":"real","pass":true,"desc":"ci_cache_selfheal.ps1: a corrupted conda.bat on a restore-keys prefix match self-heals (stale dir deleted)","id":"self.ci.cache_selfheal.prefix_healed"}
{"details":{"exitCode":1,"dirStillExists":true},"lane":"real","pass":true,"desc":"ci_cache_selfheal.ps1: a corrupted conda.bat on an EXACT key hit cannot self-heal; directory is left in place (documented, accepted gap)","id":"self.ci.cache_selfheal.exact_hit_corrupted"}
{"details":{"exitCode":3,"dirStillExists":true},"lane":"real","pass":true,"desc":"ci_cache_selfheal.ps1: a locked file prevents full directory removal; self-heal correctly reports failure (exit 3) instead of silently proceeding","id":"self.ci.cache_selfheal.prefix_heal_failed"}
{"details":{"exitCode":0,"dirStillExists":true},"lane":"real","pass":true,"desc":"ci_cache_selfheal.ps1: no conda.bat restored at all is treated as a genuine cache miss (exit 0, no-op)","id":"self.ci.cache_selfheal.no_binary"}
{"lane":"real","pass":true,"desc":"aggregate_selftest_verdicts.ps1: all 8 expected lanes present exactly once (one via artifact-directory-name fallback, no lane field in its own JSON), none failing -> has_failures false","details":{"exitCode":0},"id":"self.ci.aggregate_selftest_verdicts.healthy"}
{"lane":"real","pass":true,"desc":"aggregate_selftest_verdicts.ps1: a genuine per-lane has_failures:true is still detected (regression guard for the pre-existing behavior)","details":{"exitCode":1},"id":"self.ci.aggregate_selftest_verdicts.lane_failed"}
{"lane":"real","pass":true,"desc":"aggregate_selftest_verdicts.ps1: a single missing lane (7 of 8 present) is detected and named in the report -- the ORIGINAL inline logic could not see this at all","details":{"exitCode":1},"id":"self.ci.aggregate_selftest_verdicts.missing_lane"}
{"lane":"real","pass":true,"desc":"aggregate_selftest_verdicts.ps1: an unexpected lane not in the matrix mode list is detected and named in the report","details":{"exitCode":1},"id":"self.ci.aggregate_selftest_verdicts.unexpected_lane"}
{"lane":"real","pass":true,"desc":"aggregate_selftest_verdicts.ps1: a lane whose verdict was uploaded twice is detected and named in the report","details":{"exitCode":1},"id":"self.ci.aggregate_selftest_verdicts.duplicate_lane"}
{"lane":"real","pass":true,"desc":"aggregate_selftest_verdicts.ps1: zero verdict files with FallbackResult=success still reports has_failures true (all expected lanes missing), independent of the fallback result","details":{"exitCode":1},"id":"self.ci.aggregate_selftest_verdicts.empty_fallback"}
{"lane":"real","pass":true,"desc":"aggregate_selftest_verdicts.ps1: a lane whose verdict file is not valid JSON is treated as a failure, not silently skipped","details":{"exitCode":1},"id":"self.ci.aggregate_selftest_verdicts.malformed_json"}
{"lane":"real","pass":true,"desc":"aggregate_selftest_verdicts.ps1: a lane whose record has no has_failures field is treated as a failure, not silently skipped","details":{"exitCode":1},"id":"self.ci.aggregate_selftest_verdicts.missing_field"}
{"desc":"harness init","id":"self.harness.started","pass":true}
{"desc":"state=no_python_files","id":"self.bootstrap.state","pass":true,"details":{"path":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~selftest_empty\\~bootstrap.status.json","state":"no_python_files","exitCode":0,"pyFiles":0}}
{"desc":"Empty repo emits the no-python console lines","id":"self.empty_repo.msg","pass":true,"details":{"logExists":true,"missing":[]}}
{"desc":"Empty-repo bootstrap does not emit spurious requirement-install warnings","id":"self.empty_repo.no_spurious_warn","pass":true,"details":{"checked":["Some requirements may have failed to install","Could not generate requirements.txt"]}}
{"id":"self.entry.entry1","pass":true,"req":"REQ-002","details":{"exitCode":0,"expected":"entry1.py","chosen":"entry1.py","helperCommand":"\"python\" \"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~entry_sel1\\~find_entry.py\""},"desc":"Single entry file detected"}
{"id":"self.entry.entryA","pass":true,"req":"REQ-002","details":{"exitCode":0,"expected":"main.py","chosen":"main.py","helperCommand":"\"python\" \"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~entryA\\~find_entry.py\""},"desc":"main.py beats app.py"}
{"id":"self.entry.entryB","pass":true,"req":"REQ-002","details":{"exitCode":0,"expected":"app.py","chosen":"app.py","helperCommand":"\"python\" \"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~entryB\\~find_entry.py\""},"desc":"app.py preferred over generic modules"}
{"id":"self.entry.entryC","pass":true,"req":"REQ-002","details":{"exitCode":0,"expected":"cli.py","chosen":"cli.py","helperCommand":"\"python\" \"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~entry_cli\\~find_entry.py\""},"desc":"cli.py preferred over generic modules (REQ-002)"}
{"id":"self.entry.entryD","pass":true,"req":"REQ-002","details":{"exitCode":0,"expected":"run.py","chosen":"run.py","helperCommand":"\"python\" \"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~entry_run\\~find_entry.py\""},"desc":"run.py preferred over cli.py (REQ-002)"}
{"id":"self.entry.helper.invoke.absent","pass":true,"req":"REQ-002","details":{"count":0},"desc":"Helper invocation rows are absent in NDJSON output"}
{"id":"self.entry.results","pass":true,"req":"REQ-002","details":{"issues":[]},"desc":"Entry scenarios emitted breadcrumbs and passed"}
{"lane":"real","pass":true,"id":"self.entry.req011.crossdir","desc":"REQ-011: cross-dir file argument must abort bootstrap (early pre-flight rejection)","details":{"exitCode":1,"req011InLog":true},"req":"REQ-011"}
{"lane":"real","pass":true,"id":"self.entry.req011.sameDir","desc":"REQ-011: same-dir file argument must succeed (early check passes, bootstrap continues)","details":{"exitCode":0,"entryInLog":true,"req011InLog":false},"req":"REQ-011"}
{"lane":"real","pass":true,"id":"self.isolation.req010.pythonpath","desc":"REQ-010: PYTHONPATH is cleared before Python subprocesses run","details":{"exitCode":0,"pythonpathCleared":true},"req":"REQ-010"}
{"details":{"scenario":"ci_skip_entry","hookFired":true,"dieMsgFound":true,"cascadeMsgFound":false,"statusState":"ok","bootstrapExit":0,"log":"~die_emit_ci_skip_entry_bootstrap.log"},"id":"self.die_emit_fallthrough","desc":"die-emit-fallthrough ci_skip_entry: redundant call :die cascade avoided via goto","lane":"real","req":"CLAUDE.md-Item-46-BucketA","pass":true}
{"details":{"exitCode":0,"expectedName":"_hyphen-start","sawExpected":true,"sawBadPattern":false,"log":"~envname_bootstrap.log"},"pass":true,"lane":"real","req":"REQ-004","id":"self.envname.hyphen","desc":"Leading-hyphen folder name sanitized to a conda-safe env name (no leading hyphen)"}
{"req":"REQ-004","id":"self.envname.ampersand","lane":"real","pass":true,"details":{"exitCode":0,"expectedName":"Sales_and_Marketing","sawExpected":true,"sawBadPattern":false,"log":"~envname_bootstrap.log"},"desc":"'&' special-cased to 'and' before the blanket sanitizer runs (readability, CLAUDE.md Item 26)"}
{"lane":"real","pass":true,"desc":"Over-64-char, ampersand-heavy folder name exercises the post-substitution truncation bound (CLAUDE.md Item 26)","req":"REQ-004","details":{"exitCode":0,"expectedName":"A_and_A_and_A_and_A_and_A_and_A_and_A_and_A_and_A_and_A_and_A_an","sawExpected":true,"sawBadPattern":false,"loggedNameLen":64,"sawTruncationBound":true,"log":"~envname_bootstrap.log"},"id":"self.envname.longname"}
{"pass":true,"req":"REQ-017","details":{"sizeBytes":519561,"limitBytes":20971520,"sizeKiB":507.4},"lane":"real","desc":"run_setup.bat (self-contained deliverable) stays under the 20 MB email-distribution limit","id":"self.size.tripwire"}
{"req":"REQ-003","details":{"exitCode":0,"command":"cmd /c .\\run_setup.bat (envsmoke bootstrap)","hasEntryRun":true,"hasEntryExit":true,"hasPyInstaller":true,"interpreterDetected":true,"expectedEnvUsed":true,"interpreterPath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~envsmoke\\.uv_env\\Scripts\\python.exe","explicitErrorPresent":false,"explicitErrorLine":"","unexpectedSystemErrorPresent":false,"unexpectedSystemErrorLine":"The system cannot find the drive specified.","unexpectedSystemErrorIgnored":"drive-specified-nonfatal","errorSignalPass":true},"pass":true,"id":"self.env.smoke.conda","desc":"Miniconda bootstrap + environment creation"}
{"req":"REQ-003","details":{"state":"acquired-used","isUvMode":true,"uvAcquired":true,"bootstrapPass":true,"interpreterPath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~envsmoke\\.uv_env\\Scripts\\python.exe"},"pass":true,"id":"self.env.smoke.uv","desc":"uv env creation and dependency install"}
{"req":"REQ-004","details":{"managedRoot":"C:\\Users\\runneradmin\\AppData\\Roaming\\uv\\python","basePath":"C:\\Users\\runneradmin\\AppData\\Roaming\\uv\\python\\cpython-3.14-windows-x86_64-none","underManagedRoot":true,"looksManaged":true,"interpreterPath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~envsmoke\\.uv_env\\Scripts\\python.exe"},"pass":true,"id":"self.uv.managed.interpreter","desc":"uv venv uses a uv-managed CPython, not an ambient/system Python"}
{"req":"REQ-001","details":{"exitCode":0,"command":"cmd /c .\\run_setup.bat (envsmoke bootstrap)","hasEntryRun":true,"hasEntryExit":true,"hasPyInstaller":true,"interpreterDetected":true,"expectedEnvUsed":true,"interpreterPath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~envsmoke\\.uv_env\\Scripts\\python.exe","explicitErrorPresent":false,"explicitErrorLine":"","unexpectedSystemErrorPresent":false,"unexpectedSystemErrorLine":"The system cannot find the drive specified.","unexpectedSystemErrorIgnored":"drive-specified-nonfatal","errorSignalPass":true},"pass":true,"id":"self.prime.bootstrap","desc":"Prime directive: batch file bootstraps Python environment from scratch"}
{"req":"REQ-003","details":{"exitCode":0,"tokenFound":true,"haveRunOut":true,"command":"cmd /c .\\run_setup.bat (envsmoke bootstrap)"},"pass":true,"id":"self.env.smoke.run","desc":"App runs in created environment"}
{"req":"REQ-001","details":{"exitCode":0,"tokenFound":true},"pass":true,"id":"self.prime.run","desc":"Prime directive: app runs successfully after bootstrap"}
{"req":"REQ-003","details":{"exePath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~envsmoke\\dist\\\\_envsmoke.exe","exists":true},"pass":true,"id":"self.exe.build","desc":"PyInstaller produced standalone EXE"}
{"req":"REQ-001","details":{"exePath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~envsmoke\\dist\\\\_envsmoke.exe","exists":true},"pass":true,"id":"self.prime.exe.build","desc":"Prime directive: bootstrapper produces standalone EXE"}
{"req":"REQ-003","details":{"exitCode":0,"tokenFound":true},"pass":true,"id":"self.exe.run","desc":"Standalone EXE runs successfully"}
{"req":"REQ-001","details":{"exitCode":0,"tokenFound":true},"pass":true,"id":"self.prime.exe.run","desc":"Prime directive: standalone EXE runs end-to-end"}
{"req":"REQ-003","details":{"exitCode":0,"fastPathDetected":true},"pass":true,"id":"self.fastpath","desc":"Second run reuses existing EXE via fast path"}
{"req":"REQ-001","details":{"exitCode":0,"workspace":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~envsmoke path space\\level one\\level two\\test space path","tokenFound":true,"exeExists":true,"noPathErrors":true,"hasEntryRun":true,"hasEntryExit":true,"hasPyInstaller":true,"interpreterDetected":true,"expectedEnvUsed":true,"interpreterPath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~envsmoke path space\\level one\\level two\\test space path\\.uv_env\\Scripts\\python.exe"},"pass":true,"id":"self.prime.spaced-path","desc":"Prime directive bootstrap succeeds from deep directory path containing spaces"}
{"req":"REQ-002","details":{"workspace":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~envsmoke path space\\level one\\level two\\test space path","tokenFound":true,"hasEntryRun":true,"hasEntryExit":true,"hasPyInstaller":true,"interpreterDetected":true,"expectedEnvUsed":true,"interpreterPath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~envsmoke path space\\level one\\level two\\test space path\\.uv_env\\Scripts\\python.exe"},"pass":true,"id":"self.entry.spaced-path","desc":"Entry script discovery/execution succeeds from deep directory path containing spaces"}
{"id":"diag.conda.available","lane":"real","pass":true,"desc":"Miniconda availability diagnostic (raw fact only; see diag.conda.available.gate for the enforced judgment)","details":{"available":false}}
{"id":"diag.conda.available.gate","lane":"real","pass":true,"desc":"Miniconda availability gate (enforced judgment; conda-full only)","details":{"skip":true,"reason":"not-conda-full"}}
{"id":"reqspec.translate.gte","lane":"real","details":{"specifier":"six>=1.16","expected":"six >=1.16","found":false,"reason":"conda-not-installed-uv-first","condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"publicRoot":"C:\\Users\\Public","skip":true},"desc":"six>=1.16 translates to conda >= syntax","pass":true,"req":"REQ-005"}
{"id":"reqspec.translate.eq","lane":"real","details":{"specifier":"colorama==0.4.6","expected":"colorama ==0.4.6","found":false,"reason":"conda-not-installed-uv-first","condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"publicRoot":"C:\\Users\\Public","skip":true},"desc":"colorama==0.4.6 translates to conda == syntax","pass":true,"req":"REQ-005"}
{"id":"reqspec.translate.compat","lane":"real","details":{"specifier":"packaging~=24.0","expected":"packaging >=24.0,<25","found":false,"reason":"conda-not-installed-uv-first","condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"publicRoot":"C:\\Users\\Public","skip":true},"desc":"packaging~=24.0 translates to conda compatible range","pass":true,"req":"REQ-005"}
{"id":"reqspec.translate.gt","lane":"real","details":{"specifier":"attrs>22.0","expected":"attrs >22.0","found":false,"reason":"conda-not-installed-uv-first","condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"publicRoot":"C:\\Users\\Public","skip":true},"desc":"attrs>22.0 translates to conda > syntax","pass":true,"req":"REQ-005"}
{"id":"reqspec.translate.neq","lane":"real","details":{"specifier":"six!=1.15","expected":"six !=1.15","found":false,"reason":"conda-not-installed-uv-first","condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"publicRoot":"C:\\Users\\Public","skip":true},"desc":"six!=1.15 translates to conda != syntax","pass":true,"req":"REQ-005"}
{"id":"reqspec.translate.lte","lane":"real","details":{"specifier":"attrs<=23.0","expected":"attrs <=23.0","found":false,"reason":"conda-not-installed-uv-first","condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"publicRoot":"C:\\Users\\Public","skip":true},"desc":"attrs<=23.0 translates to conda <= syntax","pass":true,"req":"REQ-005"}
{"id":"reqspec.conda.dryrun","lane":"real","details":{"packages":["six>=1.16","colorama==0.4.6","packaging~=24.0","attrs>22.0","six!=1.15","attrs<=23.0"],"skip":true,"condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"exitCode":-1,"publicRoot":"C:\\Users\\Public","reason":"conda-not-installed-uv-first"},"desc":"conda dry-run accepts translated requirement specifiers","pass":true,"req":"REQ-005"}
{"id":"reqspec.conda.dryrun.req006","lane":"real","details":{"packages":["six>=1.16","colorama==0.4.6","packaging~=24.0","attrs>22.0","six!=1.15","attrs<=23.0"],"skip":true,"condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"exitCode":-1,"publicRoot":"C:\\Users\\Public","reason":"conda-not-installed-uv-first"},"desc":"conda dry-run uses --override-channels -c conda-forge","pass":true,"req":"REQ-006"}
{"id":"reqspec.conda.channelpin","lane":"real","details":{"outputMatched":false,"skip":true,"condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"exitCode":-1,"defaultsFound":false,"reason":"conda-not-installed-uv-first","channel":"conda-forge","pkgsMainFound":false,"solverOutputSnippet":"","publicRoot":"C:\\Users\\Public"},"desc":"conda dry-run output includes conda-forge channel pin","pass":true,"req":"REQ-005"}
{"id":"reqspec.conda.channelpin.req006","lane":"real","details":{"outputMatched":false,"skip":true,"condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"exitCode":-1,"defaultsFound":false,"reason":"conda-not-installed-uv-first","channel":"conda-forge","pkgsMainFound":false,"solverOutputSnippet":"","publicRoot":"C:\\Users\\Public"},"desc":"conda installs use conda-forge exclusively (no defaults channel)","pass":true,"req":"REQ-006"}
{"id":"reqspec.conda.dryrun.failcase","lane":"real","details":{"reason":"conda-not-installed-uv-first","constraint":"six<1.0","expectedFailure":true,"publicRoot":"C:\\Users\\Public","condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"skip":true,"exitCode":-1},"desc":"conda dry-run rejects invalid requirement constraints","pass":true,"req":"REQ-005"}
{"id":"reqspec.install.import","lane":"real","details":{"skip":true,"importable":false,"package":"six","publicRoot":"C:\\Users\\Public","reason":"conda-not-installed-uv-first","condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"]},"desc":"translated requirement installs into _envsmoke and imports successfully","pass":true,"req":"REQ-005"}
{"id":"reqspec.gte.explicit","lane":"real","details":{"specifier":"six>=1.16","expected":"six >=1.16","preserved":false,"installExitCode":-1,"importExitCode":-1,"importable":false,"skip":true,"reason":"conda-not-installed-uv-first"},"desc":">= specifier is preserved in translated conda requirements and remains installable/importable","pass":true,"req":"REQ-005"}
{"id":"reqspec.ingest.translate","lane":"real","details":{"skip":true,"condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"publicRoot":"C:\\Users\\Public","reason":"conda-not-installed-uv-first","source":"requirements.txt","translated":false},"desc":"existing requirements.txt translates via prep_requirements.py","pass":true,"req":"REQ-005"}
{"id":"reqspec.ingest.conda.dryrun","lane":"real","details":{"skip":true,"condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"exitCode":-1,"publicRoot":"C:\\Users\\Public","reason":"conda-not-installed-uv-first","source":"requirements.txt"},"desc":"conda dry-run accepts translated existing requirements.txt","pass":true,"req":"REQ-005"}
{"id":"reqspec.ingest.install.import","lane":"real","details":{"reason":"conda-not-installed-uv-first","package":"six","publicRoot":"C:\\Users\\Public","condaBatCandidates":["C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat","C:\\Miniconda3\\condabin\\conda.bat","C:\\Miniconda3\\Scripts\\conda.bat","C:\\ProgramData\\Miniconda3\\condabin\\conda.bat","C:\\ProgramData\\Miniconda3\\Scripts\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\condabin\\conda.bat","C:\\Users\\Public\\Documents\\Miniconda3\\Scripts\\conda.bat"],"skip":true,"importable":false,"exitCode":-1},"desc":"existing requirements path installs and imports in _envsmoke","pass":true,"req":"REQ-005"}
{"desc":"Dep check: first run installs colorama into depcheck env","pass":true,"lane":"real","id":"self.depcheck.install","details":{"condaInstalled":true,"exitCode":0,"lockWritten":true,"depSkipOnRun1":false,"log":"~depcheck_bootstrap.log"},"req":"REQ-005"}
{"desc":"Dep check: second run skips conda install (deps unchanged)","pass":true,"lane":"real","id":"self.depcheck.skip","details":{"depSkipDetected":true,"phrase":"Dep-check: all pipreqs packages satisfied in lock; skipping conda install.","exitCode":0,"log":"~depcheck_rebuild.log"},"req":"REQ-005"}
{"lane":"real","pass":true,"req":"REQ-007","id":"self.exe.warnfix.install","desc":"PyInstaller warn file had missing modules; conda install ran","details":{"scenario":"pass","exitCode":0,"warnInstallFired":true,"warnRebuildFired":true,"repairFailuresDetected":false,"log":"~warnfix_bootstrap.log"}}
{"lane":"real","pass":true,"req":"REQ-007","id":"self.exe.warnfix.pass","desc":"EXE succeeded after warn-driven rebuild; no infra errors","details":{"scenario":"pass","exitCode":0,"exeExists":true,"exeExit":0,"tokenFound":true,"moduleError":false,"infraError":false,"exePath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~selftest_warnfix\\dist\\_selftest_warnfix.exe"}}
{"details":{"scenario":"xfail","exitCode":0,"exeExists":true,"exeExit":1,"tokenFound":false,"moduleError":true,"infraError":false,"warnInstallFired":true,"warnRebuildFired":true,"repairFailuresDetected":true,"exePath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~selftest_warnfix_xfail\\dist\\_selftest_warnfix_xfail.exe"},"desc":"EXE failed with module error after warnfix could not fix missing module","req":"REQ-007","id":"self.exe.warnfix.xfail","lane":"real","pass":true}
{"details":{"scenario":"xfail","cascadeDetected":true,"warnInstallFired":true,"repairFailuresDetected":true},"desc":"warnfix unresolved-after-rebuild marks a cascade candidate (detect-only slice)","req":"REQ-009","id":"self.cascade.detect","lane":"real","pass":true}
{"details":{"scenario":"xfail","consentDeclined":true,"cascadeKept":true,"cascadeExecuted":false,"cascadeDetected":true},"desc":"cascade consent gate decline path keeps build; no cascade executes under HP_TEST_CASCADE_ANSWER=N","req":"REQ-009","id":"self.cascade.consent","lane":"real","pass":true}
{"req":"REQ-005","id":"self.exe.warnfix.real","pass":true,"desc":"Heuristic pre-installed openpyxl via pandas heuristic; EXE succeeded","lane":"real","details":{"scenario":"real","exitCode":0,"exeExists":true,"exeExit":0,"tokenFound":true,"heuristicFired":true,"warnInstallFired":true,"infraError":false,"exePath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~selftest_warnfix_real\\dist\\_selftest_warnfix_real.exe"}}
{"details":{"scenario":"real_warnfix","exitCode":0,"exeExists":true,"exeExit":0,"tokenFound":true,"warnInstallFired":true,"warnRebuildFired":true,"infraError":false,"exePath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~selftest_warnfix_real_warnfix\\dist\\_selftest_warnfix_real_warnfix.exe"},"req":"REQ-007","pass":true,"id":"self.exe.warnfix.real_warnfix","lane":"real","desc":"Warnfix installed xlrd (not heuristic-covered); EXE succeeded"}
{"lane":"real","pass":true,"req":"REQ-007","details":{"scenario":"real_warnfix_delayed","exitCode":0,"exeExists":true,"exeExit":0,"tokenFound":true,"warnInstallFired":true,"warnRebuildFired":true,"infraError":false,"exePath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~selftest_warnfix_real_warnfix_delayed\\dist\\_selftest_warnfix_real_warnfix_delayed.exe"},"id":"self.exe.warnfix.real_warnfix_delayed","desc":"Warnfix processed delayed xlrd import; installed xlrd; EXE succeeded"}
{"details":{"exitCode":0,"exeExists":true,"exeExit":0,"tokenFound":true,"collectLineFired":true,"collectPlotly":true,"infraError":false,"exePath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~selftest_collect\\dist\\_selftest_collect.exe"},"desc":"Pre-build --collect-submodules double-gate emitted plotly flag (used+installed); EXE built and ran","req":"REQ-005","pass":true,"id":"self.collect.submodules","lane":"real"}
{"id":"self.exe.hidden_import","details":{"exitCode":0,"exeExists":true,"exeExit":0,"tokenFound":true,"addingFired":true,"collectLogged":true,"collectPaired":true,"recoveredFired":true,"infraError":false,"exePath":"D:\\a\\Python_vs_Windows\\Python_vs_Windows\\tests\\~selftest_hidden_import\\dist\\_selftest_hidden_import.exe"},"req":"REQ-016","lane":"real","desc":"EXE failed on a dynamically-imported installed module; strict --hidden-import recovery rebuilt and verified it (paired with --collect-submodules, CLAUDE.md Item 28)","pass":true}
{"lane":"real","desc":"Strict --hidden-import recovery exhausts after 3 attempts when the app never actually succeeds","details":{"bootstrapExit":0,"addingCount":3,"exhaustedFired":true,"recoveredFired":false,"infraError":false,"statusState":"ok","log":"~hidden_exhaust_bootstrap.log"},"req":"REQ-016","pass":true,"id":"self.exe.hidden_import.exhaust"}
{"pass":true,"desc":"EXE smokerun XFAIL: bad import causes non-zero exit (expected failure)","details":{"bootstrapExit":0,"smokerunFired":true,"smokerunPassed":false,"xfailPass":true,"log":"~exefail_bootstrap.log"},"id":"self.exe.smokerun.xfail","lane":"real","req":"REQ-003"}
{"pass":true,"id":"self.exe.build.xfail","desc":"PyInstaller build XFAIL (execfail): build failure correctly reported, not masked as success","details":{"statusState":"error","expectedMsgFound":true,"testHookFired":true,"xfailPass":true,"bootstrapExit":0,"noExeBriefingFound":true,"expectedReasonFound":true,"log":"~pyi_fail_execfail_bootstrap.log","scenario":"execfail"},"lane":"real","req":"REQ-003"}
{"id":"self.exe.build.xfail","lane":"real","pass":true,"desc":"PyInstaller build XFAIL (output_vanish): build failure correctly reported, not masked as success","details":{"scenario":"output_vanish","bootstrapExit":0,"expectedMsgFound":true,"testHookFired":true,"expectedReasonFound":true,"xfailPass":true,"log":"~pyi_fail_output_vanish_bootstrap.log","statusState":"error","noExeBriefingFound":true},"req":"REQ-003"}
{"desc":"PyInstaller build XFAIL (execfail_runtimefail): build failure correctly reported, not masked as success","lane":"real","id":"self.exe.build.xfail","pass":true,"req":"REQ-003","details":{"noExeBriefingFound":true,"scenario":"execfail_runtimefail","xfailPass":true,"testHookFired":true,"log":"~pyi_fail_execfail_runtimefail_bootstrap.log","expectedMsgFound":true,"statusState":"error","expectedReasonFound":true,"bootstrapExit":0}}
{"details":{"bootstrapExit":0,"req021Fired":true,"syntaxDetail":true,"statusState":"error","noPyiCrash":true,"noExe":true,"log":"~preflight_bootstrap.log"},"id":"self.preflight.syntax","pass":true,"desc":"REQ-021 pre-flight: SyntaxError reported clearly and run stops gracefully before the build","req":"REQ-021","lane":"real"}
{"req":"CLAUDE.md-Item-44","desc":"Preflight self-check branch: HP_TEST_FORCE_NO_POWERSHELL","id":"self.preflight.no_powershell","lane":"real","details":{"bootstrapExit":1,"expectedExit":1,"exitMatches":true,"statusState":"error","statusExitCode":1,"statusMatches":true,"allSubstringsFound":true,"log":"~lineending_bootstrap.log"},"pass":true}
{"req":"CLAUDE.md-Item-44","desc":"Preflight self-check branch: HP_TEST_FORCE_PS_CHECK_FAIL","id":"self.preflight.ps_check_fail","lane":"real","details":{"bootstrapExit":2,"expectedExit":2,"exitMatches":true,"statusState":"error","statusExitCode":2,"statusMatches":true,"allSubstringsFound":true,"log":"~lineending_bootstrap.log"},"pass":true}
{"req":"CLAUDE.md-Item-44","desc":"Preflight self-check branch: HP_TEST_FORCE_LF_ONLY","id":"self.preflight.lf_only","lane":"real","details":{"bootstrapExit":1,"expectedExit":1,"exitMatches":true,"statusState":"error","statusExitCode":1,"statusMatches":true,"allSubstringsFound":true,"log":"~lineending_bootstrap.log"},"pass":true}
{"req":"CLAUDE.md-Item-48","desc":"Preflight self-check branch: HP_TEST_FORCE_CWD_NOT_WRITABLE","id":"self.preflight.cwd_not_writable","lane":"real","details":{"bootstrapExit":1,"expectedExit":1,"exitMatches":true,"statusState":"error","statusExitCode":1,"statusMatches":true,"allSubstringsFound":true,"log":"~lineending_bootstrap.log"},"pass":true}
{"req":"CLAUDE.md-Item-47","desc":"Preflight self-check branch: HP_TEST_FORCE_PS_CAPABILITY_FAIL","id":"self.preflight.ps_capability_fail","lane":"real","details":{"bootstrapExit":1,"expectedExit":1,"exitMatches":true,"statusState":"error","statusExitCode":1,"statusMatches":true,"allSubstringsFound":true,"log":"~lineending_bootstrap.log"},"pass":true}
{"lane":"real","desc":"EXE CWD consistency: a CWD-relative-path app succeeds identically on a fresh build (:run_exe_smokerun) and on the cached-EXE fast path (:try_fast_exe)","id":"self.exe.smokerun.cwd_consistency","req":"REQ-018","details":{"run1Exit":0,"run1SmokerunFired":true,"run1SmokerunPassed":true,"run1DataSeen":true,"run2Exit":0,"run2FastpathFired":true,"run2StatusSuccess":true,"run2DataSeen":true,"consistencyPass":true,"run1Log":"~exe_cwd_consistency_run1.log","run2Log":"~exe_cwd_consistency_run2.log"},"pass":true}
{"pass":true,"req":"REQ-003","desc":"EXE smokerun XFAIL: missing data file (name coincidentally contains _MEI+digits) causes non-zero exit (expected failure); hint text stays honest, not misled by the substring","lane":"real","details":{"scenario":"mei_substring","bootstrapExit":0,"smokerunFired":true,"smokerunPassed":false,"honestHintFired":true,"misleadingHintAbsent":true,"hintCorrect":true,"xfailPass":true,"log":"~exedata_bootstrap_mei_substring.log"},"id":"self.exe.smokerun.exedata.xfail"}
{"desc":"EXE smokerun XFAIL: missing data file under a genuine _MEIxxxxxx extraction path causes non-zero exit (expected failure); --add-data advice correctly still fires for this case","id":"self.exe.smokerun.exedata.xfail","req":"REQ-003","details":{"scenario":"mei_genuine","bootstrapExit":0,"smokerunFired":true,"smokerunPassed":false,"addDataHintFired":true,"genuineMeiPathSeen":true,"honestHintAbsent":true,"hintCorrect":true,"xfailPass":true,"log":"~exedata_bootstrap_mei_genuine.log"},"pass":true,"lane":"real"}
{"details":{"bootstrapExit":0,"smokerunFired":true,"smokerunPassed":false,"recoveryDeclined":true,"xfailPass":true,"log":"~exedyn_bootstrap.log"},"id":"self.exe.smokerun.exedyn.xfail","desc":"EXE smokerun XFAIL: dynamic import not bundled causes non-zero exit (expected failure)","pass":true,"lane":"real","req":"REQ-003"}
{"desc":"Reused fast-path EXE that fails is discarded and rebuilt; bootstrap stays graceful","id":"self.exe.fastpath.graceful","details":{"run1Exit":0,"run2Exit":0,"fastPathFellBack":true,"hardExited":false,"run2Log":"~exefastpath_run2.log"},"req":"REQ-007","pass":true,"lane":"real"}
{"id":"self.failfast.probe.fastfail","lane":"real","details":{"run1Exit":0,"run2Exit":0,"launchedInteractive":true,"discardedAndRebuilt":true,"noAliveMsg":true,"run2Log":"~ff_run2.log"},"pass":true,"req":"REQ-018","desc":"Fail-fast probe: a cached EXE that fails within the probe window is still discarded and rebuilt"}
{"id":"self.failfast.probe.alive","lane":"real","details":{"run1Exit":0,"run2Exit":0,"launchedInteractive":true,"aliveMsgLogged":true,"statusFailedLogged":true,"notDiscarded":true,"exeStillPresent":true,"bootstrapState":"ok","ambiguousNoteFound":true,"run2Log":"~al_run2.log"},"pass":true,"req":"REQ-018","desc":"Fail-fast probe: a cached EXE still running past the probe window is never discarded, even if it later exits non-zero; the bootstrap reports the true outcome and stays state=ok"}
{"details":{"exitCode":0,"promptShown":true,"accepted":true,"runCount":2,"log":"~checkpoint_accept.log"},"desc":"Post-execution checkpoint: HP_TEST_CHECKPOINT_ANSWER=Y accepts and runs the entry a second time via the interpreter","req":"REQ-018","pass":true,"lane":"real","id":"self.checkpoint.accept"}
{"details":{"exitCode":0,"promptShown":true,"declined":true,"notAccepted":true,"runCount":1,"log":"~checkpoint_decline.log"},"desc":"Post-execution checkpoint: default/HP_CI_LANE auto-decline keeps the run footprint at exactly one execution","req":"REQ-018","pass":true,"lane":"real","id":"self.checkpoint.decline"}
{"desc":"parse_warn TRANSLATIONS table: all import->conda mappings resolve correctly","req":"REQ-007","lane":"real","id":"self.parse_warn.table","details":{"tested":20,"failures":[]},"pass":true}
{"desc":"parse_warn TRANSLATIONS table: all import->conda mappings resolve correctly (PyInstaller 6.x format)","req":"REQ-007","lane":"real","id":"self.parse_warn.table.v6","details":{"tested":20,"failures":[]},"pass":true}
{"desc":"parse_warn pytest: test_parse_warn.py all tests pass","id":"self.parse_warn.pytest","lane":"real","details":{"summary":"OK","exit":0},"pass":true}
{"desc":"heuristics unittest: test_heuristics.py all tests pass","id":"self.heuristics.pytest","details":{"summary":"OK","exit":0},"lane":"real","pass":true}
{"pass":true,"desc":"Python unit tests: pytest cross-platform suite","details":{"summary":"================== 579 passed, 2 skipped in 67.48s (0:01:07) ==================","exit":0},"id":"self.pytest.unit","lane":"real"}
{"id":"self.runtime.writeback","pass":true,"lane":"real","details":{"bootstrapExit":0,"runtimeExists":true,"runtimeContent":"python-3.14.7","runtimeValid":true,"noTrailingSpace":true,"logContainsWriteback":true,"secondRunExitCode":0,"secondRunContent":"python-3.14.7","secondRunMatches":true,"secondRunNoWriteback":true},"req":"REQ-004","desc":"runtime.txt written with resolved python version and log line emitted"}
{"id":"pyvisa.detect","pass":true,"details":{"exitCode":0,"detectFound":true},"desc":"pyvisa import detected and logged by bootstrapper","lane":"real","req":"REQ-008"}
{"id":"pyvisa.nivisa.branch","pass":true,"details":{"exitCode":0,"nisaFound":true},"desc":"NI-VISA branch taken when pyvisa import detected (requires [VISA] terminal signal)","lane":"real","req":"REQ-008"}
{"id":"pyvisa.nivisa.outcome","pass":true,"details":{"exitCode":0,"outcomeFound":true},"desc":"NI-VISA terminal signal present ([VISA] present / install_success / skipped / install_failed)","lane":"real","req":"REQ-008"}
{"id":"pyvisa.nivisa.reason","pass":true,"details":{"exitCode":0,"reasonFound":true,"installerRc":"-125202","downloadVia":"curl","installerSize":"6769400","peCheck":"PE_OK"},"desc":"NI-VISA install path emits a classifiable diagnostic (installer exit code or download/skip reason)","lane":"real","req":"REQ-008"}
{"id":"pyvisa.nivisa.disabled","pass":true,"details":{"exitCode":0,"detected":true,"skippedDisabled":true,"noInstallAttempt":true},"desc":"HP_SKIP_NIVISA=1 skips NI-VISA install even when pyvisa import detected","lane":"real","req":"REQ-008"}
{"pass":true,"details":{"skip":true,"reason":"conda-not-installed-uv-first"},"lane":"real","req":"REQ-004","desc":"HP_DETECT_PY reads pyproject.toml requires-python when runtime.txt absent","id":"pyproject.precedence.detect"}
{"pass":true,"details":{"exitCode":0,"runtimeExists":true,"logContains":true,"versionSatisfied":true,"runtimeVersion":"python-3.14.7"},"lane":"real","req":"REQ-004","desc":"runtime.txt written after bootstrap when pyproject.toml present and runtime.txt absent","id":"pyproject.precedence.writeback"}
{"pass":true,"details":{"skip":true,"reason":"conda-not-installed-uv-first"},"lane":"real","req":"REQ-004","desc":"HP_PYPROJ_DEPS helper parses pyproject.toml [project].dependencies and writes deps","id":"pyproject.dep.detect"}
{"pass":true,"details":{"skip":true,"reason":"conda-not-installed-uv-first"},"lane":"real","req":"REQ-005.1","desc":"HP_PYPROJ_DEPS exits 1 (no deps) when pyproject.toml has no [project] section","id":"pyproject.dep.noproj"}
{"req":"REQ-015","id":"self.ux.gitignore.merge","pass":true,"details":{"sigFound":true,"run1Exit":0},"lane":"real","desc":"Standard ignores signature appended to .gitignore"}
{"req":"REQ-015","id":"self.ux.gitignore.preserve","pass":true,"details":{"nodeModulesFound":true},"lane":"real","desc":"Pre-existing .gitignore content preserved after merge"}
{"req":"REQ-015","id":"self.ux.gitignore.idem","pass":true,"details":{"sigCount":1},"lane":"real","desc":"Standard ignores signature appears exactly once after two runs"}
{"req":"REQ-015","id":"self.ux.gitattributes.merge","pass":true,"details":{"sigFound":true,"batTextFound":true,"cmdTextFound":true},"lane":"real","desc":"Standard attributes signature appended to .gitattributes"}
{"req":"REQ-015","id":"self.ux.gitattributes.idem","pass":true,"details":{"sigCount":1},"lane":"real","desc":"Attributes signature appears exactly once after two runs"}
{"req":"REQ-015","id":"self.ux.gitattributes.migrate","pass":true,"details":{"batTextFound":true,"cmdTextFound":true,"batStaleFound":false,"cmdStaleFound":false,"otherPreserved":true},"lane":"real","desc":"Pre-existing eol=crlf rule migrated to -text; other content untouched"}
{"req":"REQ-016","id":"self.ux.postflight","pass":true,"details":{"logLineFound":true,"exeSectionFound":true,"keepSectionFound":true,"deleteSectionFound":true,"runAppSectionFound":true,"cmdPromptFound":true,"stdBufferingFound":true},"lane":"real","desc":"Post-flight briefing: log line plus panel (EXE + keep + delete + RUNNING YOUR APP + Command Prompt + stdout buffering)"}
{"req":"REQ-013","id":"self.ux.connectivity.offline.n","pass":true,"details":{"promptFound":true,"offlineLogFound":true},"lane":"real","desc":"Connectivity guard: N response triggers offline mode"}
{"req":"REQ-013","id":"self.ux.connectivity.prompt.shown","pass":true,"details":{"promptFound":true},"lane":"real","desc":"Connectivity guard: exact prompt string appears in output"}
{"req":"REQ-013","id":"self.ux.connectivity.offline.uv.skip","pass":true,"details":{"offlineLogFound":true,"condaOnlySkip":false,"forcedFailSkip":false},"lane":"real","desc":"Connectivity guard: offline mode skips uv download (or uv legitimately bypassed)"}
{"req":"REQ-013","id":"self.ux.connectivity.offline.conda.skip","pass":true,"details":{"offlineLogFound":true,"downloadAttempted":false},"lane":"real","desc":"Connectivity guard: offline mode skips Miniconda download (or pre-installed)"}
{"req":"REQ-013","id":"self.ux.connectivity.online","pass":true,"details":{"reachableLogFound":true},"lane":"real","desc":"Connectivity guard: reachable network cascades to fallback (internet reachable branch)"}
{"req":"REQ-013","id":"self.ux.connectivity.retry","pass":true,"details":{"retryBranchFired":true,"declineAfterRetry":true},"lane":"real","desc":"Connectivity guard: Y answer re-prompts while still offline, then N exits offline"}
{"req":"REQ-013","id":"self.ux.connectivity.override","pass":true,"details":{"promptFound":true,"declineLogFound":true,"emptyLogFound":false},"lane":"real","desc":"Connectivity guard: HP_TEST_CNDF_ANSWER=N resolves via the explicit-decline path, not the empty-input fallback"}
{"req":"REQ-014","id":"self.ux.system.gate.n","pass":true,"details":{"promptFound":true,"declineLogFound":true},"lane":"real","desc":"System Python consent gate: N response declines"}
{"req":"REQ-014","id":"self.ux.system.gate.prompt","pass":true,"details":{"promptFound":true},"lane":"real","desc":"System Python consent gate: exact prompt string appears in output"}
{"req":"REQ-014","id":"self.ux.system.gate.real","pass":true,"details":{"promptFound":true,"declineLogFound":true,"abortLogFound":true},"lane":"real","desc":"System Python consent gate: default (no-flag) fallback chain reaches consent gate; decline keeps build"}
{"req":"REQ-014","id":"self.ux.system.gate.accept","pass":true,"details":{"consentAcceptLog":true,"systemSelected":true,"state":"degraded_env","exitCode":0},"lane":"real","desc":"System Python consent ACCEPT routes into Tier 4 system provider in a default no-flag run (REQ-009 provider independence)"}
{"req":"REQ-009","id":"self.venv.fallback","pass":true,"details":{"venvReadyLog":true,"providerLogFound":true,"appRan":true,"exit":0},"lane":"real","desc":"REQ-009 Tier 3: venv fallback fires when conda fails and app bootstraps via .venv"}
{"req":"REQ-023","id":"self.venv.canary_fail","pass":true,"details":{"canaryWarnFound":true,"venvNotSelected":true,"exit":0},"lane":"real","desc":"REQ-023: venv canary probe correctly declines a created-but-broken venv instead of selecting it"}
{"req":"REQ-023b","id":"self.venv.nopip_retry","pass":true,"details":{"retryWarnFound":true,"pipBootstrapOk":true,"providerLogFound":true,"appRan":true,"exit":0},"lane":"real","desc":"REQ-023b: venv fallback retries with --without-pip and bootstraps pip via get-pip.py when plain venv creation fails"}
{"req":"REQ-009","id":"self.embed.fallback.decline","pass":true,"details":{"attemptedLog":true,"forcedLog":true,"orderedLog":true,"embedIdx":1055,"venvIdx":1238,"state":"error","exitCode":0,"processExit":0,"honestMsg":true,"noFakeSyntaxErr":true,"noBuildAttempt":true},"lane":"real","desc":"REQ-009 Tier 5 (reordered): embed fallback is attempted right after conda fails (before venv/system), and a forced embed failure reaches :die once venv/system also fail (bootstrap.status.json reports state=error); also covers item 14: total exhaustion reports the real no-interpreter cause, not a fabricated syntax error, and skips the doomed build"}
{"req":"REQ-009","id":"self.embed.fallback.real","pass":true,"details":{"extractedLog":true,"readyLog":true,"providerLogFound":true,"appRan":true,"venvAbsent":true,"exit":0},"lane":"real","desc":"REQ-009 Tier 5 (reordered): real embed download/extract/patch/get-pip/canary/build/run succeeds end-to-end right after conda fails, short-circuiting before venv is ever attempted"}
{"req":"REQ-009","id":"self.embed.dl.retry","pass":true,"details":{"hookFired":true,"warnFired":true,"extracted":true,"ready":true,"appRan":true,"exit":0},"lane":"real","desc":"REQ-009 Tier 5: first download attempt deterministically fails (no network touched), second (real) attempt succeeds end-to-end"}
{"req":"REQ-002","id":"self.entry.override","pass":true,"details":{"dragMsgFound":true,"entrySelected":true,"ranOverride":true,"notMain":true,"exit":0},"lane":"real","desc":"REQ-002 priority 0: co-located %1 override is chosen and run over main.py"}
{"details":{"promptShown":true,"declineLog":true,"skipLog":true,"noExe":true},"req":"REQ-007","id":"self.sysbuild.decline","desc":"REQ-007: system-Python EXE build is consent-gated; decline skips the build with a logged reason and no EXE","lane":"real","pass":true}
