Archive failed first Scenario workspace compile gate

This commit is contained in:
2026-09-12 23:38:13 -07:00
parent c26ee6d263
commit 31d2d73744
24 changed files with 15689 additions and 0 deletions
@@ -0,0 +1 @@
* -text -whitespace
@@ -0,0 +1,14 @@
# Closed first saved Scenario workspace compile gate
Source: [2c9cd2b3e661ef85f11590c7128dcb2f502d0c26](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/commit/2c9cd2b3e661ef85f11590c7128dcb2f502d0c26). The first list stage is **closed failed**, Cargo exit 101, from 2026-09-13 06:17:48.6934273 UTC to 06:34:21.8214194 UTC. Compilation failed before any tests were listed or executed. Focused/full tests, strict lint and GUI build did not run; no UI runtime pass is claimed.
The unchanged [raw log](original/list.log) and [receipt](original/list-receipt.json) record exactly two compiler errors:
- E0433: unavailable futures::executor in crates/oa-desktop/src/app/scenario_diagram/adoption_tests.rs:171:20.
- E0063: missing Scope.scenario_view in crates/oa-desktop/src/app/process_canvas.rs:63:25.
All three captures contain identical 601-file source/configuration records and external-input observations; before/after verification succeeded with no postflight failure. The prepared listing/focused membership in expected-tests.json is an expectation, not a test result. Server tests were not repeated: [server-provenance.json](original/server-provenance.json) retains the exact passed 37be410 server receipt/log because its core/server/root-manifest scope was unchanged.
All 21 original gate files are preserved byte-for-byte under original/, including scripts, the preparation README, raw logs, receipt, package-clearance evidence, tool versions and captures. [manifest.json](manifest.json) records every original byte count, SHA-256 and Git blob SHA-1. Archive verification independently checked copied bytes, receipt script/input/raw-log/capture bindings and the three equal 601-file captures. Local -text attributes preserve original line endings in Git. The explicit 601-file scope and separately bound environment/configuration observations do not claim to hash every possible toolchain or registry input.
The two-site correction at [83e840e37f3c3d230382722e99e87bf865abb12e](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/commit/83e840e37f3c3d230382722e99e87bf865abb12e) was submitted to a fresh gate. It is source-only at this archive checkpoint; this failed attempt does not establish compilation, test, strict-lint, GUI or native acceptance for the corrected source. Original failed evidence is retained without replacement.
@@ -0,0 +1,137 @@
{
"sourceCommit": "2c9cd2b3e661ef85f11590c7128dcb2f502d0c26",
"archiveBase": "c26ee6d2634376b41a64b50230a68a640559c67d",
"originalDirectory": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-workspace-gates-20260913/",
"archivedAtUtc": "2026-09-13T06:37:11.342Z",
"files": [
{
"path": "original/README.md",
"bytes": 4907,
"sha256": "b9fd5902a04aba3bfc3b0495b06f750b33ff8dd5955e80a805a211180ce8b608",
"gitBlob": "a39d982f67e491c831d1ebf3d7b1a30f17132400"
},
{
"path": "original/capture.ps1",
"bytes": 4063,
"sha256": "5a0a727cfc2e05f5f13313ac58a22791b961cf6f423b4fa167e8a0716b6b3d4d",
"gitBlob": "a7cf360b1d86ab361e130515c1d31f97d4ee3060"
},
{
"path": "original/enumerate-inputs.ps1",
"bytes": 1818,
"sha256": "2f3e9fcb5b3c38f91c3ea84c3a283bbd01d598fb825cd1fa73051f7623331c55",
"gitBlob": "b985c34df113d42b23a58810269cf7478e5f3fce"
},
{
"path": "original/enumeration.json",
"bytes": 73591,
"sha256": "aa4dcbc2290a2568461ae9033643a3eff988bf694e52a4d6492e4dce264773da",
"gitBlob": "652d404b30c1cef026eabc83bf7f304759eab482"
},
{
"path": "original/expected-inputs.json",
"bytes": 112836,
"sha256": "faa678ee1213a52fa61dd9d9633f651d25a507fca90aa33039505ad89a2c41ac",
"gitBlob": "0be9facea64783a2960f741b4e5d77e26928be0c"
},
{
"path": "original/expected-tests.json",
"bytes": 161858,
"sha256": "4e5af01c09702c6c254c2ac09207990ddcdb60b319e6e3890931c21479f4c19f",
"gitBlob": "8d71b89666f7d065317d2373395c6937f5b42d8a"
},
{
"path": "original/external-inputs.json",
"bytes": 1430,
"sha256": "4a7fd183489fb6bd867ff2ea7ec53ebdf84b9d173848621008b837f4f50af98e",
"gitBlob": "5791337a97a17c0543d6184665ba3060157df268"
},
{
"path": "original/inputs-complete-before.json",
"bytes": 117198,
"sha256": "b682313252b98870ea53d27666c2efabeaf55ec99b7c3d3e1887fff70fc9b3fc",
"gitBlob": "ff3557cc49fc38df025bfd27255481a3c6f97640"
},
{
"path": "original/inputs-complete-list-after.json",
"bytes": 117198,
"sha256": "838c867a67a7441187cb5a58a9bd49682bf6a4fd885b9bb6fdc91da02f7a08f6",
"gitBlob": "b52d88140aa6ddfad644d2fc503e33cf9fb8ebeb"
},
{
"path": "original/inputs-complete-list-before.json",
"bytes": 117198,
"sha256": "b3e88eb1eccd2ca5df4048140a9899042fd7a8464c22d049f8cab35091d5af6a",
"gitBlob": "75d2925d1dc5363f393075b33ec8ac57ca292163"
},
{
"path": "original/list-receipt.json",
"bytes": 2375,
"sha256": "6817e5baeeb72c9557440090059a99671cba6345e54a997aa6ea217c1c7c360d",
"gitBlob": "de107960eda527082a57a41244354765af234522"
},
{
"path": "original/list.log",
"bytes": 1916,
"sha256": "84fbcdcbab5620245d186927f8f8057e4d3ba988a0e9eb75e006bbccb2690c3b",
"gitBlob": "967bf6f04a5b988fba3f832c6c245ca75b0faed1"
},
{
"path": "original/package-clearance.json",
"bytes": 482,
"sha256": "2817742f139a64faff8e1eb9b9442d4a356da053f1644a83cfe6c44ec95d04b9",
"gitBlob": "3cf988082e8ef74f22c4f0a38df77ec10409e8da"
},
{
"path": "original/package-clearance.log",
"bytes": 40,
"sha256": "106a67b5863f667c164bffae31fd2a2cb713f1a3154fb3f5af8648920339db54",
"gitBlob": "e2200c670c9b375fd02e8a8335f36bbe983d922e"
},
{
"path": "original/parser-verification.json",
"bytes": 1022,
"sha256": "1596b2bc8dbe7b62e66808a8e68630dda5a9bbe9948f6c49df14c9cd1fc38d4f",
"gitBlob": "71d340cb476a0c84c6e5096215b2d80e52f69131"
},
{
"path": "original/preparation.json",
"bytes": 2406,
"sha256": "7e334c9ee3ec01c6de28bb4a1b1791ae356b42cf3d3847bd27fce27e09d51a36",
"gitBlob": "62b6a6c764f371b283f8e913a720a7a7e5d7ac7a"
},
{
"path": "original/run.ps1",
"bytes": 11421,
"sha256": "c8d0cacd7236b440bdb2e55edd71e4f73db845473bbe24caa468e1ddb65ab256",
"gitBlob": "fbff9caa3deec60c87819954dcc687c12bc947bd"
},
{
"path": "original/server-provenance.json",
"bytes": 1031,
"sha256": "cd11fd6431ed30e545b12a3a8605a81bb1b59cb5bbd03a7a05120324dc1d948b",
"gitBlob": "608327ad3995f351d455e08bac0822fa4db6e850"
},
{
"path": "original/toolchain-versions.json",
"bytes": 2268,
"sha256": "d5cd7c7c8d2ac4b586bfb1cff5c7bece19a8e82c47631e073a78fe58b57494ce",
"gitBlob": "6e9a0bcd877d207379af960e96c6f9655d9614da"
},
{
"path": "original/validate-scripts.ps1",
"bytes": 445,
"sha256": "ee356f8930de3a21c424deae4ba72af1c39dd4c77b89d10662a4e831b8a00857",
"gitBlob": "c01ef461446bdd55bd5a71ccd6e5cf86c157fae4"
},
{
"path": "original/verify-parser.ps1",
"bytes": 3028,
"sha256": "31d79e325aef50871dbd7a3482105b717630368de35f547d813f25b761266b7a",
"gitBlob": "9b7f7084cdc4b027188504317032f34ec3064646"
}
],
"byteExact": true,
"receiptBindingsVerified": true,
"allThreeCapturesMatch601": true
}
@@ -0,0 +1,25 @@
# Prepared saved Scenario workspace Windows gate
Prepared at `2c9cd2b3e661ef85f11590c7128dcb2f502d0c26` in `.local/scenario-workspace-ytr83r-20260913`. No Cargo, compiler/version command, cleanup, server, application build or native launch was executed during preparation. Parent alone dispatches each stage. This directory contains no product pass claim.
Run in order with PowerShell 7: `pwsh -NoProfile -File .local/scenario-workspace-gates-20260913/run.ps1 -Stage list`, then separate invocations for `focused`, `all`, `clippy`, `build`. A later stage requires its exact successful predecessor, unchanged source/config/recipe hashes and preserved prior raw log. The runner carries transitive prior bindings, including the actual listing receipt, through later stages. Existing logs/receipts/captures are never overwritten; failure/retry needs a new directory.
Before dispatch, parent supplies current-pin `package-clearance.json` with base, successful cargoExitCode 0, absolute root target directory and dependenciesRetained=true. Recommended parent clearance is limited to oa-desktop/oa-server/oa-core because this gate moves to a different worktree; no cleanup is performed by preparation or run.ps1. Shared root target and existing dependency outputs remain parent-owned.
## Exact source and test selection
Fresh Git and independent rg enumeration agree on **601** source/build/fixture/config files, rather than inheriting the old 591 count. `enumeration.json` records both complete memberships and tree; `expected-inputs.json` records independently computed byte lengths/SHA-256. The initial `inputs-complete-before.json` is captured once, after clean pinned source verification. Every stage re-enumerates and captures before/after, rejecting changed membership or bytes.
Focused selection is **224 unique tests**: the previous 87 renderer/dispatch tests (one dispatch name explicitly changed), all 35 new tests, and affected existing Scenario/direct/workspace/operation/usage, canvas control, diagram selection/usage/reveal and behavior lifecycle cases. `expected-tests.json` contains every exact qualified name and the prefix rationale. All selected leaf test functions were found in current Rust source, including async tokio tests; selected additions are bound to their module files. New 35 comprise 5 presentation adapter, 5 controller, 5 camera+2 shared camera/control, 6 App routing, 4 adoption, 2 owner navigation and 6 saved usage tests.
The previous actual 1010-name listing, one explicit rename and 35 registered additions predict **1045 desktop tests**. This is a membership expectation, not an execution result: the actual `--list` must match the complete exact name set, with unique names and consistent list summaries. Focused must execute each 224 exactly once, pass all with no ignores and match the actual listing's remaining count (predicted 821 filtered). Full desktop must match the actual listed multiset, run all 224 focused tests successfully, have zero filtered tests and exactly the three existing ignored timing/scale probes named in the manifest. There is no zero-match success path.
One old dispatch filter changes from `app::saved_scenario_dispatch_tests::unsupported_saved_picker_and_reveal_do_not_apply_pending_properties` to `app::saved_scenario_dispatch_tests::saved_picker_with_invalid_properties_and_reveal_with_pending_properties_do_not_apply`; its replacement remains in the retained 87 membership.
`server-provenance.json` records unchanged core/server/root-manifest scope relative to 37 and binds its passed server receipt/log. The UI gate does not repeat server tests. The parent-owned old 37 strict failure is preserved separately; this source includes its style-only correction. The new strict stage runs `cargo clippy -p oa-desktop --all-targets --locked --offline -- -D warnings`. The final GUI build records root/target/debug/arcadia-studio.exe bytes/hash/mtime; no GUI is presently built or launched by this preparation.
## Environment and script checks
The external toolchain env script and all eight Cargo config candidates are freshly recorded in `external-inputs.json`; the env script is present and the config candidates absent. `env.ps1` sets build jobs 1, incremental 0, stable-x86_64-pc-windows-gnullvm, clang linker and the configured cargo/rustup homes. This is the standard gate, not an incremental development trial. First list invocation records cargo/rustc/clippy/clang version output and selected runtime environment; later stages retain that binding. No registry-wide hashing is claimed.
PowerShell parsing checks all five scripts. `verify-parser.ps1` executes only the actual runner's output parser against synthetic complete/missing/duplicate/wrong-total/wrong-filtered/zero logs; it does not execute Cargo. Script and parser results are preparation evidence only. The original beforecapture is protected from replacement.
@@ -0,0 +1,47 @@
#Requires -Version 7.0
param([Parameter(Mandatory=$true)][ValidatePattern('^(before|after|(list|focused|all|clippy|build)-(before|after))$')][string]$Stage)
Set-StrictMode -Version Latest
$ErrorActionPreference='Stop'
$taskWorkspace='C:\Users\User\Documents\Git\ARCADIA-Studio\.local\scenario-workspace-ytr83r-20260913'
$taskPin='2c9cd2b3e661ef85f11590c7128dcb2f502d0c26'
function Hash-Input([string]$Path){(Get-FileHash -LiteralPath $Path -Algorithm SHA256).Hash.ToLowerInvariant()}
$taskOutput=Join-Path $PSScriptRoot ('inputs-complete-'+$Stage+'.json')
if(Test-Path -LiteralPath $taskOutput){throw 'Preserve existing input evidence; use a new directory for retries.'}
$pinRecord=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'expected-inputs.json')|ConvertFrom-Json
$enumeration=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'enumeration.json')|ConvertFrom-Json
$external=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'external-inputs.json')|ConvertFrom-Json
if($pinRecord.base -cne $taskPin -or $enumeration.base -cne $taskPin -or $external.base -cne $taskPin){throw 'Wrong input pin.'}
Push-Location -LiteralPath $taskWorkspace
try {
$taskBase=git rev-parse HEAD
if($LASTEXITCODE -ne 0 -or $taskBase -cne $taskPin){throw 'Wrong source commit.'}
$status=@(git status --porcelain)
if($LASTEXITCODE -ne 0 -or $status.Count){throw 'Frozen worktree changed.'}
$taskRoots=@($enumeration.rootInputs);$taskScopes=@($enumeration.scopes)
$tracked=@(git ls-files -- @taskRoots @taskScopes)
if($LASTEXITCODE -ne 0){throw 'Git enumeration failed.'}
$tracked=@($tracked | ForEach-Object {$_.Replace('\','/')} | Sort-Object -Unique)
$present=@(rg --files @taskScopes)
if($LASTEXITCODE -ne 0){throw 'Actual input enumeration failed.'}
$taskPaths=@(($present+$taskRoots) | ForEach-Object {$_.Replace('\','/')} | Sort-Object -Unique)
if(@(Compare-Object $tracked $taskPaths).Count -or @(Compare-Object @($enumeration.gitPaths) $tracked).Count){throw 'Frozen input membership changed.'}
$taskEntries=@($taskPaths | ForEach-Object {$item=Get-Item -LiteralPath $_;[ordered]@{path=$_;bytes=$item.Length;sha256=(Hash-Input $_)}})
$externalNow=@(foreach($f in $external.files){
$present=Test-Path -LiteralPath $f.path
if($present -ne $f.present){throw ('External config presence changed: '+$f.path)}
if($present){$item=Get-Item -LiteralPath $f.path;$hash=Hash-Input $f.path;if($item.Length -ne $f.bytes -or $hash -cne $f.sha256){throw ('External input changed: '+$f.path)};[ordered]@{path=$f.path;present=$true;bytes=$item.Length;sha256=$hash}}
else{[ordered]@{path=$f.path;present=$false}}
})
$taskRecord=[ordered]@{capturedUtc=[DateTime]::UtcNow.ToString('o');workspace=$taskWorkspace;base=$taskBase;count=$taskEntries.Count;files=$taskEntries;externalInputs=$externalNow;expectedInputsSha256=(Hash-Input (Join-Path $PSScriptRoot 'expected-inputs.json'));enumerationSha256=(Hash-Input (Join-Path $PSScriptRoot 'enumeration.json'))}
$taskRecord|ConvertTo-Json -Depth 8|Set-Content -LiteralPath $taskOutput -Encoding utf8
if($taskEntries.Count -ne $pinRecord.count){throw 'Pinned dynamic count changed.'}
$expected=@{}
foreach($f in $pinRecord.files){if($expected.ContainsKey($f.path)){throw 'Duplicate pinned input.'};$expected[$f.path]=$f}
foreach($f in $taskEntries){if(-not $expected.ContainsKey($f.path)){throw 'Unexpected input.'};$old=$expected[$f.path];if($f.bytes -ne $old.bytes -or $f.sha256 -cne $old.sha256){throw ('Input changed: '+$f.path)};$expected.Remove($f.path)}
if($expected.Count){throw 'Missing input.'}
if($Stage -ne 'before'){
$baseline=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'inputs-complete-before.json')|ConvertFrom-Json
if($baseline.base -cne $taskPin -or $baseline.count -ne $pinRecord.count -or $baseline.expectedInputsSha256 -cne $taskRecord.expectedInputsSha256 -or $baseline.enumerationSha256 -cne $taskRecord.enumerationSha256){throw 'Baseline binding changed.'}
}
Write-Output ('Captured and verified '+$taskEntries.Count+' inputs: '+$Stage)
} finally {Pop-Location}
@@ -0,0 +1,27 @@
#Requires -Version 7.0
$ErrorActionPreference='Stop'
if(Test-Path -LiteralPath (Join-Path $PSScriptRoot 'enumeration.json')){throw 'Preserve existing enumeration; use a new gate for retries.'}
Set-StrictMode -Version Latest
$workspace='C:\Users\User\Documents\Git\ARCADIA-Studio\.local\scenario-workspace-ytr83r-20260913'
$pin='2c9cd2b3e661ef85f11590c7128dcb2f502d0c26'
Push-Location -LiteralPath $workspace
try {
$head=git rev-parse HEAD
if($LASTEXITCODE -ne 0 -or $head -cne $pin){throw 'Wrong frozen pin'}
$status=@(git status --porcelain)
if($LASTEXITCODE -ne 0 -or $status.Count){throw 'Frozen worktree is not clean'}
$scopes=@('crates','docs','examples','build','harness/fixtures','harness/experiments/textual-authoring-20260911')
$roots=@('Cargo.toml','Cargo.lock','rust-toolchain.toml')
$tracked=@(git ls-files -- @roots @scopes)
if($LASTEXITCODE -ne 0){throw 'Git enumeration failed'}
$tracked=@($tracked | ForEach-Object { $_.Replace('\','/') } | Sort-Object -Unique)
$present=@(rg --files @scopes)
if($LASTEXITCODE -ne 0){throw 'Independent rg enumeration failed'}
$present=@(($present+$roots) | ForEach-Object { $_.Replace('\','/') } | Sort-Object -Unique)
if(@(Compare-Object $tracked $present).Count){throw 'Git and actual file memberships differ'}
$gitTree=git rev-parse 'HEAD^{tree}'
if($LASTEXITCODE -ne 0){throw 'Tree identity unavailable'}
$record=[ordered]@{base=$head;tree=$gitTree;workspace=$workspace;capturedUtc=[DateTime]::UtcNow.ToString('o');scopes=$scopes;rootInputs=$roots;gitCount=$tracked.Count;rgCount=$present.Count;gitPaths=$tracked;rgPaths=$present}
$record|ConvertTo-Json -Depth 6|Set-Content -LiteralPath (Join-Path $PSScriptRoot 'enumeration.json') -Encoding utf8
Write-Output ('Verified Git/rg membership '+$tracked.Count+' at '+$head)
} finally {Pop-Location}
@@ -0,0 +1,44 @@
{
"base": "2c9cd2b3e661ef85f11590c7128dcb2f502d0c26",
"status": "External environment/config provenance; these paths are not claimed version-controlled",
"files": [
{
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/env.ps1",
"present": true,
"bytes": 572,
"sha256": "be2226f08764bb6961b4be8513ce55bab076890cddd2fef0f54a4031f94a82d4"
},
{
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.cargo/config",
"present": false
},
{
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/.cargo/config",
"present": false
},
{
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-workspace-ytr83r-20260913/.cargo/config",
"present": false
},
{
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/cargo/config",
"present": false
},
{
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.cargo/config.toml",
"present": false
},
{
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/.cargo/config.toml",
"present": false
},
{
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-workspace-ytr83r-20260913/.cargo/config.toml",
"present": false
},
{
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/cargo/config.toml",
"present": false
}
]
}
@@ -0,0 +1,48 @@
{
"stage": "list",
"command": "cargo test -p oa-desktop --all-targets --locked --offline -- --list",
"arguments": [
"test",
"-p",
"oa-desktop",
"--all-targets",
"--locked",
"--offline",
"--",
"--list"
],
"base": "2c9cd2b3e661ef85f11590c7128dcb2f502d0c26",
"workspace": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\scenario-workspace-ytr83r-20260913",
"target": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\target",
"startUtc": "2026-09-13T06:17:48.6934273Z",
"endUtc": "2026-09-13T06:34:21.8214194Z",
"cargoExitCode": 101,
"selectionValid": false,
"inputsUnchanged": true,
"postflightFailure": null,
"boundScriptAndInputHashes": {
"inputs-complete-before.json": "b682313252b98870ea53d27666c2efabeaf55ec99b7c3d3e1887fff70fc9b3fc",
"run.ps1": "c8d0cacd7236b440bdb2e55edd71e4f73db845473bbe24caa468e1ddb65ab256",
"server-provenance.json": "cd11fd6431ed30e545b12a3a8605a81bb1b59cb5bbd03a7a05120324dc1d948b",
"package-clearance.json": "2817742f139a64faff8e1eb9b9442d4a356da053f1644a83cfe6c44ec95d04b9",
"enumeration.json": "aa4dcbc2290a2568461ae9033643a3eff988bf694e52a4d6492e4dce264773da",
"external-inputs.json": "4a7fd183489fb6bd867ff2ea7ec53ebdf84b9d173848621008b837f4f50af98e",
"expected-inputs.json": "faa678ee1213a52fa61dd9d9633f651d25a507fca90aa33039505ad89a2c41ac",
"expected-tests.json": "4e5af01c09702c6c254c2ac09207990ddcdb60b319e6e3890931c21479f4c19f",
"capture.ps1": "5a0a727cfc2e05f5f13313ac58a22791b961cf6f423b4fa167e8a0716b6b3d4d"
},
"priorStage": null,
"externalEnvironmentPath": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\env.ps1",
"externalEnvironmentSha256": "be2226f08764bb6961b4be8513ce55bab076890cddd2fef0f54a4031f94a82d4",
"toolchainVersionsSha256": "d5cd7c7c8d2ac4b586bfb1cff5c7bece19a8e82c47631e073a78fe58b57494ce",
"rawLogSha256": "84fbcdcbab5620245d186927f8f8057e4d3ba988a0e9eb75e006bbccb2690c3b",
"beforeCaptureSha256": "b3e88eb1eccd2ca5df4048140a9899042fd7a8464c22d049f8cab35091d5af6a",
"afterCaptureSha256": "838c867a67a7441187cb5a58a9bd49682bf6a4fd885b9bb6fdc91da02f7a08f6",
"listedTests": [],
"executedTests": [],
"testResultSummaries": [],
"matchedRegressionTests": [],
"ignoredTests": [],
"listSummaries": [],
"binary": null
}
@@ -0,0 +1,37 @@
Compiling http v1.5.0
Compiling http-body v1.1.0
Compiling hyper v1.11.1
Compiling http-body-util v0.1.5
Compiling hyper-util v0.1.20
Compiling oa-core v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\scenario-workspace-ytr83r-20260913\crates\oa-core)
Compiling axum-core v0.5.6
Compiling tower-http v0.6.11
Compiling oa-server v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\scenario-workspace-ytr83r-20260913\crates\oa-server)
Compiling axum v0.8.9
Compiling hyper-rustls v0.27.9
Compiling oa-desktop v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\scenario-workspace-ytr83r-20260913\crates\oa-desktop)
Compiling reqwest v0.12.28
error[E0433]: cannot find `executor` in `futures`
--> crates\oa-desktop\src\app\scenario_diagram\adoption_tests.rs:171:20
|
171 | iced::futures::executor::block_on(async {
| ^^^^^^^^ could not find `executor` in `futures`
|
note: found an item that was configured out
--> C:\Users\User\Documents\Git\ARCADIA-Studio\.local\toolchain\cargo\registry\src\index.crates.io-1949cf8c6b5b557f\futures-0.3.34\src\lib.rs:150:9
|
148 | #[cfg(feature = "executor")]
| -------------------- the item is gated behind the `executor` feature
149 | #[cfg_attr(docsrs, doc(cfg(feature = "executor")))]
150 | pub mod executor {
| ^^^^^^^^
error[E0063]: missing field `scenario_view` in initializer of `canvas_workspace::Scope`
--> crates\oa-desktop\src\app\process_canvas.rs:63:25
|
63 | let scope = canvas_workspace::Scope {
| ^^^^^^^^^^^^^^^^^^^^^^^ missing `scenario_view`
Some errors have detailed explanations: E0063, E0433.
For more information about an error, try `rustc --explain E0063`.
error: could not compile `oa-desktop` (bin "arcadia-studio" test) due to 2 previous errors
@@ -0,0 +1,14 @@
{
"startedUtc": "2026-09-13T06:16:32.5821832Z",
"completedUtc": "2026-09-13T06:16:35.7079384Z",
"command": "cargo clean -p oa-desktop -p oa-server -p oa-core --target-dir <verified root target>",
"target": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\target",
"base": "2c9cd2b3e661ef85f11590c7128dcb2f502d0c26",
"workspacePackagesCleared": [
"oa-desktop",
"oa-server",
"oa-core"
],
"dependenciesRetained": true,
"cargoExitCode": 0
}
@@ -0,0 +1 @@
Removed 161 files, 561.1MiB total
@@ -0,0 +1,51 @@
{
"status": "Synthetic actual-runner parser checks only; no Cargo or product tests",
"focusedCount": 224,
"cases": [
{
"case": "focused-exact",
"expected": true,
"actual": true
},
{
"case": "focused-zero",
"expected": false,
"actual": false
},
{
"case": "focused-duplicate",
"expected": false,
"actual": false
},
{
"case": "focused-missing",
"expected": false,
"actual": false
},
{
"case": "focused-wrong-total",
"expected": false,
"actual": false
},
{
"case": "focused-wrong-filtered",
"expected": false,
"actual": false
},
{
"case": "list-complete",
"expected": true,
"actual": true
},
{
"case": "list-missing-summary",
"expected": false,
"actual": false
},
{
"case": "list-duplicate",
"expected": false,
"actual": false
}
]
}
@@ -0,0 +1,81 @@
{
"source": "2c9cd2b3e661ef85f11590c7128dcb2f502d0c26",
"status": "Prepared and verified only; no Cargo, toolchain-version invocation, cleanup or native execution",
"input_count": 601,
"focused_count": 224,
"new_tests": 35,
"predicted_desktop_count": 1045,
"expected_ignored_count": 3,
"before_capture_count": 1,
"before_independently_verified": true,
"stages": [
"list",
"focused",
"all",
"clippy",
"build"
],
"parent_must_supply": "Current-pin successful package-clearance.json before list",
"files": [
{
"path": "run.ps1",
"bytes": 11421,
"sha256": "c8d0cacd7236b440bdb2e55edd71e4f73db845473bbe24caa468e1ddb65ab256"
},
{
"path": "capture.ps1",
"bytes": 4063,
"sha256": "5a0a727cfc2e05f5f13313ac58a22791b961cf6f423b4fa167e8a0716b6b3d4d"
},
{
"path": "enumerate-inputs.ps1",
"bytes": 1818,
"sha256": "2f3e9fcb5b3c38f91c3ea84c3a283bbd01d598fb825cd1fa73051f7623331c55"
},
{
"path": "verify-parser.ps1",
"bytes": 3028,
"sha256": "31d79e325aef50871dbd7a3482105b717630368de35f547d813f25b761266b7a"
},
{
"path": "validate-scripts.ps1",
"bytes": 445,
"sha256": "ee356f8930de3a21c424deae4ba72af1c39dd4c77b89d10662a4e831b8a00857"
},
{
"path": "expected-inputs.json",
"bytes": 112836,
"sha256": "faa678ee1213a52fa61dd9d9633f651d25a507fca90aa33039505ad89a2c41ac"
},
{
"path": "expected-tests.json",
"bytes": 161858,
"sha256": "4e5af01c09702c6c254c2ac09207990ddcdb60b319e6e3890931c21479f4c19f"
},
{
"path": "external-inputs.json",
"bytes": 1430,
"sha256": "4a7fd183489fb6bd867ff2ea7ec53ebdf84b9d173848621008b837f4f50af98e"
},
{
"path": "enumeration.json",
"bytes": 73591,
"sha256": "aa4dcbc2290a2568461ae9033643a3eff988bf694e52a4d6492e4dce264773da"
},
{
"path": "inputs-complete-before.json",
"bytes": 117198,
"sha256": "b682313252b98870ea53d27666c2efabeaf55ec99b7c3d3e1887fff70fc9b3fc"
},
{
"path": "parser-verification.json",
"bytes": 1022,
"sha256": "1596b2bc8dbe7b62e66808a8e68630dda5a9bbe9948f6c49df14c9cd1fc38d4f"
},
{
"path": "server-provenance.json",
"bytes": 1031,
"sha256": "cd11fd6431ed30e545b12a3a8605a81bb1b59cb5bbd03a7a05120324dc1d948b"
}
]
}
@@ -0,0 +1,111 @@
#Requires -Version 7.0
param([Parameter(Mandatory=$true)][ValidateSet('list','focused','all','clippy','build')][string]$Stage)
Set-StrictMode -Version Latest
$ErrorActionPreference='Stop'
$PSNativeCommandUseErrorActionPreference=$false
$taskWorkspace='C:\Users\User\Documents\Git\ARCADIA-Studio\.local\scenario-workspace-ytr83r-20260913'
$taskTarget='C:\Users\User\Documents\Git\ARCADIA-Studio\target'
$taskPin='2c9cd2b3e661ef85f11590c7128dcb2f502d0c26'
$toolchainEnv='C:\Users\User\Documents\Git\ARCADIA-Studio\.local\toolchain\env.ps1'
function Hash-Input([string]$Path){(Get-FileHash -LiteralPath $Path -Algorithm SHA256).Hash.ToLowerInvariant()}
function Same-Names($Left,$Right){$a=@($Left|Sort-Object);$b=@($Right|Sort-Object);return $a.Count -eq $b.Count -and @(Compare-Object $a $b).Count -eq 0}
$taskLog=Join-Path $PSScriptRoot ($Stage+'.log')
$taskReceipt=Join-Path $PSScriptRoot ($Stage+'-receipt.json')
if((Test-Path -LiteralPath $taskLog)-or(Test-Path -LiteralPath $taskReceipt)){throw 'Do not replace evidence; prepare a new gate directory for retries.'}
$clearancePath=Join-Path $PSScriptRoot 'package-clearance.json'
$clearance=Get-Content -Raw -LiteralPath $clearancePath|ConvertFrom-Json
if($clearance.base -cne $taskPin -or $clearance.cargoExitCode -ne 0 -or [IO.Path]::GetFullPath($clearance.target) -ine $taskTarget -or -not $clearance.dependenciesRetained){throw 'Parent-owned successful current-pin package clearance is required.'}
$selection=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'expected-tests.json')|ConvertFrom-Json
$expected=@($selection.tests|Sort-Object -Unique)
if($selection.source_commit -cne $taskPin -or $selection.expected_count -ne 224 -or $expected.Count -ne 224 -or @($selection.tests).Count -ne 224){throw 'Wrong exact focused membership.'}
$expectedCount=224
$commonFiles=@('run.ps1','capture.ps1','expected-tests.json','expected-inputs.json','enumeration.json','external-inputs.json','inputs-complete-before.json','package-clearance.json','server-provenance.json')
$boundScripts=@{}
foreach($file in $commonFiles){$boundScripts[$file]=Hash-Input (Join-Path $PSScriptRoot $file)}
$previous=@{focused='list';all='focused';clippy='all';build='clippy'}
$priorBinding=$null
if($previous.ContainsKey($Stage)){
$priorName=$previous[$Stage]
$priorPath=Join-Path $PSScriptRoot ($priorName+'-receipt.json')
$prior=Get-Content -Raw -LiteralPath $priorPath|ConvertFrom-Json
if($prior.stage -cne $priorName -or $prior.base -cne $taskPin -or $prior.workspace -ine $taskWorkspace -or $prior.target -ine $taskTarget -or $prior.cargoExitCode -ne 0 -or -not $prior.selectionValid -or -not $prior.inputsUnchanged){throw 'Exact prior sequential stage did not pass.'}
foreach($file in $commonFiles){if($prior.boundScriptAndInputHashes.$file -cne $boundScripts[$file]){throw ('Prior recipe/input binding changed: '+$file)}}
foreach($property in $prior.boundScriptAndInputHashes.PSObject.Properties){if((Hash-Input (Join-Path $PSScriptRoot $property.Name)) -cne $property.Value){throw ('Prior transitive binding changed: '+$property.Name)};$boundScripts[$property.Name]=$property.Value}
if((Hash-Input (Join-Path $PSScriptRoot ($priorName+'.log'))) -cne $prior.rawLogSha256){throw 'Prior raw output changed.'}
$priorBinding=[ordered]@{stage=$priorName;receiptSha256=(Hash-Input $priorPath);rawLogSha256=$prior.rawLogSha256}
}
Push-Location -LiteralPath $taskWorkspace
try {
& (Join-Path $PSScriptRoot 'capture.ps1') -Stage ($Stage+'-before')
. $toolchainEnv
$env:CARGO_TARGET_DIR=$taskTarget
$env:CARGO_TERM_COLOR='never'
$PSNativeCommandUseErrorActionPreference=$false
$versionPath=Join-Path $PSScriptRoot 'toolchain-versions.json'
if($Stage -eq 'list'){
if(Test-Path -LiteralPath $versionPath){throw 'Preserve prior toolchain version evidence.'}
$cargoVersion=@(& cargo --version --verbose 2>&1);$cargoVersionExit=$LASTEXITCODE
$rustcVersion=@(& rustc --version --verbose 2>&1);$rustcVersionExit=$LASTEXITCODE
$clippyVersion=@(& cargo clippy --version 2>&1);$clippyVersionExit=$LASTEXITCODE
$clangVersion=@(& clang --version 2>&1);$clangVersionExit=$LASTEXITCODE
[ordered]@{base=$taskPin;capturedUtc=[DateTime]::UtcNow.ToString('o');externalEnvironmentPath=$toolchainEnv;externalEnvironmentSha256=(Hash-Input $toolchainEnv);cargo=@($cargoVersion|ForEach-Object {$_.ToString()});cargoExitCode=$cargoVersionExit;rustc=@($rustcVersion|ForEach-Object {$_.ToString()});rustcExitCode=$rustcVersionExit;clippy=@($clippyVersion|ForEach-Object {$_.ToString()});clippyExitCode=$clippyVersionExit;clang=@($clangVersion|ForEach-Object {$_.ToString()});clangExitCode=$clangVersionExit;cargoPath=(Get-Command cargo).Source;rustcPath=(Get-Command rustc).Source;clangPath=(Get-Command clang).Source;cargoHome=$env:CARGO_HOME;rustupHome=$env:RUSTUP_HOME;rustupToolchain=$env:RUSTUP_TOOLCHAIN;buildJobs=$env:CARGO_BUILD_JOBS;incremental=$env:CARGO_INCREMENTAL}|ConvertTo-Json -Depth 8|Set-Content -LiteralPath $versionPath -Encoding utf8
if($cargoVersionExit -ne 0 -or $rustcVersionExit -ne 0 -or $clippyVersionExit -ne 0 -or $clangVersionExit -ne 0){throw 'Toolchain version query failed.'}
}
$versionsHash=Hash-Input $versionPath
if($priorBinding -and $prior.toolchainVersionsSha256 -cne $versionsHash){throw 'Toolchain version receipt changed.'}
$taskArgs=switch($Stage){
'list' {@('test','-p','oa-desktop','--all-targets','--locked','--offline','--','--list')}
'focused' {@('test','-p','oa-desktop','--bin','arcadia-studio','--locked','--offline','--','--exact')+$expected+@('--test-threads=1')}
'all' {@('test','-p','oa-desktop','--all-targets','--locked','--offline','--','--test-threads=1')}
'clippy' {@('clippy','-p','oa-desktop','--all-targets','--locked','--offline','--','-D','warnings')}
'build' {@('build','-p','oa-desktop','--bin','arcadia-studio','--locked','--offline')}
}
$taskStart=[DateTime]::UtcNow.ToString('o')
& cargo @taskArgs 2>&1|Tee-Object -FilePath $taskLog
$taskExit=$LASTEXITCODE
$taskEnd=[DateTime]::UtcNow.ToString('o')
$taskText=Get-Content -Raw -LiteralPath $taskLog
$taskValid=$true;$taskFailure=$null
$listed=@();$executed=@();$matched=@();$ignored=@();$summaries=@();$listSummaries=@()
if($Stage -eq 'list'){
$listed=@([regex]::Matches($taskText,'(?m)^([^\r\n]+): test\r?$')|ForEach-Object {$_.Groups[1].Value})
$matched=@($listed|Where-Object {$_ -cin $expected}|Sort-Object)
$listSummaries=@([regex]::Matches($taskText,'(?m)^(\d+) tests, (\d+) benchmarks\r?$')|ForEach-Object {[ordered]@{tests=[int]$_.Groups[1].Value;benchmarks=[int]$_.Groups[2].Value}})
$taskValid=$listed.Count -ge $expectedCount -and @($listed|Sort-Object -Unique).Count -eq $listed.Count -and (Same-Names $expected $matched) -and (Same-Names @($selection.desktop_tests) $listed) -and $listSummaries.Count -gt 0 -and ($listSummaries|ForEach-Object {$_.tests}|Measure-Object -Sum).Sum -eq $listed.Count -and ($listSummaries|ForEach-Object {$_.benchmarks}|Measure-Object -Sum).Sum -eq 0
}
if($Stage -in @('focused','all')){
$executed=@([regex]::Matches($taskText,'(?m)^test ([^\r\n]+?) \.\.\. (ok|FAILED|ignored)[^\r\n]*\r?$')|ForEach-Object {[ordered]@{name=$_.Groups[1].Value;result=$_.Groups[2].Value}})
$summaries=@([regex]::Matches($taskText,'test result: (ok|FAILED)\. (\d+) passed; (\d+) failed; (\d+) ignored; (\d+) measured; (\d+) filtered out;')|ForEach-Object {[ordered]@{status=$_.Groups[1].Value;passed=[int]$_.Groups[2].Value;failed=[int]$_.Groups[3].Value;ignored=[int]$_.Groups[4].Value;measured=[int]$_.Groups[5].Value;filtered=[int]$_.Groups[6].Value}})
$ignored=@($executed|Where-Object {$_.result -eq 'ignored'}|ForEach-Object {$_.name})
$passedCount=@($executed|Where-Object {$_.result -eq 'ok'}).Count
$failedCount=@($executed|Where-Object {$_.result -eq 'FAILED'}).Count
$taskValid=$summaries.Count -gt 0 -and $failedCount -eq 0 -and @($summaries|Where-Object {$_.status -ne 'ok' -or $_.failed -ne 0 -or $_.measured -ne 0}).Count -eq 0 -and ($summaries|ForEach-Object {$_. passed}|Measure-Object -Sum).Sum -eq $passedCount -and ($summaries|ForEach-Object {$_. ignored}|Measure-Object -Sum).Sum -eq $ignored.Count
if($Stage -in @('focused','all')){
$matched=@($executed|Where-Object {$_.name -cin $expected -and $_.result -eq 'ok'}|ForEach-Object {$_.name}|Sort-Object)
$taskValid=$taskValid -and (Same-Names $expected $matched)
}
if($Stage -eq 'focused'){$taskValid=$taskValid -and $executed.Count -eq $expectedCount -and $passedCount -eq $expectedCount -and $ignored.Count -eq 0 -and $summaries.Count -eq 1 -and $summaries[0].filtered -eq (@($prior.listedTests).Count - $expectedCount)}
if($Stage -eq 'all'){
$listPath=Join-Path $PSScriptRoot 'list-receipt.json'
$listHash=Hash-Input $listPath
$listReceipt=Get-Content -Raw -LiteralPath $listPath|ConvertFrom-Json
if($prior.priorStage.stage -cne 'list' -or $prior.priorStage.receiptSha256 -cne $listHash){throw 'Desktop listing changed after focused execution.'}
$boundScripts['list-receipt.json']=$listHash
$taskValid=$taskValid -and (Same-Names @($listReceipt.listedTests) @($executed|ForEach-Object {$_.name})) -and ($summaries|ForEach-Object {$_. filtered}|Measure-Object -Sum).Sum -eq 0 -and (Same-Names @($selection.ignored_tests) $ignored)
}
}
$inputsUnchanged=$false
try {
& (Join-Path $PSScriptRoot 'capture.ps1') -Stage ($Stage+'-after')
foreach($file in $boundScripts.Keys){if((Hash-Input (Join-Path $PSScriptRoot $file)) -cne $boundScripts[$file]){throw ('Gate recipe/input changed: '+$file)}}
if((Hash-Input $versionPath) -cne $versionsHash){throw 'Toolchain version receipt changed.'}
if($priorBinding -and (Hash-Input (Join-Path $PSScriptRoot ($priorBinding.stage+'-receipt.json'))) -cne $priorBinding.receiptSha256){throw 'Prior receipt changed during gate.'}
$inputsUnchanged=$true
}catch{$taskFailure=$_.Exception.Message}
$binary=$null
if($Stage -eq 'build' -and $taskExit -eq 0){$path=Join-Path $taskTarget 'debug/arcadia-studio.exe';$item=Get-Item -LiteralPath $path;$binary=[ordered]@{path=$item.FullName;bytes=$item.Length;sha256=(Hash-Input $path);mtimeUtc=$item.LastWriteTimeUtc.ToString('o')}}
[ordered]@{stage=$Stage;command=('cargo '+($taskArgs -join ' '));arguments=$taskArgs;base=$taskPin;workspace=$taskWorkspace;target=$taskTarget;startUtc=$taskStart;endUtc=$taskEnd;cargoExitCode=$taskExit;selectionValid=$taskValid;inputsUnchanged=$inputsUnchanged;postflightFailure=$taskFailure;boundScriptAndInputHashes=$boundScripts;priorStage=$priorBinding;externalEnvironmentPath=$toolchainEnv;externalEnvironmentSha256=(Hash-Input $toolchainEnv);toolchainVersionsSha256=$versionsHash;rawLogSha256=(Hash-Input $taskLog);beforeCaptureSha256=(Hash-Input (Join-Path $PSScriptRoot ('inputs-complete-'+$Stage+'-before.json')));afterCaptureSha256=if(Test-Path -LiteralPath (Join-Path $PSScriptRoot ('inputs-complete-'+$Stage+'-after.json'))){Hash-Input (Join-Path $PSScriptRoot ('inputs-complete-'+$Stage+'-after.json'))}else{$null};listedTests=$listed;executedTests=$executed;testResultSummaries=$summaries;matchedRegressionTests=$matched;ignoredTests=$ignored;listSummaries=$listSummaries;binary=$binary}|ConvertTo-Json -Depth 14|Set-Content -LiteralPath $taskReceipt -Encoding utf8
if($taskExit -ne 0){exit $taskExit}
if(-not $taskValid -or -not $inputsUnchanged){throw 'Gate membership or input binding failed; inspect receipt and raw output.'}
} finally {Pop-Location}
@@ -0,0 +1,42 @@
{
"status": "No repeated server stage: core/server/manifests unchanged from verified37 source",
"previous_source": "37be41092beb1c940f345072df1e017ce45fe2fc",
"source": "2c9cd2b3e661ef85f11590c7128dcb2f502d0c26",
"changed_core_server_manifest_paths": [],
"prior_server_receipt_sha256": "5c0cd2af2b1f3c12528ad961e5b08c60f8865751cca95c1267e1211faf7e0900",
"prior_server_log_sha256": "7c7d847ac942b23a33081fdc3eb9ec53a2c054cd422810e30528b5930c574d71",
"prior_server_results": [
{
"status": "ok",
"passed": 4,
"failed": 0,
"ignored": 0,
"measured": 0,
"filtered": 0
},
{
"status": "ok",
"passed": 0,
"failed": 0,
"ignored": 0,
"measured": 0,
"filtered": 0
},
{
"status": "ok",
"passed": 51,
"failed": 0,
"ignored": 0,
"measured": 0,
"filtered": 0
},
{
"status": "ok",
"passed": 2,
"failed": 0,
"ignored": 0,
"measured": 0,
"filtered": 0
}
]
}
@@ -0,0 +1,47 @@
{
"base": "2c9cd2b3e661ef85f11590c7128dcb2f502d0c26",
"capturedUtc": "2026-09-13T06:17:48.6325747Z",
"externalEnvironmentPath": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\env.ps1",
"externalEnvironmentSha256": "be2226f08764bb6961b4be8513ce55bab076890cddd2fef0f54a4031f94a82d4",
"cargo": [
"cargo 1.98.1 (797e8a9bc 2026-08-05)",
"release: 1.98.1",
"commit-hash: 797e8a9bca276c1c9f9f738d2a20f484fa4eea9d",
"commit-date: 2026-08-05",
"host: x86_64-pc-windows-gnullvm",
"libgit2: 1.9.4 (sys:0.21.0 vendored)",
"libcurl: 8.21.0-DEV (sys:0.4.90+curl-8.21.0 vendored ssl:Schannel)",
"os: Windows 10.0.26200 (Windows 11 Professional) [64-bit]"
],
"cargoExitCode": 0,
"rustc": [
"rustc 1.98.1 (48a229cea 2026-09-01)",
"binary: rustc",
"commit-hash: 48a229ceaefd4985c50990b14116b6d856af0985",
"commit-date: 2026-09-01",
"host: x86_64-pc-windows-gnullvm",
"release: 1.98.1",
"LLVM version: 22.1.8"
],
"rustcExitCode": 0,
"clippy": [
"clippy 0.1.98 (48a229ceae 2026-09-01)"
],
"clippyExitCode": 0,
"clang": [
"clang version 23.1.1 (https://github.com/llvm/llvm-project.git 6dfe1677ab8dffbc6ec13d53a1e0215d75147689)",
"Target: x86_64-w64-windows-gnu",
"Thread model: posix",
"InstalledDir: C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/llvm-mingw-20260908-ucrt-x86_64/bin",
"Configuration file: C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/llvm-mingw-20260908-ucrt-x86_64/bin/x86_64-w64-windows-gnu.cfg"
],
"clangExitCode": 0,
"cargoPath": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\bin\\cargo.exe",
"rustcPath": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\bin\\rustc.exe",
"clangPath": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\llvm-mingw-20260908-ucrt-x86_64\\bin\\clang.exe",
"cargoHome": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo",
"rustupHome": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\rustup",
"rustupToolchain": "stable-x86_64-pc-windows-gnullvm",
"buildJobs": "1",
"incremental": "0"
}
@@ -0,0 +1,8 @@
#Requires -Version 7.0
$ErrorActionPreference='Stop'
foreach($file in @('enumerate-inputs.ps1','capture.ps1','run.ps1','verify-parser.ps1','validate-scripts.ps1')){
$tokens=$null;$errors=$null
$null=[System.Management.Automation.Language.Parser]::ParseFile((Join-Path $PSScriptRoot $file),[ref]$tokens,[ref]$errors)
if($errors.Count){$errors|ForEach-Object {Write-Output $_};throw ('Parse failure: '+$file)}
Write-Output ('Parsed '+$file)
}
@@ -0,0 +1,31 @@
#Requires -Version 7.0
Set-StrictMode -Version Latest
$ErrorActionPreference='Stop'
$script=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'run.ps1')
$begin=$script.IndexOf(' $taskValid=$true;$taskFailure=$null')
$end=$script.IndexOf(' $inputsUnchanged=$false',$begin)
if($begin -lt 0 -or $end -lt 0){throw 'Runner parser block not found'}
$block=[scriptblock]::Create($script.Substring($begin,$end-$begin))
$selection=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'expected-tests.json')|ConvertFrom-Json
$expected=@($selection.tests|Sort-Object -Unique);$expectedCount=$expected.Count
function Same-Names($Left,$Right){$a=@($Left|Sort-Object);$b=@($Right|Sort-Object);return $a.Count -eq $b.Count -and @(Compare-Object $a $b).Count -eq 0}
$prior=[pscustomobject]@{listedTests=@($selection.desktop_tests)}
$filtered=@($prior.listedTests).Count-$expectedCount
$passLines=@($expected|ForEach-Object {'test '+$_+' ... ok'})
$summary='test result: ok. '+$expectedCount+' passed; 0 failed; 0 ignored; 0 measured; '+$filtered+' filtered out;'
$listLines=@($selection.desktop_tests|ForEach-Object {$_+': test'})
$listSummary=@($selection.desktop_tests).Count.ToString()+' tests, 0 benchmarks'
$cases=@(
[pscustomobject]@{name='focused-exact';stage='focused';valid=$true;text=(($passLines+@($summary)) -join "`n")},
[pscustomobject]@{name='focused-zero';stage='focused';valid=$false;text='test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out;'},
[pscustomobject]@{name='focused-duplicate';stage='focused';valid=$false;text=(($passLines+@($passLines[0],$summary)) -join "`n")},
[pscustomobject]@{name='focused-missing';stage='focused';valid=$false;text=(($passLines[1..($passLines.Count-1)]+@($summary)) -join "`n")},
[pscustomobject]@{name='focused-wrong-total';stage='focused';valid=$false;text=(($passLines+@('test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; '+$filtered+' filtered out;')) -join "`n")},
[pscustomobject]@{name='focused-wrong-filtered';stage='focused';valid=$false;text=(($passLines+@($summary.Replace(($filtered.ToString()+' filtered'), '0 filtered'))) -join "`n")},
[pscustomobject]@{name='list-complete';stage='list';valid=$true;text=(($listLines+@($listSummary)) -join "`n")},
[pscustomobject]@{name='list-missing-summary';stage='list';valid=$false;text=($listLines -join "`n")},
[pscustomobject]@{name='list-duplicate';stage='list';valid=$false;text=(($listLines+@($listLines[0],$listSummary)) -join "`n")}
)
$results=@(foreach($case in $cases){$Stage=$case.stage;$taskText=$case.text;. $block;if($taskValid -ne $case.valid){throw ('Unexpected parser decision: '+$case.name)};[ordered]@{case=$case.name;expected=$case.valid;actual=$taskValid}})
[ordered]@{status='Synthetic actual-runner parser checks only; no Cargo or product tests';focusedCount=$expectedCount;cases=$results}|ConvertTo-Json -Depth 6|Set-Content -LiteralPath (Join-Path $PSScriptRoot 'parser-verification.json') -Encoding utf8
Write-Output ('Verified '+$results.Count+' parser cases')