Archive closed Scenario spacing listing and focused verification
This commit is contained in:
@@ -0,0 +1 @@
|
||||
* -text -whitespace
|
||||
@@ -0,0 +1,22 @@
|
||||
# Scenario spacing: closed 0409 listing and focused gate
|
||||
|
||||
Source: [0409a481c7571e887f8912f0a8cdb93cfdcc01a7](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/commit/0409a481c7571e887f8912f0a8cdb93cfdcc01a7). This archive preserves the completed listing and focused regression stages after the narrowly corrected spacing evaluators. The [earlier c4 failure and full diagnostic](../scenario-spacing-gates-c4a2cf6-20260913/README.md) remain separate, unchanged evidence.
|
||||
|
||||
| Closed stage | Result | Evidence |
|
||||
| --- | --- | --- |
|
||||
| Desktop listing | Cargo exit 0; 1,083 listed; exact focused membership 289 | [receipt](original/list-receipt.json), [raw log](original/list.log) |
|
||||
| Focused desktop | Cargo exit 0; 289 passed, 0 failed, 0 ignored, 794 filtered; 377.92 s test time | [receipt](original/focused-receipt.json), [raw log](original/focused.log) |
|
||||
|
||||
Listing ran from 2026-09-13 10:12:15 UTC to 10:30:59 UTC; focused ran from 10:33:23 UTC to 10:40:28 UTC. The five before/after captures contain identical 610 source inputs and nine external inputs. Both receipts report valid selection, unchanged inputs, valid test-binary binding and no postflight failure. Independent archive preparation checked raw test inventories, every bound script/input hash, log/capture hashes, and the focused receipt's exact prior-list receipt binding.
|
||||
|
||||
The desktop test executable recorded after listing and before/after focused execution is 150,383,616 bytes, SHA-256 `ca557215b2b192f197fcdccac6a57841375149d9b22d7efea11d2aa8c087f029`. This archive carries the original binary identity receipts, not a binary copy or a new execution. Commands, toolchain versions, environment bindings and exact test names are preserved in the original artifacts.
|
||||
|
||||
## Scope
|
||||
|
||||
This is focused regression evidence, not full desktop or native acceptance. Full desktop, Clippy and GUI build stages were not executed in this gate. No new server execution or native trial is claimed. Runner scripts, templates, original README and inherited server provenance are preserved verbatim; their descriptions of possible later stages do not establish that those stages ran. Subsequent Details and label experiments are not covered by this source pin.
|
||||
|
||||
## Archive integrity
|
||||
|
||||
All 35 files from the closed original directory are copied byte for byte under `original/` (1,484,447 bytes), including both raw logs. [manifest.json](manifest.json) records byte counts, SHA-256 and Git blob hashes for each archived original plus this note and the local attributes file; it excludes itself to avoid a circular hash. Original absolute machine paths are historical provenance, while the relative links here are portable within the published archive. The attributes file prevents line-ending normalization.
|
||||
|
||||
Publication must explicitly stage the Git-ignored `original/list.log` and `original/focused.log` with `git add -f`; both are mandatory manifest entries. Archive preparation did not modify the original gate, execute tests, commit or publish.
|
||||
@@ -0,0 +1,261 @@
|
||||
{
|
||||
"sourceCommit": "0409a481c7571e887f8912f0a8cdb93cfdcc01a7",
|
||||
"archiveBase": "fdfe43f4b20e23d18334e8d4b3b8a4dc7a87f4d4",
|
||||
"preparedAtUtc": "2026-09-13T10:57:39.452Z",
|
||||
"classification": "closed_listing_and_passed_focused_regression_only",
|
||||
"sourceDirectory": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt3-20260913/",
|
||||
"originalFileCount": 35,
|
||||
"originalBytes": 1484447,
|
||||
"sourceInputCount": 610,
|
||||
"externalInputCount": 9,
|
||||
"priorFailureArchive": "../scenario-spacing-gates-c4a2cf6-20260913/",
|
||||
"unexecutedStages": [
|
||||
"all",
|
||||
"clippy",
|
||||
"build"
|
||||
],
|
||||
"verification": {
|
||||
"byteExactCopies": true,
|
||||
"receiptScriptInputBindings": true,
|
||||
"rawLogAndCaptureBindings": true,
|
||||
"priorListReceiptBinding": true,
|
||||
"allFiveCaptureInputsEqual": true,
|
||||
"rawListingExact": 1083,
|
||||
"focusedInventoryExact": 289,
|
||||
"focusedPassed": 289,
|
||||
"focusedFailed": 0,
|
||||
"focusedIgnored": 0,
|
||||
"focusedFiltered": 794,
|
||||
"focusedTestSeconds": 377.92,
|
||||
"testExecutableBindingsEqual": true
|
||||
},
|
||||
"requiredForceAddedLogs": [
|
||||
"original/list.log",
|
||||
"original/focused.log"
|
||||
],
|
||||
"manifestExcludesItself": true,
|
||||
"files": [
|
||||
{
|
||||
"path": ".gitattributes",
|
||||
"bytes": 20,
|
||||
"sha256": "e97602ab9cac70102245345c5ab0fc9830df8b17f1072b188265a662a3a547ae",
|
||||
"gitBlob": "bd2de00cda30e433943ceb23971ade38d5a3fc86"
|
||||
},
|
||||
{
|
||||
"path": "README.md",
|
||||
"bytes": 2999,
|
||||
"sha256": "1996fff4b7927fc6315b9934ba390bfa8b17d49e6a1782078bea06c96b2221b9",
|
||||
"gitBlob": "04ca0591b4ff982e02890539744eedec3f62e15c"
|
||||
},
|
||||
{
|
||||
"path": "original/README.md",
|
||||
"bytes": 4798,
|
||||
"sha256": "bc2f63dc51e540f90f56075ee2e9fa79b44e91a7c6b15ea67cec7e3af603ebbb",
|
||||
"gitBlob": "572d980d5f15b56fb098fa875407601ed7370f85"
|
||||
},
|
||||
{
|
||||
"path": "original/binary-inputs.ps1",
|
||||
"bytes": 1214,
|
||||
"sha256": "59da671a59d75ea0aa0c4662b1e48fd189823e45b71d0df98e65430becc7da83",
|
||||
"gitBlob": "e1cb7efd79da716b279e1d2f681728a7355d7ab0"
|
||||
},
|
||||
{
|
||||
"path": "original/cache-policy.json",
|
||||
"bytes": 443,
|
||||
"sha256": "a1484a0434ee1997891f0cac8976c509844c8908d3d662b03efb01eaaa071e1c",
|
||||
"gitBlob": "ed18df4630ead3bbb6079707cc1729b2a11ecc5f"
|
||||
},
|
||||
{
|
||||
"path": "original/capture.ps1",
|
||||
"bytes": 4119,
|
||||
"sha256": "37dbe1a2eb4cbac391863fc9c268cf4aebf498b4fe413d72586321b9a3b87f50",
|
||||
"gitBlob": "d8b8b1cf7b7f4cf57ef5a42b3e6caad7a142f5b8"
|
||||
},
|
||||
{
|
||||
"path": "original/correction-provenance.json",
|
||||
"bytes": 720,
|
||||
"sha256": "fbe1b54292c8766981e5ce62df5bf59f68f558e876e846916ee0ab9d1e3f3105",
|
||||
"gitBlob": "c8f3762d5de436f17e1d4633f197f515bab06119"
|
||||
},
|
||||
{
|
||||
"path": "original/correction-template.json",
|
||||
"bytes": 3642,
|
||||
"sha256": "2b123fc420728db09bdebc38f1a17230c23968471d80f484784601fe927504a7",
|
||||
"gitBlob": "6c2a69bcd5c07192a081c1bbe121c4f36327baa0"
|
||||
},
|
||||
{
|
||||
"path": "original/diagnostic.ps1",
|
||||
"bytes": 6853,
|
||||
"sha256": "705044deb1a1de0639f0f521a346e242697219f37915b0148b14e357a5d72564",
|
||||
"gitBlob": "53bea373508656bff7aa8cbb37d840af3fc210a6"
|
||||
},
|
||||
{
|
||||
"path": "original/enumerate-inputs.ps1",
|
||||
"bytes": 1843,
|
||||
"sha256": "67baee5827cdbec5f9385b4452cc65d8c66934299282e88ebe200a2260608ae6",
|
||||
"gitBlob": "d6e85dfaedfe35799cc8d61e908b2e442cefed1f"
|
||||
},
|
||||
{
|
||||
"path": "original/enumeration.json",
|
||||
"bytes": 74795,
|
||||
"sha256": "b1f92495badf1260de851e59736312b35da217736d784cbe6ff4f3fa899c316c",
|
||||
"gitBlob": "2ae37b75dad6c95134b5205c702e3ec463dd4982"
|
||||
},
|
||||
{
|
||||
"path": "original/expected-inputs.json",
|
||||
"bytes": 117420,
|
||||
"sha256": "0948fdd1d63bdc7e849cee0a496e6cf3748cab31f8dbf162071c84ddd44c8f55",
|
||||
"gitBlob": "ef3195bb6aa5d51e22f4b960441713158c26cc9b"
|
||||
},
|
||||
{
|
||||
"path": "original/expected-tests.json",
|
||||
"bytes": 155841,
|
||||
"sha256": "bface8488c96a1baa8217d3004cce079f7ade51efeb9ecf6a8016688395ec0fc",
|
||||
"gitBlob": "6760a7b3e96c1e7747a0fde5e8be20deec814de2"
|
||||
},
|
||||
{
|
||||
"path": "original/external-input-template.json",
|
||||
"bytes": 1413,
|
||||
"sha256": "8f0a45041bd0a5038647c62bde35df89f9b07ccdc9e37769f78154e021cf898b",
|
||||
"gitBlob": "43d124c29519305844c7e753cfa5f21e525018d7"
|
||||
},
|
||||
{
|
||||
"path": "original/external-inputs.json",
|
||||
"bytes": 1457,
|
||||
"sha256": "e2aaca45ebbace0087a41636896d94795680a864c8702eb9a17a7616201263f2",
|
||||
"gitBlob": "40095980f8b9609050ff149d34d9ab6f3c5caa53"
|
||||
},
|
||||
{
|
||||
"path": "original/finalization.json",
|
||||
"bytes": 611,
|
||||
"sha256": "c5b79ba9543ceabbec4df222014c9c76a259073b2755f9458e709486cd99b0f3",
|
||||
"gitBlob": "af587db05c38a58816b1e8dd35deb0da7bccb867"
|
||||
},
|
||||
{
|
||||
"path": "original/finalize.ps1",
|
||||
"bytes": 11913,
|
||||
"sha256": "c9abd26a5c541292c82fa78d4928beb7c3a946c8ee82c2600898284b584304c2",
|
||||
"gitBlob": "640190a13e1eeba4d1d61a6ccc9fd7891cc1ea72"
|
||||
},
|
||||
{
|
||||
"path": "original/focused-receipt.json",
|
||||
"bytes": 153408,
|
||||
"sha256": "0dfbdeffd835475132b79463e79c7988ed4c2b0709c050e777502d70cba1caac",
|
||||
"gitBlob": "6d61c2a26947f58b58f775b07fbc898ab1dbd358"
|
||||
},
|
||||
{
|
||||
"path": "original/focused.log",
|
||||
"bytes": 36138,
|
||||
"sha256": "98875cff7cf29fb600e88709b99e278daa3de536e95e0be7c8869ce8a58a3bb2",
|
||||
"gitBlob": "59baa2d365f84aa190c52fc02f17ea082bf9a7d2"
|
||||
},
|
||||
{
|
||||
"path": "original/inputs-complete-before.json",
|
||||
"bytes": 118980,
|
||||
"sha256": "d59b2bc44caef655ba1227cbf818ceff7d1285f30249bf2bfc47eb2ecc16cb24",
|
||||
"gitBlob": "de561f69eaaac430033d8372612a04238aebb179"
|
||||
},
|
||||
{
|
||||
"path": "original/inputs-complete-focused-after.json",
|
||||
"bytes": 118980,
|
||||
"sha256": "819023ce8a3a096b947007365afcb677d6144123d190ff863f0dfd047babfd6f",
|
||||
"gitBlob": "13b8332bd0ac0adbdaa7537509ebcb8a9be65498"
|
||||
},
|
||||
{
|
||||
"path": "original/inputs-complete-focused-before.json",
|
||||
"bytes": 118980,
|
||||
"sha256": "e16db6cbfe1f1a75242e34b568f900c0240e298d194a8b30073d1b8ebf44eacb",
|
||||
"gitBlob": "8b3d63eecbd571dcaa3684b683cb858e065b76d5"
|
||||
},
|
||||
{
|
||||
"path": "original/inputs-complete-list-after.json",
|
||||
"bytes": 118980,
|
||||
"sha256": "8cd8e143ca79d5371d6c411723c6b203f52adce0b0bfa2e024ef52d9425b5785",
|
||||
"gitBlob": "20b75de7a7e39fefc07f8e4699a70a838c5d3514"
|
||||
},
|
||||
{
|
||||
"path": "original/inputs-complete-list-before.json",
|
||||
"bytes": 118980,
|
||||
"sha256": "e4c2b5e31416bab9180609ddb6e95335da8bf26a3fa97258be0078b83176055e",
|
||||
"gitBlob": "2ec8b31e0209835232f751cfee1f85989b622ef5"
|
||||
},
|
||||
{
|
||||
"path": "original/list-receipt.json",
|
||||
"bytes": 158385,
|
||||
"sha256": "0b3ae67b7826d30bd9c32b1addd03b2529297baa3b91ded3398b7e4f32a27eef",
|
||||
"gitBlob": "02cfe2944070e9bf379df1628dee3c669f6933a2"
|
||||
},
|
||||
{
|
||||
"path": "original/list.log",
|
||||
"bytes": 119295,
|
||||
"sha256": "825768a2b7d94fbc8ec8742d304a9aace3c1747a6355a14ef217e6505def19f8",
|
||||
"gitBlob": "2cbbeb70dc2776ed3281cd583f882213423a73c5"
|
||||
},
|
||||
{
|
||||
"path": "original/parser-preparation-verification.json",
|
||||
"bytes": 1109,
|
||||
"sha256": "19fb7779584e08bf773298eb1b3ff8ffc475185cff6152043cdeec9844cd040a",
|
||||
"gitBlob": "9afa6f9acb45ef027993aca76faa5f8eb2bb9297"
|
||||
},
|
||||
{
|
||||
"path": "original/parser-verification.json",
|
||||
"bytes": 1109,
|
||||
"sha256": "f0193079d7be1c013ca56327e14028977bb207632c93cf87a45d191887bfeb1f",
|
||||
"gitBlob": "c10f47294b6c1dde0d481a93e0bf0db64c4330ed"
|
||||
},
|
||||
{
|
||||
"path": "original/preparation-verification.json",
|
||||
"bytes": 2873,
|
||||
"sha256": "c525affb9d55d97868127fcfcae15a81a8673e119099048d4880495526e0e449",
|
||||
"gitBlob": "57785c5919e6eb9ace1445bcbf11f5c86f4818a0"
|
||||
},
|
||||
{
|
||||
"path": "original/prior-failure-provenance.json",
|
||||
"bytes": 5440,
|
||||
"sha256": "90a8d357e1804d2d7173f01273b90bfab92bb842775ff64828e6f7b248dec122",
|
||||
"gitBlob": "baa03aff49a67e6a9445c98bd4f0a2d80d51cb73"
|
||||
},
|
||||
{
|
||||
"path": "original/run.ps1",
|
||||
"bytes": 13175,
|
||||
"sha256": "3e0d64ba0ee6f1910afbe4baf29a5f117e5406e9cddb3b56c991e4c6400513fe",
|
||||
"gitBlob": "abbf46c7f08c64cebcecbc3ff9dd78bc31267748"
|
||||
},
|
||||
{
|
||||
"path": "original/selection-provenance.json",
|
||||
"bytes": 2752,
|
||||
"sha256": "f2eb756d82c7823bdda80a396e9655ed7ccb01fec98c06e2fb0041ed28179073",
|
||||
"gitBlob": "ad3dde4bf2ae8518dbe0c775c26b52227c846806"
|
||||
},
|
||||
{
|
||||
"path": "original/server-provenance-template.json",
|
||||
"bytes": 1249,
|
||||
"sha256": "5d062244a01775e77dee97ec3cf2d750f631e45b522ac1c40160ac486fb425d1",
|
||||
"gitBlob": "913980f8d40e748a7f5e97bb65f5e2efce8118d6"
|
||||
},
|
||||
{
|
||||
"path": "original/server-provenance.json",
|
||||
"bytes": 1306,
|
||||
"sha256": "1bfa0bca6790829ec911c9fad56692134297e84ba369faf2295ffb86fb54257e",
|
||||
"gitBlob": "f08d0e45a6043412f38951e857d0bb7cea8f74ba"
|
||||
},
|
||||
{
|
||||
"path": "original/toolchain-versions.json",
|
||||
"bytes": 2268,
|
||||
"sha256": "d497b7653007e65f9d6a5ff58ccfd60497978028142bf46e2ef10eca8909c799",
|
||||
"gitBlob": "3850c528357ba03fd206ce3dc2918f6a6dd8dba0"
|
||||
},
|
||||
{
|
||||
"path": "original/validate-scripts.ps1",
|
||||
"bytes": 497,
|
||||
"sha256": "7800d1ab132cb3c9ebc75f0e40f2c81f139565432db114326c0128ee66b8fe87",
|
||||
"gitBlob": "1b7c27104d2528d7541f67b0b91a61d74b16ee17"
|
||||
},
|
||||
{
|
||||
"path": "original/verify-parser.ps1",
|
||||
"bytes": 3461,
|
||||
"sha256": "9d59a053f49427c525086a6ea9735f171776171d7a3336143e5b00004c797999",
|
||||
"gitBlob": "441efabcb57dc23f77097196ef247bd0310eb422"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
# Saved Scenario spacing — attempt 3 gate template
|
||||
|
||||
Preparation only. No source pin has been adopted, no inputs have been captured, and no Cargo, product test, cleanup, native staging or launch has run from this directory.
|
||||
|
||||
The original spacing worktree remains the intended compiler checkout: `../scenario-spacing-ytr83r-20260913`. Parent must wait for the c4 diagnostic to close, review its results, and integrate the reviewed correction tree there. The reviewed correction is `0409a481c7571e887f8912f0a8cdb93cfdcc01a7`; the eventual integrated commit may have another identity but must have exactly that Git tree. `finalize.ps1` rejects a dirty/wrong checkout, an unreviewed tree, any change beyond the three reviewed test files relative to c4, or an absent/invalid diagnostic closure. Do not replace the pending pin by hand.
|
||||
|
||||
The correction changes `presentation_tests.rs`, `spacing/controller/tests.rs`, and `workspace/spacing_tests.rs`. The exact prior listing contains 1,082 tests; one new ordinary test is added:
|
||||
|
||||
`behavior::scenario::spacing::controller::tests::fractional_screen_packet_preserves_subpixel_motion_in_preview_and_finish`
|
||||
|
||||
Expected new listing: **1,083**; focused: **289**; focused filtered: **794**; full ignored: **4**, unchanged. These are source-derived expectations, not execution results. `selection-provenance.json` binds the actual old listing and reviewed changed source files. Actual listing must match every name before focused execution. The optional ignored timing diagnostic expects one pass and 1,082 filtered tests; it has no timing threshold.
|
||||
|
||||
The previous c4 acceptance attempt is immutable: listing passed, focused reported **286 passed / 2 failed / 0 ignored / 794 filtered**. Its later complete-inventory direct-executable run in `../scenario-spacing-full-diagnostic-c4-20260913` is a separate diagnostic, never a successful full acceptance gate and never permission to skip the corrected focused gate. `correction-template.json` binds the closed old receipts now; finalization records the actual closed diagnostic result and raw evidence hashes without requiring its tests to pass or inventing a result while it runs. Older failures remain reachable through the bound prior provenance record.
|
||||
|
||||
After parent integration and explicit review, parent may finalize (source capture only):
|
||||
|
||||
```powershell
|
||||
& .local/scenario-spacing-gates-attempt3-20260913/finalize.ps1 -SourceCommit <actual-reviewed-integrated-40-hex-commit> -Reviewed
|
||||
```
|
||||
|
||||
Finalization verifies the current user-instruction blob, unchanged core/server/manifests relative to the previously tested `37be41092beb1c940f345072df1e017ce45fe2fc`, and all 610 current source inputs: precisely three changed test files and 607 byte-identical inputs relative to c4. It captures external environment/configuration, reruns syntax and synthetic actual-parser checks, and writes `finalization.json`. A partial finalization must be inspected and preserved; do not overwrite its evidence or retry by deleting files.
|
||||
|
||||
Parent then dispatches each stage separately, proceeding only after the preceding receipt passes:
|
||||
|
||||
```powershell
|
||||
& .local/scenario-spacing-gates-attempt3-20260913/run.ps1 -Stage list
|
||||
& .local/scenario-spacing-gates-attempt3-20260913/run.ps1 -Stage focused
|
||||
& .local/scenario-spacing-gates-attempt3-20260913/run.ps1 -Stage all
|
||||
& .local/scenario-spacing-gates-attempt3-20260913/run.ps1 -Stage clippy
|
||||
& .local/scenario-spacing-gates-attempt3-20260913/run.ps1 -Stage build
|
||||
```
|
||||
|
||||
The commands retain `--locked --offline`, focused/full `--test-threads=1`, and strict `cargo clippy -p oa-desktop -p oa-server --all-targets --locked --offline -- -D warnings`. The final stage builds the GUI executable; it does not launch it. Existing root `target` and core artifacts are retained. The existing pinned environment uses one build job and incremental=0; this recipe performs no clean or package clearance and changes no global configuration.
|
||||
|
||||
The runner retains pre/post complete-input checks, transitive receipt/script hashes, exact listed test executable path/size/SHA continuity through focused/full, raw outputs and structured result/count/ignored checks, combined desktop/server strict validation, and a separate final GUI executable hash/size. Native scripts and fixtures are outside this task and have not been updated or admitted for this candidate.
|
||||
|
||||
Preparation validation is limited to PowerShell parsing and nine synthetic cases executed against the actual runner parser block (valid/zero/duplicate/missing/wrong-total/wrong-filtered focused results and complete/missing-summary/duplicate listings). It does not invoke a compiler or test executable. The inherited full-stage parser and provenance guards remain subject to the real gate; synthetic checks do not establish product correctness.
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
# Pure file/log readers. No executable is started by these helpers.
|
||||
function Get-GateBinary([string]$Path,[string]$Target) {
|
||||
$resolved=[IO.Path]::GetFullPath($Path)
|
||||
$root=[IO.Path]::GetFullPath($Target).TrimEnd('\','/')+[IO.Path]::DirectorySeparatorChar
|
||||
if(-not $resolved.StartsWith($root,[StringComparison]::OrdinalIgnoreCase)){throw 'Executable path escapes the parent-owned target.'}
|
||||
$item=Get-Item -LiteralPath $resolved
|
||||
[ordered]@{path=$resolved;bytes=$item.Length;sha256=(Get-FileHash -LiteralPath $resolved -Algorithm SHA256).Hash.ToLowerInvariant();mtimeUtc=$item.LastWriteTimeUtc.ToString('o')}
|
||||
}
|
||||
function Get-GateTestBinaries([string]$Log,[string]$Target) {
|
||||
$paths=@([regex]::Matches($Log,'(?m)^\s*Running unittests .+? \(([^\r\n]+\.exe)\)\s*$')|ForEach-Object {$_.Groups[1].Value}|Sort-Object -Unique)
|
||||
foreach($path in $paths){Get-GateBinary $path $Target}
|
||||
}
|
||||
function Same-GateBinaries($Left,$Right) {
|
||||
$a=@($Left|Sort-Object path);$b=@($Right|Sort-Object path)
|
||||
if($a.Count -eq 0 -or $a.Count -ne $b.Count){return $false}
|
||||
for($i=0;$i -lt $a.Count;$i++){
|
||||
if($a[$i].path -ine $b[$i].path -or $a[$i].bytes -ne $b[$i].bytes -or $a[$i].sha256 -cne $b[$i].sha256){return $false}
|
||||
}
|
||||
return $true
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"base": "0409a481c7571e887f8912f0a8cdb93cfdcc01a7",
|
||||
"retainExistingTarget": true,
|
||||
"cleanRequested": false,
|
||||
"target": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\target",
|
||||
"scope": "Combined spacing worktree rebuild. Retain shared target/cache and jobs1/incremental0; no clearance is performed by this recipe. Parent owns any separately authorized package clearance. Exact source and executable binding are required."
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
#Requires -Version 7.0
|
||||
param([Parameter(Mandatory=$true)][ValidatePattern('^(before|after|(list|focused|all|clippy|build|diagnostic)-(before|after))$')][string]$Stage)
|
||||
Set-StrictMode -Version Latest
|
||||
$ErrorActionPreference='Stop'
|
||||
$taskWorkspace='C:\Users\User\Documents\Git\ARCADIA-Studio\.local\scenario-spacing-ytr83r-20260913'
|
||||
$taskPin='0409a481c7571e887f8912f0a8cdb93cfdcc01a7'
|
||||
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}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"source_commit": "0409a481c7571e887f8912f0a8cdb93cfdcc01a7",
|
||||
"reviewed_correction_source": "0409a481c7571e887f8912f0a8cdb93cfdcc01a7",
|
||||
"previous_source": "c4a2cf63f11818cf7fc766acf3a2779768a2a658",
|
||||
"tree_equal_to_reviewed": true,
|
||||
"input_count": 610,
|
||||
"changed_inputs": [
|
||||
"crates/oa-desktop/src/behavior/scenario/presentation_tests.rs",
|
||||
"crates/oa-desktop/src/behavior/scenario/spacing/controller/tests.rs",
|
||||
"crates/oa-desktop/src/behavior/scenario/workspace/spacing_tests.rs"
|
||||
],
|
||||
"unchanged_input_count": 607,
|
||||
"instruction_git_blob": "767be18f086c04b7a688b107808e97ac98881356",
|
||||
"status": "Parent-reviewed integrated tree verified; source-only capture, no Cargo executed"
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"status": "Pending parent-reviewed integrated commit, closed diagnostic, and fresh source captures. No gate executed.",
|
||||
"previous_source": "c4a2cf63f11818cf7fc766acf3a2779768a2a658",
|
||||
"reviewed_correction_source": "0409a481c7571e887f8912f0a8cdb93cfdcc01a7",
|
||||
"expected_changed_paths": [
|
||||
"crates/oa-desktop/src/behavior/scenario/presentation_tests.rs",
|
||||
"crates/oa-desktop/src/behavior/scenario/spacing/controller/tests.rs",
|
||||
"crates/oa-desktop/src/behavior/scenario/workspace/spacing_tests.rs"
|
||||
],
|
||||
"expected_input_count": 610,
|
||||
"new_test": "behavior::scenario::spacing::controller::tests::fractional_screen_packet_preserves_subpixel_motion_in_preview_and_finish",
|
||||
"instruction_git_blob": "767be18f086c04b7a688b107808e97ac98881356",
|
||||
"instruction_bytes": 12623,
|
||||
"instruction_sha256": "0de97dcfacc608f20f828ec529033ff9830641a9069855b85d36b54e52dbd897",
|
||||
"previous_capture": {
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/inputs-complete-before.json",
|
||||
"bytes": 118980,
|
||||
"sha256": "46a51390d6d9de96117ca10f0977a3e938b0f469e21375f7a99885ee185fe7ae"
|
||||
},
|
||||
"prior_gate_bindings": [
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/list-receipt.json",
|
||||
"bytes": 158143,
|
||||
"sha256": "076b1a00681ba00dc77cc1373da9e7e0f199cfb19ba90176bf2f9e80be6112e4"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/list.log",
|
||||
"bytes": 119429,
|
||||
"sha256": "a7f4adfa7ff6e5e83b4d69369d370f7200a9ba7252f24d477904dfdc2ee1e45c"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/focused-receipt.json",
|
||||
"bytes": 152609,
|
||||
"sha256": "4be2dccf8d20a785bf36fcb1615fe47419fd02414ed468cdade457b64a421333"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/focused.log",
|
||||
"bytes": 57937,
|
||||
"sha256": "70d89a74368c20c8b7502ef8c9a32d2de4ab959a05452f6d2e11d9538b878999"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/inputs-complete-before.json",
|
||||
"bytes": 118980,
|
||||
"sha256": "46a51390d6d9de96117ca10f0977a3e938b0f469e21375f7a99885ee185fe7ae"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/inputs-complete-focused-after.json",
|
||||
"bytes": 118980,
|
||||
"sha256": "6c2353f246a32c8a3edef4c0a6a6b98b7f2931fe5ea2f4d085966083e4189186"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/expected-tests.json",
|
||||
"bytes": 155695,
|
||||
"sha256": "92d17487dc077e46e3e708ee369c016470d3e54b52f90730aefb48db002c83ed"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/prior-failure-provenance.json",
|
||||
"bytes": 3301,
|
||||
"sha256": "42e9f7a06c0f1c163d64ae39830cd4a82e11985b3cc706dda10f4a8cafdf38b7"
|
||||
}
|
||||
],
|
||||
"diagnostic_directory": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-full-diagnostic-c4-20260913",
|
||||
"diagnostic_receipt_status": "Pending closure; no inferred result",
|
||||
"scope": "Only three existing test files differ from c4; no production source changes. Parent must review the full diagnostic and integrate the exact reviewed tree into the original spacing worktree before finalizing."
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
#Requires -Version 7.0
|
||||
# Optional after full acceptance; invokes the bound test executable, never Cargo.
|
||||
Set-StrictMode -Version Latest
|
||||
$ErrorActionPreference='Stop'
|
||||
$PSNativeCommandUseErrorActionPreference=$false
|
||||
$taskPin='0409a481c7571e887f8912f0a8cdb93cfdcc01a7'
|
||||
if($taskPin -notmatch '^[0-9a-f]{40}$'){throw 'Finalize the reviewed source first.'}
|
||||
$taskWorkspace='C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-ytr83r-20260913'
|
||||
$taskTarget='C:/Users/User/Documents/Git/ARCADIA-Studio/target'
|
||||
function Hash-Input([string]$Path){(Get-FileHash -LiteralPath $Path -Algorithm SHA256).Hash.ToLowerInvariant()}
|
||||
. (Join-Path $PSScriptRoot 'binary-inputs.ps1')
|
||||
$log=Join-Path $PSScriptRoot 'diagnostic.log'
|
||||
$receiptPath=Join-Path $PSScriptRoot 'diagnostic-receipt.json'
|
||||
if((Test-Path -LiteralPath $log)-or(Test-Path -LiteralPath $receiptPath)){throw 'Preserve existing diagnostic evidence.'}
|
||||
$priorPath=Join-Path $PSScriptRoot 'all-receipt.json'
|
||||
$prior=Get-Content -Raw -LiteralPath $priorPath|ConvertFrom-Json
|
||||
if($prior.stage -cne 'all' -or $prior.base -cne $taskPin -or $prior.workspace.Replace('\','/') -cne $taskWorkspace -or $prior.target.Replace('\','/') -cne $taskTarget -or $prior.cargoExitCode -ne 0 -or -not $prior.selectionValid -or -not $prior.inputsUnchanged -or -not $prior.testBinaryBindingValid){throw 'The exact full stage has not passed.'}
|
||||
$bound=@{}
|
||||
foreach($property in $prior.boundScriptAndInputHashes.PSObject.Properties){
|
||||
$hash=Hash-Input (Join-Path $PSScriptRoot $property.Name)
|
||||
if($hash -cne $property.Value){throw ('Prior binding changed: '+$property.Name)}
|
||||
$bound[$property.Name]=$hash
|
||||
}
|
||||
foreach($name in @('all-receipt.json','all.log','toolchain-versions.json')){$bound[$name]=Hash-Input (Join-Path $PSScriptRoot $name)}
|
||||
if($bound['all.log'] -cne $prior.rawLogSha256 -or $bound['toolchain-versions.json'] -cne $prior.toolchainVersionsSha256){throw 'Full log/toolchain receipt changed.'}
|
||||
if(-not $bound.ContainsKey('diagnostic.ps1')){throw 'Diagnostic recipe was not bound by the full gate.'}
|
||||
$selection=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'expected-tests.json')|ConvertFrom-Json
|
||||
$name=$selection.diagnostic_test
|
||||
if($selection.source_commit -cne $taskPin -or $name -cnotin $selection.ignored_tests -or $name -cnotin $selection.desktop_tests -or $name -cin $selection.tests){throw 'Wrong ignored diagnostic membership.'}
|
||||
$binaries=@($prior.testExecutables|ForEach-Object {Get-GateBinary $_.path $taskTarget})
|
||||
if($binaries.Count -ne 1 -or -not (Same-GateBinaries @($prior.testExecutables) $binaries)){throw 'Previously listed test executable changed.'}
|
||||
& (Join-Path $PSScriptRoot 'capture.ps1') -Stage diagnostic-before
|
||||
$arguments=@('--exact',$name,'--ignored','--nocapture','--test-threads=1')
|
||||
$started=[DateTime]::UtcNow.ToString('o')
|
||||
$exitCode=$null;$finished=$null;$failure=$null;$valid=$false;$unchanged=$false;$after=@();$summaries=@();$payload=$null
|
||||
$hadSourcePin=Test-Path Env:SCENARIO_SPACING_SOURCE_PIN
|
||||
$previousSourcePin=$env:SCENARIO_SPACING_SOURCE_PIN
|
||||
Push-Location -LiteralPath $taskWorkspace
|
||||
try {
|
||||
. 'C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/env.ps1'
|
||||
$env:SCENARIO_SPACING_SOURCE_PIN=$taskPin
|
||||
$executable=$binaries[0].path
|
||||
& $executable @arguments 2>&1|Tee-Object -FilePath $log
|
||||
$exitCode=$LASTEXITCODE
|
||||
$finished=[DateTime]::UtcNow.ToString('o')
|
||||
$raw=Get-Content -Raw -LiteralPath $log
|
||||
$startedNames=@([regex]::Matches($raw,'(?m)^test ([^\r\n]+?) \.\.\. ')|ForEach-Object {$_.Groups[1].Value})
|
||||
$summaries=@([regex]::Matches($raw,'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}})
|
||||
$json=@([regex]::Matches($raw,'SPACING_TIMING_JSON=(\{[^\r\n]+\})'))
|
||||
if($json.Count -eq 1){$payload=$json[0].Groups[1].Value|ConvertFrom-Json}
|
||||
$valid=$exitCode -eq 0 -and $startedNames.Count -eq 1 -and $startedNames[0] -ceq $name -and $summaries.Count -eq 1 -and $summaries[0].status -ceq 'ok' -and $summaries[0].passed -eq 1 -and $summaries[0].failed -eq 0 -and $summaries[0].ignored -eq 0 -and $summaries[0].measured -eq 0 -and $summaries[0].filtered -eq (@($selection.desktop_tests).Count-1) -and $null -ne $payload -and $payload.invariant_status -ceq 'passed'
|
||||
if($valid){
|
||||
$valid=$payload.schema -ceq 'scenario_spacing_timing_v1' -and $payload.profile_context.source_pin_from_runner -ceq $taskPin -and $payload.fixture.lanes -eq 20 -and $payload.fixture.messages -eq 1000 -and $payload.fixture.saved_views -eq 3 -and $payload.fixture.target_index -eq 500 -and $payload.fixture.distinct_message_ids -eq 1000 -and @($payload.samples).Count -eq 28
|
||||
foreach($phase in @(@('capture_message',4),@('prepare_message',20),@('capture_lane',1),@('prepare_lane',3))){$valid=$valid -and @($payload.samples|Where-Object phase -CEQ $phase[0]).Count -eq $phase[1]}
|
||||
}
|
||||
} catch {$failure=$_.Exception.Message}
|
||||
finally {
|
||||
if($hadSourcePin){$env:SCENARIO_SPACING_SOURCE_PIN=$previousSourcePin}else{Remove-Item Env:SCENARIO_SPACING_SOURCE_PIN -ErrorAction SilentlyContinue}
|
||||
Pop-Location
|
||||
try {
|
||||
& (Join-Path $PSScriptRoot 'capture.ps1') -Stage diagnostic-after
|
||||
$after=@($binaries|ForEach-Object {Get-GateBinary $_.path $taskTarget})
|
||||
if(-not (Same-GateBinaries $binaries $after)){throw 'Diagnostic executable changed during execution.'}
|
||||
foreach($file in $bound.Keys){if((Hash-Input (Join-Path $PSScriptRoot $file)) -cne $bound[$file]){throw ('Bound input changed: '+$file)}}
|
||||
$unchanged=$true
|
||||
} catch {$failure=$_.Exception.Message}
|
||||
[ordered]@{stage='diagnostic';base=$taskPin;workspace=$taskWorkspace;test=$name;arguments=$arguments;startUtc=$started;endUtc=$finished;exitCode=$exitCode;selectionValid=$valid;inputsUnchanged=$unchanged;failure=$failure;priorFullReceiptSha256=$bound['all-receipt.json'];boundHashes=$bound;binaryBefore=$binaries;binaryAfter=$after;summary=$summaries;timing=$payload;rawLogSha256=if(Test-Path -LiteralPath $log){Hash-Input $log}else{$null};beforeCaptureSha256=(Hash-Input (Join-Path $PSScriptRoot 'inputs-complete-diagnostic-before.json'));afterCaptureSha256=if(Test-Path -LiteralPath (Join-Path $PSScriptRoot 'inputs-complete-diagnostic-after.json')){Hash-Input (Join-Path $PSScriptRoot 'inputs-complete-diagnostic-after.json')}else{$null};scope='Optional debug-profile diagnostic; not a responsiveness budget or release performance claim. No Cargo, compile, native UI or persistent model edits.'}|ConvertTo-Json -Depth 16|Set-Content -LiteralPath $receiptPath -Encoding utf8
|
||||
}
|
||||
if(-not $valid -or -not $unchanged -or $failure){throw 'Diagnostic failed; inspect retained receipt and raw log.'}
|
||||
+27
@@ -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-spacing-ytr83r-20260913'
|
||||
$pin='0409a481c7571e887f8912f0a8cdb93cfdcc01a7'
|
||||
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}
|
||||
+1245
File diff suppressed because it is too large
Load Diff
+3057
File diff suppressed because it is too large
Load Diff
+1394
File diff suppressed because it is too large
Load Diff
+44
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"base": "PENDING_REVIEWED_SOURCE_PIN",
|
||||
"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-spacing-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-spacing-ytr83r-20260913/.cargo/config.toml",
|
||||
"present": false
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/cargo/config.toml",
|
||||
"present": false
|
||||
}
|
||||
]
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"base": "0409a481c7571e887f8912f0a8cdb93cfdcc01a7",
|
||||
"status": "Fresh external environment/config snapshot; not version-controlled inputs",
|
||||
"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-spacing-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-spacing-ytr83r-20260913/.cargo/config.toml",
|
||||
"present": false
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/cargo/config.toml",
|
||||
"present": false
|
||||
}
|
||||
]
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"base": "0409a481c7571e887f8912f0a8cdb93cfdcc01a7",
|
||||
"capturedUtc": "2026-09-13T10:11:31.0186595Z",
|
||||
"sourceCount": 610,
|
||||
"focusedCount": 289,
|
||||
"desktopExpectedCount": 1083,
|
||||
"cleanPerformed": false,
|
||||
"cargoExecuted": false,
|
||||
"sourceBeforeSha256": "d59b2bc44caef655ba1227cbf818ceff7d1285f30249bf2bfc47eb2ecc16cb24",
|
||||
"selectionSha256": "bface8488c96a1baa8217d3004cce079f7ade51efeb9ecf6a8016688395ec0fc",
|
||||
"parserSha256": "f0193079d7be1c013ca56327e14028977bb207632c93cf87a45d191887bfeb1f",
|
||||
"status": "Prepared only; parent dispatches list, focused, all, clippy, build sequentially"
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
#Requires -Version 7.0
|
||||
param([Parameter(Mandatory=$true)][ValidatePattern('^[0-9a-f]{40}$')][string]$SourceCommit,[Parameter(Mandatory=$true)][switch]$Reviewed)
|
||||
Set-StrictMode -Version Latest
|
||||
$ErrorActionPreference='Stop'
|
||||
$workspace='C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-ytr83r-20260913'
|
||||
$root='C:/Users/User/Documents/Git/ARCADIA-Studio'
|
||||
if(-not $Reviewed){throw 'Parent must review the integrated source and closed diagnostic before finalization.'}
|
||||
if(Test-Path -LiteralPath (Join-Path $PSScriptRoot 'finalization.json')){throw 'Already finalized; preserve this gate.'}
|
||||
foreach($name in @('enumeration.json','expected-inputs.json','external-inputs.json','inputs-complete-before.json','toolchain-versions.json','list.log','list-receipt.json')){
|
||||
if(Test-Path -LiteralPath (Join-Path $PSScriptRoot $name)){throw ('Prior capture or run exists: '+$name)}
|
||||
}
|
||||
function Hash-Input([string]$Path){(Get-FileHash -LiteralPath $Path -Algorithm SHA256).Hash.ToLowerInvariant()}
|
||||
function Save-Record([string]$Name,$Record){$Record|ConvertTo-Json -Depth 16|Set-Content -LiteralPath (Join-Path $PSScriptRoot $Name) -Encoding utf8}
|
||||
Push-Location -LiteralPath $workspace
|
||||
try {
|
||||
$head=git rev-parse HEAD
|
||||
if($LASTEXITCODE -ne 0 -or $head -cne $SourceCommit){throw 'Source is not at the reviewed pin.'}
|
||||
$status=@(git status --porcelain)
|
||||
if($LASTEXITCODE -ne 0 -or $status.Count){throw 'Source must be committed and clean.'}
|
||||
$correction=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'correction-template.json')|ConvertFrom-Json
|
||||
$changes=@(git diff --name-only $correction.previous_source $SourceCommit)
|
||||
if($LASTEXITCODE -ne 0 -or $changes.Count -ne 3 -or @(Compare-Object @($correction.expected_changed_paths|Sort-Object) @($changes|Sort-Object)).Count){throw 'Expected exactly the three reviewed test-file changes from c4.'}
|
||||
$reviewDiff=@(git diff --name-only $correction.reviewed_correction_source $SourceCommit)
|
||||
if($LASTEXITCODE -ne 0 -or $reviewDiff.Count){throw 'Integrated tree differs from reviewed 0409 correction; revise/review the template first.'}
|
||||
$instructionBlob=git rev-parse 'HEAD:AGENTS.md'
|
||||
if($LASTEXITCODE -ne 0 -or $instructionBlob -cne $correction.instruction_git_blob -or (Get-Item -LiteralPath 'AGENTS.md').Length -ne $correction.instruction_bytes -or (Hash-Input 'AGENTS.md') -cne $correction.instruction_sha256){throw 'User instructions differ from reviewed bytes.'}
|
||||
$serverChanges=@(git diff --name-only 37be41092beb1c940f345072df1e017ce45fe2fc $SourceCommit -- crates/oa-core crates/oa-server Cargo.toml Cargo.lock rust-toolchain.toml)
|
||||
if($LASTEXITCODE -ne 0 -or $serverChanges.Count){throw 'Core/server provenance changed; parent must revise gate scope.'}
|
||||
} finally {Pop-Location}
|
||||
# All evidence admission precedes mutation of the pending template or source captures.
|
||||
foreach($binding in $correction.prior_gate_bindings){
|
||||
if((Get-Item -LiteralPath $binding.path).Length -ne $binding.bytes -or (Hash-Input $binding.path) -cne $binding.sha256){throw ('Prior evidence changed: '+$binding.path)}
|
||||
}
|
||||
$priorGate=Split-Path -Parent $correction.previous_capture.path
|
||||
$list=Get-Content -Raw -LiteralPath (Join-Path $priorGate 'list-receipt.json')|ConvertFrom-Json
|
||||
$focused=Get-Content -Raw -LiteralPath (Join-Path $priorGate 'focused-receipt.json')|ConvertFrom-Json
|
||||
if($list.base -cne $correction.previous_source -or $list.cargoExitCode -ne 0 -or -not $list.selectionValid -or -not $list.inputsUnchanged -or @($list.listedTests).Count -ne 1082){throw 'Prior c4 listing is not the bound successful 1082 inventory.'}
|
||||
$focusedResult=@($focused.testResultSummaries)
|
||||
if($focused.base -cne $correction.previous_source -or $focused.cargoExitCode -ne 101 -or $focused.selectionValid -or -not $focused.inputsUnchanged -or $focusedResult.Count -ne 1 -or $focusedResult[0].passed -ne 286 -or $focusedResult[0].failed -ne 2 -or $focusedResult[0].ignored -ne 0 -or $focusedResult[0].filtered -ne 794){throw 'Prior focused failure differs from reviewed 286 passed / 2 failed evidence.'}
|
||||
$diagnosticPath=Join-Path $correction.diagnostic_directory 'diagnostic-all-receipt.json'
|
||||
if(-not (Test-Path -LiteralPath $diagnosticPath)){throw 'Wait for the full c4 diagnostic to close and parent review; no inferred result is permitted.'}
|
||||
$diagnostic=Get-Content -Raw -LiteralPath $diagnosticPath|ConvertFrom-Json
|
||||
if($diagnostic.source_commit -cne $correction.previous_source -or $diagnostic.classification -cne 'diagnostic_after_failed_focused_gate' -or $diagnostic.successful_full_gate -or $diagnostic.waives_failed_focused_gate -or -not $diagnostic.complete_inventory_valid -or -not $diagnostic.inputs_unchanged -or $diagnostic.postflight_failure -or @($diagnostic.listed_tests).Count -ne 1082 -or @($diagnostic.ignored_tests).Count -ne 4){throw 'Diagnostic must have closed with valid complete inventory and unchanged inputs; it is not an acceptance gate.'}
|
||||
if(@(Compare-Object @($list.listedTests|Sort-Object) @($diagnostic.listed_tests|Sort-Object)).Count){throw 'Diagnostic does not cover the exact old list.'}
|
||||
$diagnosticHashes=[ordered]@{'diagnostic-all.log'=$diagnostic.raw_log_sha256;'provenance-before.json'=$diagnostic.provenance_sha256;'inputs-complete-diagnostic-all-before.json'=$diagnostic.before_capture_sha256;'inputs-complete-diagnostic-all-after.json'=$diagnostic.after_capture_sha256}
|
||||
foreach($name in $diagnosticHashes.Keys){if((Hash-Input (Join-Path $correction.diagnostic_directory $name)) -cne $diagnosticHashes[$name]){throw ('Diagnostic evidence changed: '+$name)}}
|
||||
$diagnosticBindings=@(foreach($name in @('diagnostic-all-receipt.json')+@($diagnosticHashes.Keys)){$path=Join-Path $correction.diagnostic_directory $name;[ordered]@{path=$path;bytes=(Get-Item -LiteralPath $path).Length;sha256=(Hash-Input $path)}})
|
||||
foreach($name in @('run.ps1','capture.ps1','enumerate-inputs.ps1','diagnostic.ps1')){
|
||||
$path=Join-Path $PSScriptRoot $name
|
||||
$text=[IO.File]::ReadAllText($path)
|
||||
if(-not $text.Contains('PENDING_REVIEWED_SOURCE_PIN')){throw 'Template was already modified; inspect before retry.'}
|
||||
[IO.File]::WriteAllText($path,$text.Replace('PENDING_REVIEWED_SOURCE_PIN',$SourceCommit),[Text.UTF8Encoding]::new($false))
|
||||
}
|
||||
$selection=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'expected-tests.json')|ConvertFrom-Json
|
||||
if(@($selection.tests).Count -ne 289 -or @($selection.tests|Sort-Object -Unique).Count -ne 289 -or @($selection.desktop_tests).Count -ne 1083 -or @($selection.desktop_tests|Sort-Object -Unique).Count -ne 1083){throw 'Expected membership changed; parent must review selection.'}
|
||||
if(@($selection.tests|Where-Object {$_ -cnotin $selection.desktop_tests}).Count){throw 'Focused test absent from expected desktop listing.'}
|
||||
$selection.source_commit=$SourceCommit
|
||||
Save-Record 'expected-tests.json' $selection
|
||||
& (Join-Path $PSScriptRoot 'enumerate-inputs.ps1')
|
||||
$enumeration=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'enumeration.json')|ConvertFrom-Json
|
||||
$inputs=@(foreach($relative in $enumeration.gitPaths){$path=Join-Path $workspace $relative;$item=Get-Item -LiteralPath $path;[ordered]@{path=$relative;bytes=$item.Length;sha256=(Hash-Input $path)}})
|
||||
$previousCapture=$correction.previous_capture
|
||||
$previous=Get-Content -Raw -LiteralPath $previousCapture.path|ConvertFrom-Json
|
||||
if($previous.base -cne $correction.previous_source -or $previous.count -ne 610 -or $inputs.Count -ne 610){throw 'Reviewed correction must preserve all 610 input paths.'}
|
||||
$remaining=@{}
|
||||
foreach($file in $previous.files){if($remaining.ContainsKey($file.path)){throw 'Duplicate previous input'};$remaining[$file.path]=$file}
|
||||
$changedInputs=@(foreach($file in $inputs){
|
||||
if(-not $remaining.ContainsKey($file.path)){throw ('New compiled input: '+$file.path)}
|
||||
$old=$remaining[$file.path]
|
||||
if($file.bytes -ne $old.bytes -or $file.sha256 -cne $old.sha256){
|
||||
if($file.path -cnotin $correction.expected_changed_paths){throw ('Unreviewed compiled input changed: '+$file.path)}
|
||||
$file.path
|
||||
}
|
||||
$remaining.Remove($file.path)
|
||||
})
|
||||
if($remaining.Count -or $changedInputs.Count -ne 3){throw 'Expected precisely three changed test inputs and 607 byte-identical inputs.'}
|
||||
Save-Record 'correction-provenance.json' ([ordered]@{source_commit=$SourceCommit;reviewed_correction_source=$correction.reviewed_correction_source;previous_source=$correction.previous_source;tree_equal_to_reviewed=$true;input_count=610;changed_inputs=$changedInputs;unchanged_input_count=607;instruction_git_blob=$instructionBlob;status='Parent-reviewed integrated tree verified; source-only capture, no Cargo executed'})
|
||||
Save-Record 'expected-inputs.json' ([ordered]@{base=$SourceCommit;workspace=$workspace;count=$inputs.Count;files=$inputs})
|
||||
$external=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'external-input-template.json')|ConvertFrom-Json
|
||||
$externalFiles=@(foreach($file in $external.files){$present=Test-Path -LiteralPath $file.path;if($present){$item=Get-Item -LiteralPath $file.path;[ordered]@{path=$file.path;present=$true;bytes=$item.Length;sha256=(Hash-Input $file.path)}}else{[ordered]@{path=$file.path;present=$false}}})
|
||||
Save-Record 'external-inputs.json' ([ordered]@{base=$SourceCommit;status='Fresh external environment/config snapshot; not version-controlled inputs';files=$externalFiles})
|
||||
$server=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'server-provenance-template.json')|ConvertFrom-Json
|
||||
$server.source=$SourceCommit
|
||||
Save-Record 'server-provenance.json' $server
|
||||
Save-Record 'cache-policy.json' ([ordered]@{base=$SourceCommit;retainExistingTarget=$true;cleanRequested=$false;target=(Join-Path $root 'target');scope='Combined spacing worktree rebuild. Retain shared target/cache and jobs1/incremental0; no clearance is performed by this recipe. Parent owns any separately authorized package clearance. Exact source and executable binding are required.'})
|
||||
Save-Record 'prior-failure-provenance.json' ([ordered]@{
|
||||
source=$SourceCommit
|
||||
previousSource=$correction.previous_source
|
||||
scope='Closed c4 listing passed (1082); focused failed (286 passed, 2 failed). Full-inventory direct-executable diagnostic is separate and never waives that failure. All corrected-source acceptance stages must pass anew.'
|
||||
bindings=$correction.prior_gate_bindings
|
||||
list=[ordered]@{cargoExitCode=$list.cargoExitCode;selectionValid=$list.selectionValid;inputsUnchanged=$list.inputsUnchanged;count=@($list.listedTests).Count}
|
||||
focused=[ordered]@{cargoExitCode=$focused.cargoExitCode;selectionValid=$focused.selectionValid;inputsUnchanged=$focused.inputsUnchanged;result=$focused.testResultSummaries;failed=@($focused.executedTests|Where-Object result -eq 'FAILED')}
|
||||
diagnostic=[ordered]@{bindings=$diagnosticBindings;classification=$diagnostic.classification;successful_full_gate=$false;waives_failed_focused_gate=$false;complete_inventory_valid=$diagnostic.complete_inventory_valid;inputs_unchanged=$diagnostic.inputs_unchanged;exit_code=$diagnostic.test_exit_code;result=$diagnostic.test_result_summaries;failed=$diagnostic.failed_tests}
|
||||
})
|
||||
& (Join-Path $PSScriptRoot 'capture.ps1') -Stage before
|
||||
& (Join-Path $PSScriptRoot 'validate-scripts.ps1')
|
||||
& (Join-Path $PSScriptRoot 'verify-parser.ps1')
|
||||
Save-Record 'finalization.json' ([ordered]@{base=$SourceCommit;capturedUtc=[DateTime]::UtcNow.ToString('o');sourceCount=$inputs.Count;focusedCount=289;desktopExpectedCount=1083;cleanPerformed=$false;cargoExecuted=$false;sourceBeforeSha256=(Hash-Input (Join-Path $PSScriptRoot 'inputs-complete-before.json'));selectionSha256=(Hash-Input (Join-Path $PSScriptRoot 'expected-tests.json'));parserSha256=(Hash-Input (Join-Path $PSScriptRoot 'parser-verification.json'));status='Prepared only; parent dispatches list, focused, all, clippy, build sequentially'})
|
||||
Write-Output ('Finalized source-only gate for '+$SourceCommit+' with '+$inputs.Count+' inputs; no Cargo or clean executed.')
|
||||
+1828
File diff suppressed because one or more lines are too long
@@ -0,0 +1,296 @@
|
||||
Finished `test` profile [unoptimized] target(s) in 25.45s
|
||||
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-27db9628b266bf39.exe)
|
||||
|
||||
running 289 tests
|
||||
test app::behavior_lifecycle_tests::incomplete_behavior_form_is_dirty_close_save_retains_it_and_cancel_allows_switching ... ok
|
||||
test app::behavior_lifecycle_tests::passive_behavior_canvas_events_do_not_apply_property_drafts ... ok
|
||||
test app::behavior_lifecycle_tests::pending_behavior_blocks_navigation_property_edits_and_model_history ... ok
|
||||
test app::behavior_lifecycle_tests::pending_behavior_blocks_source_creation_and_source_history_replay ... ok
|
||||
test app::behavior_lifecycle_tests::save_prepares_behavior_before_opening_destination_and_cancel_keeps_one_undo ... ok
|
||||
test app::behavior_lifecycle_tests::source_writeback_failure_keeps_typed_behavior_form_for_repair_and_one_undo ... ok
|
||||
test app::diagram_reveal::tests::actual_window_resize_before_first_measurement_retains_focus_for_the_new_context ... ok
|
||||
test app::diagram_reveal::tests::all_reveal_surfaces_recenter_once_after_the_real_viewport_and_preserve_authored_state ... ok
|
||||
test app::diagram_reveal::tests::malformed_or_wrong_stamp_measurements_cannot_poison_a_pending_reveal ... ok
|
||||
test app::diagram_reveal::tests::user_camera_edit_and_navigation_cancel_deferred_focus_without_late_snapping ... ok
|
||||
test app::diagram_selection_tests::changing_visible_view_follows_its_clean_inspector_without_a_model_edit ... ok
|
||||
test app::diagram_selection_tests::diagram_switch_preserves_an_independent_semantic_inspection ... ok
|
||||
test app::diagram_selection_tests::diagram_uuid_edit_follows_the_same_view_or_a_different_picker_target ... ok
|
||||
test app::diagram_selection_tests::invalid_view_draft_blocks_the_switch_and_retains_raw_input ... ok
|
||||
test app::diagram_selection_tests::stale_diagram_choice_never_applies_an_unrelated_valid_draft ... ok
|
||||
test app::diagram_selection_tests::valid_pending_view_edit_applies_to_old_view_then_inspects_the_new_view ... ok
|
||||
test app::diagram_usages::tests::accepted_new_chooser_retires_old_measurement_without_blocking_future_viewports ... ok
|
||||
test app::diagram_usages::tests::allocation_navigation_keeps_relation_selection_and_exact_visual_work_lifetime ... ok
|
||||
test app::diagram_usages::tests::asynchronous_lookup_is_loading_inert_and_retains_filter_until_completion ... ok
|
||||
test app::diagram_usages::tests::caret_uses_exact_verified_alias_identity_and_preserves_source_cursor ... ok
|
||||
test app::diagram_usages::tests::closed_lookup_keeps_slot_and_replacement_waits_for_exact_old_completion ... ok
|
||||
test app::diagram_usages::tests::completion_after_cancel_releases_slot_without_reopening_or_moving ... ok
|
||||
test app::diagram_usages::tests::completion_releases_worker_behind_busy_modal_without_navigation ... ok
|
||||
test app::diagram_usages::tests::dirty_or_comment_caret_has_no_selected_object_fallback ... ok
|
||||
test app::diagram_usages::tests::forged_completion_cannot_release_another_slot_or_admit_wrong_context ... ok
|
||||
test app::diagram_usages::tests::old_panel_tokens_and_forged_targets_cannot_redirect_selection ... ok
|
||||
test app::diagram_usages::tests::oversized_node_focus_stays_on_label_and_single_surface_query_excludes_other_views ... ok
|
||||
test app::diagram_usages::tests::pending_source_behavior_and_modal_inputs_block_open_and_choose_without_loss ... ok
|
||||
test app::diagram_usages::tests::port_navigation_selects_port_and_exact_visible_owner_without_editing_geometry ... ok
|
||||
test app::diagram_usages::tests::query_presentation_snapshot_keeps_expansion_without_retaining_live_state ... ok
|
||||
test app::diagram_usages::tests::repeated_preview_arrows_select_the_relation_and_highlight_the_exact_caller_link ... ok
|
||||
test app::diagram_usages::tests::repeated_process_calls_reveal_the_chosen_caller_and_distinct_tile_camera ... ok
|
||||
test app::diagram_usages::tests::repeated_scenario_messages_select_the_exact_occurrence_and_move_camera ... ok
|
||||
test app::diagram_usages::tests::reset_keeps_old_worker_slot_and_only_new_document_results_are_admitted ... ok
|
||||
test app::diagram_usages::tests::revision_retarget_and_document_change_make_old_destinations_inert ... ok
|
||||
test app::diagram_usages::tests::saved_node_and_edge_navigation_preserve_whole_sources_and_actual_history ... ok
|
||||
test app::diagram_usages::tests::saved_scenario::explicit_saved_layout_repair_undo_redo_requeries_authored_and_fallback_geometry_without_extra_history ... ok
|
||||
test app::diagram_usages::tests::saved_scenario::retargeted_saved_view_cannot_reveal_a_former_owner_occurrence ... ok
|
||||
test app::diagram_usages::tests::saved_scenario::saved_a_b_a_rejects_old_visit_and_panel_callbacks_before_deferred_measurement ... ok
|
||||
test app::diagram_usages::tests::saved_scenario::saved_chooser_and_explicit_reveal_preserve_complete_source_and_actual_undo_redo ... ok
|
||||
test app::diagram_usages::tests::saved_scenario::saved_queries_use_each_actual_presentation_and_keep_repeated_appearances_and_references_opaque ... ok
|
||||
test app::diagram_usages::tests::saved_scenario::saved_reveal_and_chooser_refuse_source_property_and_behavior_drafts ... ok
|
||||
test app::diagram_usages::tests::stale_caret_completion_never_opens_diagrams_for_current_selection ... ok
|
||||
test app::diagram_usages::tests::stale_open_context_cannot_replace_a_panel ... ok
|
||||
test app::diagram_usages::tests::stale_revision_completion_refreshes_asynchronously_without_activating ... ok
|
||||
test app::diagram_usages::tests::state_row_navigation_has_exact_visual_row_without_retargeting_the_selected_relation ... ok
|
||||
test app::diagram_usages::tests::tree_origin_captures_subject_and_never_falls_back_to_current_selection_or_name ... ok
|
||||
test app::diagram_usages::tests::whole_surface_camera_fits_huge_extent_while_target_camera_remains_readable ... ok
|
||||
test app::diagram_usages::tests::worker_failure_finishes_loading_and_can_be_retried_without_losing_sources ... ok
|
||||
test app::direct_scenario_tests::direct_scenario_camera_details_and_real_resize_invalidate_only_pointer_context ... ok
|
||||
test app::direct_scenario_tests::direct_scenario_creation_and_reorder_preserve_selection_and_each_undo_once ... ok
|
||||
test app::direct_scenario_tests::direct_scenario_rejects_every_stale_context_and_preserves_property_drafts ... ok
|
||||
test app::direct_scenario_tests::direct_scenario_source_failure_and_navigation_keep_form_until_success ... ok
|
||||
test app::saved_scenario_dispatch_tests::forged_saved_usage_is_refused_without_selection_or_camera_changes ... ok
|
||||
test app::saved_scenario_dispatch_tests::missing_export_target_does_not_apply_pending_properties_or_open_dialog ... ok
|
||||
test app::saved_scenario_dispatch_tests::rejected_export_schedules_no_write_and_preserves_draft_history_and_busy_state ... ok
|
||||
test app::saved_scenario_dispatch_tests::saved_picker_with_invalid_properties_and_reveal_with_pending_properties_do_not_apply ... ok
|
||||
test app::saved_scenario_dispatch_tests::saved_scenario_cannot_use_architecture_controls_or_change_projection_by_toolbar ... ok
|
||||
test app::saved_scenario_dispatch_tests::saved_scenario_does_not_start_the_existing_architecture_palette ... ok
|
||||
test app::saved_scenario_dispatch_tests::semantic_scenario_preview_remains_available_and_saved_views_are_not_default_architecture ... ok
|
||||
test app::scenario_diagram::adoption_tests::missing_and_deleted_picker_ids_cannot_apply_an_unrelated_valid_property_draft ... ok
|
||||
test app::scenario_diagram::adoption_tests::source_cross_layer_owner_retarget_undo_redo_keeps_requested_saved_uuid ... ok
|
||||
test app::scenario_diagram::adoption_tests::source_deleted_owner_and_saved_view_mount_unavailable_instead_of_another_behavior ... ok
|
||||
test app::scenario_diagram::adoption_tests::source_same_layer_owner_retarget_undo_redo_keeps_requested_saved_uuid ... ok
|
||||
test app::scenario_diagram::owner_navigation_tests::saved_scenario_direct_behavior_selection_enters_explicit_process_or_state_owner ... ok
|
||||
test app::scenario_diagram::owner_navigation_tests::saved_scenario_guide_selection_returns_to_explicit_process_or_state_owner ... ok
|
||||
test app::scenario_diagram::tests::arrangement_picker_rejects_previous_visit_and_switches_automatic_without_model_changes ... ok
|
||||
test app::scenario_diagram::tests::leaving_and_reentering_saved_view_preserves_source_and_retires_passive_visit ... ok
|
||||
test app::scenario_diagram::tests::saved_picker_applies_valid_old_draft_and_uuid_edit_follows_that_same_view ... ok
|
||||
test app::scenario_diagram::tests::saved_reference_back_restores_exact_view_with_a_fresh_visit ... ok
|
||||
test app::scenario_diagram::tests::saved_view_return_rejects_old_passive_events_without_an_intermediate_frame ... ok
|
||||
test app::scenario_diagram::tests::saved_view_switches_are_distinct_passive_visits_and_preserve_actual_history ... ok
|
||||
test app::scenario_spacing::tests::click_selects_but_crossed_return_and_cancel_preserve_selection_camera_and_history ... ok
|
||||
test app::scenario_spacing::tests::modal_open_cancels_preview_and_captured_begin_stays_retired_after_close ... ok
|
||||
test app::scenario_spacing::tests::pending_semantic_draft_and_source_edit_cancel_and_reject_held_finish ... ok
|
||||
test app::scenario_spacing::tests::same_batch_preview_is_immutable_and_one_commit_undo_redo_has_exact_source_parity ... ok
|
||||
test app::scenario_spacing::tests::source_write_failure_cannot_commit_candidate_or_materialize_camera ... ok
|
||||
test app::scenario_spacing::tests::stale_finish_after_new_view_and_forged_token_are_inert_before_reveal_reconciliation ... ok
|
||||
test app::scenario_spacing::tests::stale_finish_cannot_remove_new_same_view_deferred_reveal ... ok
|
||||
test app::source_rename::tests::navigation_union_tests::rename_then_exact_caret_diagram_navigation_preserves_complete_model_undo_redo_history ... ok
|
||||
test app::transition_context_tests::explicit_behavior_internal_and_process_roots_keep_their_workspace_without_creating_a_view ... ok
|
||||
test app::transition_context_tests::explicit_destination_is_honored_and_ordinary_work_transition_still_places_in_architecture ... ok
|
||||
test app::transition_context_tests::machine_and_typed_action_transitions_resolve_the_owner_and_reusing_that_context_retains_camera ... ok
|
||||
test app::transition_context_tests::rejected_source_writeback_keeps_review_and_navigation_and_invalid_draft_still_blocks_start ... ok
|
||||
test app::transition_context_tests::scenario_transition_focuses_requested_counterpart_and_preserves_unrelated_views_in_both_directions ... ok
|
||||
test behavior::canvas_workspace::camera_policy_tests::tiny_zoom_label_is_nonzero_and_changes_with_zoom ... ok
|
||||
test behavior::canvas_workspace::camera_policy_tests::topology_retains_five_percent_floor ... ok
|
||||
test behavior::canvas_workspace::tests::relative_camera_zoom_keeps_the_cursor_world_point_and_rejects_nonfinite_inputs ... ok
|
||||
test behavior::canvas_workspace::tests::viewport_ordered_batch_uses_each_event_position_and_cancels_before_camera_motion ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_app_checkpoint_restores_inner_raw_draft_without_model_adoption ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_app_empty_actions_and_child_open_refuse_other_raw_editors ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_app_modal_escape_then_child_back_then_parent_cancel_preserve_accepted_source ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_back_remains_available_after_owner_deletion_and_with_dirty_editors ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_back_retains_parent_and_rejects_late_child_event ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_default_consumer_name_has_stable_alias_and_correlated_selection ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_deleted_owner_view_retains_draft_instead_of_panicking_or_using_fallback ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_empty_history_reports_no_change_and_success_requires_a_real_history_step ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_empty_palette_lifeline_cannot_open_a_previous_owner_or_layer ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_existing_choice_prunes_staged_dependency ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_failed_source_budget_preserves_both_drafts_and_accepted_bytes ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_incomplete_recovered_kind_reports_error_without_panicking ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_inserts_work_on_the_exact_guarded_link_and_refuses_exchange_identity_conflict ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_lifelines_stage_exact_separate_records_and_one_history_entry ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_machine_before_any_owner_creates_optional_view_atomically ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_mounted_small_editor_keeps_back_and_use_outside_field_scroll ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_nested_semantic_parent_is_explicit_and_revalidated ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_new_callee_lifeline_preserves_caller_bindings_as_an_explicit_warning ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_original_document_remains_bound_after_back_or_choosing_existing ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_owner_first_can_return_to_an_unnamed_machine_without_losing_source ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_recovery_keeps_inner_raw_fields_and_refuses_deleted_or_changed_owner ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_second_system_and_role_machine_owner_refuse_without_fallback ... ok
|
||||
test behavior::contextual_source_tests::contextual_source_work_uses_reserved_contribution_and_link_ids_and_one_undo ... ok
|
||||
test behavior::direct_canvas_tests::direct_alt_execution_stops_each_operand_at_its_reply_and_marks_open_operand ... ok
|
||||
test behavior::direct_canvas_tests::direct_execution_span_ends_at_its_correlated_reply_and_marks_an_open_call ... ok
|
||||
test behavior::scenario::camera::tests::fit_remains_active_across_first_and_changed_viewport ... ok
|
||||
test behavior::scenario::camera::tests::invalid_inputs_are_passive_and_large_finite_bounds_do_not_overflow_center ... ok
|
||||
test behavior::scenario::camera::tests::negative_origin_fit_contains_independently_known_extremes ... ok
|
||||
test behavior::scenario::camera::tests::pan_leaves_fit_from_displayed_position_and_zero_motion_preserves_fit ... ok
|
||||
test behavior::scenario::camera::tests::tiny_fit_zoom_in_out_preserves_pointer_world_anchor_without_floor_jump ... ok
|
||||
test behavior::scenario::data_contract_tests::large_payload_has_one_editor_with_reachable_field_and_authored_pages ... ok
|
||||
test behavior::scenario::data_contract_tests::recursive_browsing_up_and_root_keep_values_and_report_the_depth_limit ... ok
|
||||
test behavior::scenario::data_contract_tests::recursive_value_focus_exposes_authored_leaf_and_phase_changes_retain_surviving_keys ... ok
|
||||
test behavior::scenario::data_contract_tests::reply_call_picker_previews_the_same_value_reset_as_selecting_another_exchange ... ok
|
||||
test behavior::scenario::data_contract_tests::scenario_form_commits_two_reused_record_values_and_correlated_reply_atomically ... ok
|
||||
test behavior::scenario::direct_tests::direct_busy_save_keeps_details_current_and_camera_for_the_next_pointer_gesture ... ok
|
||||
test behavior::scenario::direct_tests::direct_clicked_occurrence_rejects_stale_slots_and_retains_recoverable_drafts ... ok
|
||||
test behavior::scenario::direct_tests::direct_clicked_occurrences_use_root_and_operand_slots_with_exact_source_history ... ok
|
||||
test behavior::scenario::direct_tests::direct_exchange_compatibility_browsing_preserves_final_slot_validation ... ok
|
||||
test behavior::scenario::direct_tests::direct_exchange_picker_is_bounded_and_browsing_keeps_pending_values ... ok
|
||||
test behavior::scenario::direct_tests::direct_five_hundred_exchange_choice_render_probe ... ok
|
||||
test behavior::scenario::direct_tests::direct_form_keeps_the_same_canvas_in_the_widget_tree ... ok
|
||||
test behavior::scenario::direct_tests::direct_middle_pair_insertion_is_one_exact_source_and_model_undo ... ok
|
||||
test behavior::scenario::direct_tests::direct_operand_pair_keeps_parent_sequence_and_cannot_reorder_across_operands ... ok
|
||||
test behavior::scenario::direct_tests::direct_reply_choices_cache_keeps_typing_fast_and_revalidates_changed_contexts ... ok
|
||||
test behavior::scenario::direct_tests::direct_reply_choices_validate_the_actual_slot_and_reorder_rejects_reverse_order ... ok
|
||||
test behavior::scenario::direct_tests::direct_scenario_reference_navigation_blocks_pending_drafts_and_stale_contexts ... ok
|
||||
test behavior::scenario::direct_tests::direct_scenario_reference_navigation_retains_each_exact_caller_without_history ... ok
|
||||
test behavior::scenario::direct_tests::direct_scenario_reference_return_survives_rename_and_rejects_deleted_or_changed_use ... ok
|
||||
test behavior::scenario::operation_tests::operation_gui_async_picker_uses_request_root_and_nested_directions_without_erasing_rejected_values ... ok
|
||||
test behavior::scenario::operation_tests::operation_gui_selects_two_parameterless_allocations_without_inventing_refinement_and_reply_derives_call ... ok
|
||||
test behavior::scenario::operation_tests::operation_gui_unresolved_and_disabled_selection_recovery_preserves_rejected_raw_values ... ok
|
||||
test behavior::scenario::presentation_tests::complete_fallback_scene_selects_but_cannot_capture_or_finish_coordinate_gestures ... ok
|
||||
test behavior::scenario::presentation_tests::deleted_saved_identity_remains_unavailable_and_never_falls_into_derived_geometry ... ok
|
||||
test behavior::scenario::presentation_tests::saved_caller_restores_exact_representation_with_fresh_visit_and_rejects_deleted_view ... ok
|
||||
test behavior::scenario::presentation_tests::saved_camera_fits_actual_negative_origin_and_tiny_scale_without_authored_mutation ... ok
|
||||
test behavior::scenario::presentation_tests::saved_visits_distinguish_same_owner_roundtrips_and_suspended_return_without_editing ... ok
|
||||
test behavior::scenario::spacing::controller::tests::click_threshold_is_active_axis_and_return_to_zero_is_not_a_click ... ok
|
||||
test behavior::scenario::spacing::controller::tests::forged_camera_hit_role_and_retired_visit_cannot_capture ... ok
|
||||
test behavior::scenario::spacing::controller::tests::fractional_screen_packet_preserves_subpixel_motion_in_preview_and_finish ... ok
|
||||
test behavior::scenario::spacing::controller::tests::invalid_move_discards_prior_candidate_and_finish_rechecks_final_pointer ... ok
|
||||
test behavior::scenario::spacing::controller::tests::real_preview_moves_only_active_axis_from_original_and_never_changes_document ... ok
|
||||
test behavior::scenario::spacing::controller::tests::zoomed_out_message_tolerance_matches_actual_canvas_hit ... ok
|
||||
test behavior::scenario::spacing::tests::drawn_unassigned_lifeline_can_move_without_assigning_a_semantic_participant ... ok
|
||||
test behavior::scenario::spacing::tests::feasible_spacing_crossing_remains_authored_with_diagnostic_and_unchanged_steps ... ok
|
||||
test behavior::scenario::spacing::tests::horizontal_lane_move_changes_actual_header_and_attached_endpoints_only_in_selected_view ... ok
|
||||
test behavior::scenario::spacing::tests::invalid_view_foreign_identity_and_latent_message_are_not_spacing_targets ... ok
|
||||
test behavior::scenario::spacing::tests::malformed_or_out_of_range_motion_cannot_mutate_original ... ok
|
||||
test behavior::scenario::spacing::tests::one_repeated_message_moves_in_one_view_with_exact_document_undo_redo_and_reopen ... ok
|
||||
test behavior::scenario::spacing::tests::self_call_spacing_uses_send_y_and_preserves_reply_and_actual_activation_finish ... ok
|
||||
test behavior::scenario::spacing::tests::unsupported_self_call_move_is_refused_and_automatic_fallback_is_not_editable_capture ... ok
|
||||
test behavior::scenario::spacing::tests::zero_motion_return_to_start_and_subprecision_preserve_sparse_intent_and_real_redo ... ok
|
||||
test behavior::scenario::tests::fragment_operands_accept_paired_messages_through_normal_destination_picker ... ok
|
||||
test behavior::scenario::tests::graphical_call_reply_is_atomic_correlated_and_source_equivalent ... ok
|
||||
test behavior::scenario::tests::invalid_lifecycle_edit_keeps_draft_and_timer_has_no_global_exchange ... ok
|
||||
test behavior::scenario::tests::lifeline_picker_uses_core_viewpoint_contract ... ok
|
||||
test behavior::scenario::tests::reverse_communication_canvas_choices_and_correlated_reply_share_core_direction ... ok
|
||||
test behavior::scenario::tests::scenario_reuse_requires_explicit_compatible_bindings ... ok
|
||||
test behavior::scenario::tests::tagged_scenario_commit_is_not_redirected_by_other_editor_events ... ok
|
||||
test behavior::scenario::usage::tests::scenario_operation_label_membership_excludes_ellipsis_only_and_normalizes_whitespace ... ok
|
||||
test behavior::scenario::usage::tests::scenario_usage_counts_nested_occurrences_and_lifelines_but_keeps_reuse_opaque ... ok
|
||||
test behavior::scenario::usage::tests::scenario_usage_keeps_repeated_messages_and_reveal_is_read_only_and_revalidated ... ok
|
||||
test behavior::scenario::usage::tests::scenario_usage_only_reports_the_resolved_operation_fields_actually_in_the_label ... ok
|
||||
test behavior::scenario::workspace::spacing_tests::saved_body_and_header_clicks_select_without_materializing_spacing ... ok
|
||||
test behavior::scenario::workspace::spacing_tests::saved_drag_return_to_origin_preserves_redo_selection_and_original_fit_camera ... ok
|
||||
test behavior::scenario::workspace::spacing_tests::saved_escape_and_outside_pointer_cancel_actual_held_preview ... ok
|
||||
test behavior::scenario::workspace::spacing_tests::saved_header_preview_survives_frames_and_freezes_fit_while_actual_bounds_expand ... ok
|
||||
test behavior::scenario::workspace::spacing_tests::saved_message_same_batch_pointer_events_commit_once_and_one_undo_redo_restores_exact_source ... ok
|
||||
test behavior::scenario::workspace::spacing_tests::saved_valid_preview_then_refused_self_call_never_commits_last_valid_candidate ... ok
|
||||
test behavior::scenario::workspace::tests::new_scenario_form_resets_only_its_scroll_and_recovery_gets_a_fresh_session ... ok
|
||||
test behavior::scenario::workspace::tests::production_empty_scenario_lifeline_tool_keeps_staged_source_inside_stable_canvas ... ok
|
||||
test behavior::scenario::workspace::tests::production_scenario_camera_external_controls_bounds_and_retained_deltas_cancel_old_drags ... ok
|
||||
test behavior::scenario::workspace::tests::production_scenario_canvas_keeps_bounds_draft_identity_and_camera_through_editing ... ok
|
||||
test behavior::scenario::workspace::tests::production_scenario_canvas_pan_invalidates_a_pressed_creation_and_caller_restores_once ... ok
|
||||
test behavior::scenario::workspace::tests::production_scenario_keyboard_enters_activates_draws_focus_and_returns_to_inspector ... ok
|
||||
test behavior::scenario::workspace::tests::production_scenario_keyboard_reveals_and_activates_initially_offscreen_last_tool ... ok
|
||||
test behavior::scenario::workspace::tests::production_scenario_retained_toolbar_intents_reject_chooser_dirty_and_picker_lifetimes ... ok
|
||||
test behavior::scenario::workspace::tests::production_scenario_whole_glyph_drag_moves_one_occurrence_and_rejects_other_operand ... ok
|
||||
test behavior::scenario::workspace::tests::scenario_form_focus_chained_apply_rechecks_live_review_owner ... ok
|
||||
test behavior::scenario::workspace::tests::scenario_form_focus_missing_exact_target_leaves_other_inputs_untouched ... ok
|
||||
test behavior::scenario::workspace::tests::scenario_form_focus_returns_from_back_use_and_escape_after_initial_focus_is_consumed ... ok
|
||||
test behavior::scenario::workspace::tests::scenario_form_focus_saved_action_is_inert_on_replacement_child_review_and_changed_context ... ok
|
||||
test behavior::scenario::workspace::tests::scenario_form_focus_targets_the_name_and_rejects_stale_sessions_or_modals ... ok
|
||||
test behavior::scenario::workspace::tests::scenario_workspace_choosing_tools_preserves_valid_and_invalid_pending_editors ... ok
|
||||
test behavior::scenario::workspace::tests::scenario_workspace_fit_uses_measured_inner_viewport_and_rejects_nonfinite_inputs ... ok
|
||||
test behavior::scenario::workspace::tests::scenario_workspace_open_and_back_restore_owner_and_mounted_camera_after_preselection ... ok
|
||||
test behavior::scenario::workspace::tests::scenario_workspace_same_size_owner_and_document_changes_remeasure_fit_viewport ... ok
|
||||
test behavior::scenario::workspace::tests::scenario_workspace_scaled_and_panned_scene_keeps_clicked_slots_and_message_endpoints ... ok
|
||||
test behavior::scenario::workspace::tests::scenario_workspace_scaled_nested_occurrences_and_reorder_keep_exact_sequence_identity ... ok
|
||||
test behavior::scenario::workspace::tests::scenario_workspace_viewport_events_are_passive_guarded_and_do_not_apply_raw_forms ... ok
|
||||
test behavior::scenario_activation::tests::a_fragment_cannot_make_crossed_calls_an_unambiguous_caller_execution ... ok
|
||||
test behavior::scenario_activation::tests::activation_shoulders_under_label_backplates_select_their_call ... ok
|
||||
test behavior::scenario_activation::tests::actual_canvas_pointer_selects_each_exposed_shoulder_under_zoom_and_pan ... ok
|
||||
test behavior::scenario_activation::tests::alternative_and_parallel_operand_local_calls_do_not_nest_from_screen_order ... ok
|
||||
test behavior::scenario_activation::tests::an_inactive_self_call_has_no_fabricated_parent_and_three_nested_calls_expose_three_columns ... ok
|
||||
test behavior::scenario_activation::tests::call_uuid_order_does_not_choose_activation_columns_or_message_anchors ... ok
|
||||
test behavior::scenario_activation::tests::inherited_execution_anchors_a_self_call_inside_an_operand_before_returning_after_the_fragment ... ok
|
||||
test behavior::scenario_activation::tests::long_message_backplates_do_not_erase_selected_activation_border_pixels ... ok
|
||||
test behavior::scenario_activation::tests::missing_reply_is_a_short_explicit_open_span_and_an_uncorrelated_reply_closes_nothing ... ok
|
||||
test behavior::scenario_activation::tests::nested_calls_expose_both_bars_and_end_at_their_exact_replies_in_both_directions ... ok
|
||||
test behavior::scenario_activation::tests::nested_correlations_returning_in_alternative_operands_remain_nested_before_the_fragment ... ok
|
||||
test behavior::scenario_activation::tests::reentrant_call_uses_the_other_receiver_without_inventing_a_caller_execution ... ok
|
||||
test behavior::scenario_activation::tests::self_call_receives_at_lower_loop_end_and_self_reply_returns_to_the_parent ... ok
|
||||
test behavior::scenario_activation::tests::sequential_calls_reuse_column_and_crossed_replies_keep_their_correlations ... ok
|
||||
test behavior::scenario_hit_tests::action_frame_and_use_boxes_do_not_advertise_message_or_header_roles ... ok
|
||||
test behavior::scenario_hit_tests::activation_shoulder_beats_another_calls_label_and_broad_message_tolerance ... ok
|
||||
test behavior::scenario_hit_tests::create_delete_markers_are_distinct_from_their_own_message_body_and_label ... ok
|
||||
test behavior::scenario_hit_tests::exact_headers_include_unassigned_lifelines_but_guides_are_not_headers ... ok
|
||||
test behavior::scenario_hit_tests::invalid_points_never_produce_a_semantic_or_spacing_hit ... ok
|
||||
test behavior::scenario_hit_tests::repeated_exchange_occurrences_keep_distinct_message_body_and_label_hits ... ok
|
||||
test behavior::scenario_hit_tests::self_call_elbow_and_receive_endpoint_are_messages_not_execution_hits ... ok
|
||||
test behavior::scenario_hit_tests::tiny_scale_nearest_hit_retains_the_winning_marker_or_message_role ... ok
|
||||
test behavior::scenario_hit_tests::winning_primitive_role_does_not_come_from_its_shared_uuid ... ok
|
||||
test behavior::scenario_layout::presentation::tests::absent_and_empty_saved_layouts_remain_saved_ready_representations ... ok
|
||||
test behavior::scenario_layout::presentation::tests::hard_failure_uses_complete_automatic_geometry_but_retains_each_saved_request_and_latent_notice ... ok
|
||||
test behavior::scenario_layout::presentation::tests::missing_or_incompatible_identity_and_structural_coordinate_errors_are_unavailable ... ok
|
||||
test behavior::scenario_layout::presentation::tests::passive_fallback_preserves_exact_document_source_and_one_step_undo_redo ... ok
|
||||
test behavior::scenario_layout::presentation::tests::successful_crossing_diagnostic_keeps_authored_geometry_and_latent_identity ... ok
|
||||
test behavior::scenario_layout::tests::absent_empty_and_explicit_baseline_saved_values_preserve_complete_scene_and_source ... ok
|
||||
test behavior::scenario_layout::tests::authored_lanes_precede_headers_arrows_lifetimes_and_complete_bounds ... ok
|
||||
test behavior::scenario_layout::tests::authored_send_bits_survive_baseline_delta_and_self_lifecycle_row_conversion ... ok
|
||||
test behavior::scenario_layout::tests::complete_scope_plan_rejects_escape_preserves_overlap_and_keeps_headers_and_followers ... ok
|
||||
test behavior::scenario_layout::tests::decimal_call_anchor_is_admitted_and_exact_in_plan_line_and_typed_activation ... ok
|
||||
test behavior::scenario_layout::tests::earlier_receiver_death_and_prebirth_call_are_named_typed_failures_not_disappearing_bars ... ok
|
||||
test behavior::scenario_layout::tests::exact_authored_lane_bits_survive_headers_and_tiny_distinct_lanes_are_not_coincident ... ok
|
||||
test behavior::scenario_layout::tests::explicit_root_scope_failures_do_not_clamp_calls_or_lifecycle_but_async_can_be_negative ... ok
|
||||
test behavior::scenario_layout::tests::independent_saved_appearances_of_reused_exchange_have_exact_anchors_and_no_ambient_state ... ok
|
||||
test behavior::scenario_layout::tests::latent_message_becomes_exact_only_when_its_own_endpoint_is_completed ... ok
|
||||
test behavior::scenario_layout::tests::moved_death_clips_actual_bar_and_preserves_unanswered_cue ... ok
|
||||
test behavior::scenario_layout::tests::newly_skipped_sibling_scope_is_rejected_using_real_projector_diagnostics ... ok
|
||||
test behavior::scenario_layout::tests::post_fragment_death_cannot_disappear_and_feasible_operand_spacing_retains_its_marker ... ok
|
||||
test behavior::scenario_layout::tests::reply_crossing_is_a_specific_typed_failure ... ok
|
||||
test behavior::scenario_layout::tests::same_x_distinct_lifelines_are_not_self_messages_in_either_bridge ... ok
|
||||
test behavior::scenario_layout::tests::saved_direct_nested_message_uses_operand_scopes_without_reparenting_or_moving_followers ... ok
|
||||
test behavior::scenario_layout::tests::self_call_receive_and_reply_send_drive_the_full_typed_execution ... ok
|
||||
test behavior::scenario_layout::tests::self_lifecycle_saved_send_is_converted_once_to_the_actual_receive_marker ... ok
|
||||
test behavior::scenario_layout::tests::timer_uses_implicit_effective_receiver_and_true_self_offset ... ok
|
||||
test behavior::scenario_layout::tests::unfinished_coordinate_is_latent_and_zero_or_signed_zero_never_rewrites_source ... ok
|
||||
test behavior::scenario_layout::tests::unsupported_expansion_duplicate_keys_and_foreign_identity_fail_without_mutating_input ... ok
|
||||
test behavior::scenario_layout::tests::wide_gap_bounds_include_all_actual_shapes_and_typed_extensions ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::birth_label_clip_keeps_padded_world_bounds_at_each_scene_scale ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::birth_label_clip_preserves_parent_viewport_bounds ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::box_text_clip_intersects_parent_viewport_and_rejects_empty_interiors ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::panned_header_and_create_clips_use_screen_translation_and_actual_viewport ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::real_scene_birth_death_markers_align_endpoints_and_win_selection_without_mutating_source ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::real_scene_branch_delete_clips_only_its_activation_and_keeps_unanswered_call_visible ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::real_scene_conditional_repeated_and_parallel_scopes_do_not_claim_definite_continuation ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::real_scene_empty_and_create_only_use_visible_root_extents_not_insertion_bounds ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::real_scene_lifecycle_edit_undo_redo_restores_exact_source_and_changed_geometry ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::real_scene_long_header_title_and_detail_keep_names_and_have_bounded_clips ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::real_scene_minimum_zoom_marker_halos_do_not_steal_adjacent_capsule_or_header_hits ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::real_scene_minimum_zoom_near_ordinary_message_wins_over_lifecycle_halos ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::real_scene_panned_zoomed_program_keeps_header_birth_and_death_hit_identity ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::real_scene_self_delete_caption_clears_the_preceding_action_box ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::real_scene_self_lifecycle_elbows_end_on_recorded_marker_rows ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::real_scene_unassigned_lanes_and_explicit_incomplete_receiver_keep_real_marker_identity ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::real_scene_wide_latin_header_exceeds_old_character_budget ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::union_tests::admitted_calls_without_sender_polylines_still_have_logical_correlation_metadata ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::union_tests::admitted_death_and_incomplete_later_reply_do_not_fabricate_an_answered_execution ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::union_tests::admitted_delayed_create_nested_calls_replies_delete_share_one_geometry_pipeline ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::union_tests::admitted_self_lifecycle_and_self_call_keep_distinct_send_receive_rows ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::union_tests::admitted_unresolved_operand_keeps_unanswered_cue_without_any_visible_segment ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::union_tests::clipped_operand_preserves_original_nested_or_crossed_correlation_distinction ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::union_tests::conditional_death_then_recreate_never_revives_call_but_keeps_open_sibling ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::union_tests::invalid_prebirth_call_and_postdeath_reply_remain_rejected_with_defensive_scene_clipping ... ok
|
||||
test behavior::scenario_lifecycle::render::tests::union_tests::test_only_upstream_row_offsets_update_lifetime_segments_and_endpoints_without_authoring ... ok
|
||||
test behavior::scenario_lifecycle::tests::alternative_death_does_not_kill_its_displayed_sibling ... ok
|
||||
test behavior::scenario_lifecycle::tests::conditional_birth_does_not_infer_absence_in_siblings_or_ancestors ... ok
|
||||
test behavior::scenario_lifecycle::tests::explicit_receiver_is_authoritative_even_with_missing_exchange ... ok
|
||||
test behavior::scenario_lifecycle::tests::lifecycle_free_fragments_do_not_poison_other_lanes ... ok
|
||||
test behavior::scenario_lifecycle::tests::loop_lifetime_is_local_and_warning_bearing_loops_remain_drawable ... ok
|
||||
test behavior::scenario_lifecycle::tests::missing_geometry_is_reported_without_nonfinite_or_guessed_markers ... ok
|
||||
test behavior::scenario_lifecycle::tests::optional_cleanup_inside_loop_does_not_claim_balanced_or_definite_exit ... ok
|
||||
test behavior::scenario_lifecycle::tests::projection_retains_exact_authored_source_and_does_not_enter_history ... ok
|
||||
test behavior::scenario_lifecycle::tests::root_lifetime_has_exact_birth_death_boundaries_without_source_mutation ... ok
|
||||
test behavior::scenario_lifecycle::tests::scenario_use_is_opaque_and_never_imports_callee_lifecycle_events ... ok
|
||||
test diagram::tests::svg_accepts_populated_and_empty_architecture_views ... ok
|
||||
test diagram::tests::svg_rejects_missing_diagram_without_mutation ... ok
|
||||
test diagram::tests::svg_rejects_saved_scenario_with_absent_or_authored_layout_without_mutation ... ok
|
||||
test workflow::saved_scenario_destination_tests::empty_transition_results_do_not_make_a_scenario_an_architecture_destination ... ok
|
||||
|
||||
test result: ok. 289 passed; 0 failed; 0 ignored; 0 measured; 794 filtered out; finished in 377.92s
|
||||
|
||||
+3100
File diff suppressed because it is too large
Load Diff
+3100
File diff suppressed because it is too large
Load Diff
+3100
File diff suppressed because it is too large
Load Diff
+3100
File diff suppressed because it is too large
Load Diff
+3100
File diff suppressed because it is too large
Load Diff
+1449
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+52
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"status": "Synthetic actual-runner parser checks only; no Cargo or product tests",
|
||||
"focusedCount": 289,
|
||||
"runnerSha256": "ce71f9bdb81ef00b3dd371904716953e1324d68e0743ee083704020754550e48",
|
||||
"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
|
||||
}
|
||||
]
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"status": "Synthetic actual-runner parser checks only; no Cargo or product tests",
|
||||
"focusedCount": 289,
|
||||
"runnerSha256": "3e0d64ba0ee6f1910afbe4baf29a5f117e5406e9cddb3b56c991e4c6400513fe",
|
||||
"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
|
||||
}
|
||||
]
|
||||
}
|
||||
+89
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"status": "Template prepared and frozen; no finalization, captures, Cargo, clean or product execution",
|
||||
"source_pin": "PENDING_REVIEWED_SOURCE_PIN",
|
||||
"reviewed_correction": "0409a481c7571e887f8912f0a8cdb93cfdcc01a7",
|
||||
"expected_desktop_count": 1083,
|
||||
"focused_count": 289,
|
||||
"ignored_count": 4,
|
||||
"source_count_expected": 610,
|
||||
"syntactic_scripts": 8,
|
||||
"synthetic_actual_parser_cases": 9,
|
||||
"prior_closed_evidence_bindings_verified": 8,
|
||||
"files": [
|
||||
{
|
||||
"path": "binary-inputs.ps1",
|
||||
"bytes": 1214,
|
||||
"sha256": "59da671a59d75ea0aa0c4662b1e48fd189823e45b71d0df98e65430becc7da83"
|
||||
},
|
||||
{
|
||||
"path": "capture.ps1",
|
||||
"bytes": 4106,
|
||||
"sha256": "13d1c095ad215ced1b226ed42b2578a35e93274c3173e0184af151d4bf1d2e9d"
|
||||
},
|
||||
{
|
||||
"path": "correction-template.json",
|
||||
"bytes": 3642,
|
||||
"sha256": "2b123fc420728db09bdebc38f1a17230c23968471d80f484784601fe927504a7"
|
||||
},
|
||||
{
|
||||
"path": "diagnostic.ps1",
|
||||
"bytes": 6840,
|
||||
"sha256": "716bb97774bc3581386753e5bb2029cf1d6b864af07bdcaa29fe2c13621ed530"
|
||||
},
|
||||
{
|
||||
"path": "enumerate-inputs.ps1",
|
||||
"bytes": 1830,
|
||||
"sha256": "42f2bcac6e1815d3b84be637141d0f2126d163710fe967c7a34c86c0c45e6420"
|
||||
},
|
||||
{
|
||||
"path": "expected-tests.json",
|
||||
"bytes": 155828,
|
||||
"sha256": "5b77ad59a0bb80957dabfe48187c8a0ddbd27686513eb27f617e87bfa1e31ef6"
|
||||
},
|
||||
{
|
||||
"path": "external-input-template.json",
|
||||
"bytes": 1413,
|
||||
"sha256": "8f0a45041bd0a5038647c62bde35df89f9b07ccdc9e37769f78154e021cf898b"
|
||||
},
|
||||
{
|
||||
"path": "finalize.ps1",
|
||||
"bytes": 11913,
|
||||
"sha256": "c9abd26a5c541292c82fa78d4928beb7c3a946c8ee82c2600898284b584304c2"
|
||||
},
|
||||
{
|
||||
"path": "parser-preparation-verification.json",
|
||||
"bytes": 1109,
|
||||
"sha256": "19fb7779584e08bf773298eb1b3ff8ffc475185cff6152043cdeec9844cd040a"
|
||||
},
|
||||
{
|
||||
"path": "README.md",
|
||||
"bytes": 4798,
|
||||
"sha256": "bc2f63dc51e540f90f56075ee2e9fa79b44e91a7c6b15ea67cec7e3af603ebbb"
|
||||
},
|
||||
{
|
||||
"path": "run.ps1",
|
||||
"bytes": 13162,
|
||||
"sha256": "ce71f9bdb81ef00b3dd371904716953e1324d68e0743ee083704020754550e48"
|
||||
},
|
||||
{
|
||||
"path": "selection-provenance.json",
|
||||
"bytes": 2752,
|
||||
"sha256": "f2eb756d82c7823bdda80a396e9655ed7ccb01fec98c06e2fb0041ed28179073"
|
||||
},
|
||||
{
|
||||
"path": "server-provenance-template.json",
|
||||
"bytes": 1249,
|
||||
"sha256": "5d062244a01775e77dee97ec3cf2d750f631e45b522ac1c40160ac486fb425d1"
|
||||
},
|
||||
{
|
||||
"path": "validate-scripts.ps1",
|
||||
"bytes": 497,
|
||||
"sha256": "7800d1ab132cb3c9ebc75f0e40f2c81f139565432db114326c0128ee66b8fe87"
|
||||
},
|
||||
{
|
||||
"path": "verify-parser.ps1",
|
||||
"bytes": 3461,
|
||||
"sha256": "9d59a053f49427c525086a6ea9735f171776171d7a3336143e5b00004c797999"
|
||||
}
|
||||
]
|
||||
}
|
||||
+127
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"source": "0409a481c7571e887f8912f0a8cdb93cfdcc01a7",
|
||||
"previousSource": "c4a2cf63f11818cf7fc766acf3a2779768a2a658",
|
||||
"scope": "Closed c4 listing passed (1082); focused failed (286 passed, 2 failed). Full-inventory direct-executable diagnostic is separate and never waives that failure. All corrected-source acceptance stages must pass anew.",
|
||||
"bindings": [
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/list-receipt.json",
|
||||
"bytes": 158143,
|
||||
"sha256": "076b1a00681ba00dc77cc1373da9e7e0f199cfb19ba90176bf2f9e80be6112e4"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/list.log",
|
||||
"bytes": 119429,
|
||||
"sha256": "a7f4adfa7ff6e5e83b4d69369d370f7200a9ba7252f24d477904dfdc2ee1e45c"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/focused-receipt.json",
|
||||
"bytes": 152609,
|
||||
"sha256": "4be2dccf8d20a785bf36fcb1615fe47419fd02414ed468cdade457b64a421333"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/focused.log",
|
||||
"bytes": 57937,
|
||||
"sha256": "70d89a74368c20c8b7502ef8c9a32d2de4ab959a05452f6d2e11d9538b878999"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/inputs-complete-before.json",
|
||||
"bytes": 118980,
|
||||
"sha256": "46a51390d6d9de96117ca10f0977a3e938b0f469e21375f7a99885ee185fe7ae"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/inputs-complete-focused-after.json",
|
||||
"bytes": 118980,
|
||||
"sha256": "6c2353f246a32c8a3edef4c0a6a6b98b7f2931fe5ea2f4d085966083e4189186"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/expected-tests.json",
|
||||
"bytes": 155695,
|
||||
"sha256": "92d17487dc077e46e3e708ee369c016470d3e54b52f90730aefb48db002c83ed"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/prior-failure-provenance.json",
|
||||
"bytes": 3301,
|
||||
"sha256": "42e9f7a06c0f1c163d64ae39830cd4a82e11985b3cc706dda10f4a8cafdf38b7"
|
||||
}
|
||||
],
|
||||
"list": {
|
||||
"cargoExitCode": 0,
|
||||
"selectionValid": true,
|
||||
"inputsUnchanged": true,
|
||||
"count": 1082
|
||||
},
|
||||
"focused": {
|
||||
"cargoExitCode": 101,
|
||||
"selectionValid": false,
|
||||
"inputsUnchanged": true,
|
||||
"result": [
|
||||
{
|
||||
"status": "FAILED",
|
||||
"passed": 286,
|
||||
"failed": 2,
|
||||
"ignored": 0,
|
||||
"measured": 0,
|
||||
"filtered": 794
|
||||
}
|
||||
],
|
||||
"failed": [
|
||||
{
|
||||
"name": "behavior::scenario::presentation_tests::complete_fallback_scene_selects_but_cannot_capture_or_finish_coordinate_gestures",
|
||||
"result": "FAILED"
|
||||
},
|
||||
{
|
||||
"name": "behavior::scenario::workspace::spacing_tests::saved_message_same_batch_pointer_events_commit_once_and_one_undo_redo_restores_exact_source",
|
||||
"result": "FAILED"
|
||||
}
|
||||
]
|
||||
},
|
||||
"diagnostic": {
|
||||
"bindings": [
|
||||
{
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\scenario-spacing-full-diagnostic-c4-20260913\\diagnostic-all-receipt.json",
|
||||
"bytes": 293991,
|
||||
"sha256": "c63e0ae818bd11a03ce68471f5cebe7d2ecce9a97dfbe73d7f006acede56b2da"
|
||||
},
|
||||
{
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\scenario-spacing-full-diagnostic-c4-20260913\\diagnostic-all.log",
|
||||
"bytes": 147762,
|
||||
"sha256": "70abe0811415d62812a206f7e9df779230f81a10e962cf44d6b862746d6afd6c"
|
||||
},
|
||||
{
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\scenario-spacing-full-diagnostic-c4-20260913\\provenance-before.json",
|
||||
"bytes": 6748,
|
||||
"sha256": "fc0ed618194043a3c4e17a19079021529228ab8a6842f0c0edee8a08eb14b676"
|
||||
},
|
||||
{
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\scenario-spacing-full-diagnostic-c4-20260913\\inputs-complete-diagnostic-all-before.json",
|
||||
"bytes": 118980,
|
||||
"sha256": "efc3a20c3ec68b75b1f7ffcb1af4dd815517f3f1c4ffc9fe42ef3ff99d46806e"
|
||||
},
|
||||
{
|
||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\scenario-spacing-full-diagnostic-c4-20260913\\inputs-complete-diagnostic-all-after.json",
|
||||
"bytes": 118980,
|
||||
"sha256": "9f732c5d6aee03574de5a10d858227f3f22cb328d97c964815544addd51a2ee5"
|
||||
}
|
||||
],
|
||||
"classification": "diagnostic_after_failed_focused_gate",
|
||||
"successful_full_gate": false,
|
||||
"waives_failed_focused_gate": false,
|
||||
"complete_inventory_valid": true,
|
||||
"inputs_unchanged": true,
|
||||
"exit_code": 101,
|
||||
"result": [
|
||||
{
|
||||
"status": "FAILED",
|
||||
"passed": 1076,
|
||||
"failed": 2,
|
||||
"ignored": 4,
|
||||
"measured": 0,
|
||||
"filtered": 0
|
||||
}
|
||||
],
|
||||
"failed": [
|
||||
"behavior::scenario::presentation_tests::complete_fallback_scene_selects_but_cannot_capture_or_finish_coordinate_gestures",
|
||||
"behavior::scenario::workspace::spacing_tests::saved_message_same_batch_pointer_events_commit_once_and_one_undo_redo_restores_exact_source"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
#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-spacing-ytr83r-20260913'
|
||||
$taskTarget='C:\Users\User\Documents\Git\ARCADIA-Studio\target'
|
||||
$taskPin='0409a481c7571e887f8912f0a8cdb93cfdcc01a7'
|
||||
if($taskPin -notmatch '^[0-9a-f]{40}$'){throw 'Final reviewed source pin and captures are not prepared; do not run this template.'}
|
||||
$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.'}
|
||||
$cache=Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'cache-policy.json')|ConvertFrom-Json
|
||||
if($cache.base -cne $taskPin -or -not $cache.retainExistingTarget -or $cache.cleanRequested){throw 'Wrong reviewed cache policy.'}
|
||||
. (Join-Path $PSScriptRoot 'binary-inputs.ps1')
|
||||
$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 289 -or $expected.Count -ne 289 -or @($selection.tests).Count -ne 289){throw 'Wrong exact focused membership.'}
|
||||
$expectedCount=289
|
||||
$commonFiles=@('run.ps1','capture.ps1','enumerate-inputs.ps1','binary-inputs.ps1','finalize.ps1','verify-parser.ps1','validate-scripts.ps1','parser-verification.json','finalization.json','expected-tests.json','expected-inputs.json','enumeration.json','external-inputs.json','inputs-complete-before.json','cache-policy.json','server-provenance.json','prior-failure-provenance.json','selection-provenance.json','diagnostic.ps1','correction-template.json','correction-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','-p','oa-server','--all-targets','--locked','--offline','--','-D','warnings')}
|
||||
'build' {@('build','-p','oa-desktop','--bin','arcadia-studio','--locked','--offline')}
|
||||
}
|
||||
$taskStart=[DateTime]::UtcNow.ToString('o')
|
||||
$testExecutablesBefore=@()
|
||||
if($Stage -ne 'list'){
|
||||
$testExecutablesBefore=@($prior.testExecutables|ForEach-Object {Get-GateBinary $_.path $taskTarget})
|
||||
if(-not (Same-GateBinaries @($prior.testExecutables) $testExecutablesBefore)){throw 'Previously bound test executable changed before this stage.'}
|
||||
}
|
||||
& 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}
|
||||
$testExecutables=@();$testBinaryBindingValid=$false
|
||||
try {
|
||||
if($Stage -eq 'list'){
|
||||
$testExecutables=@(Get-GateTestBinaries $taskText $taskTarget)
|
||||
if($testExecutables.Count -ne 1){throw 'Expected exactly one actual desktop test executable from Cargo listing.'}
|
||||
} else {
|
||||
$testExecutables=@($testExecutablesBefore|ForEach-Object {Get-GateBinary $_.path $taskTarget})
|
||||
if(-not (Same-GateBinaries $testExecutablesBefore $testExecutables)){throw 'Bound test executable changed during this stage.'}
|
||||
if($Stage -in @('focused','all')){
|
||||
$observed=@(Get-GateTestBinaries $taskText $taskTarget)
|
||||
if(-not (Same-GateBinaries $testExecutables $observed)){throw 'Executed test path differs from the exact listed executable.'}
|
||||
}
|
||||
}
|
||||
$testBinaryBindingValid=$true
|
||||
} catch {$taskFailure=$_.Exception.Message}
|
||||
$taskValid=$taskValid -and $testBinaryBindingValid
|
||||
$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;testExecutablesBefore=$testExecutablesBefore;testExecutables=$testExecutables;testBinaryBindingValid=$testBinaryBindingValid;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}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"status": "Source-only membership derivation; actual attempt3 listing pending",
|
||||
"prior_source": "c4a2cf63f11818cf7fc766acf3a2779768a2a658",
|
||||
"reviewed_correction_source": "0409a481c7571e887f8912f0a8cdb93cfdcc01a7",
|
||||
"prior_listing": {
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/list-receipt.json",
|
||||
"bytes": 158143,
|
||||
"sha256": "076b1a00681ba00dc77cc1373da9e7e0f199cfb19ba90176bf2f9e80be6112e4"
|
||||
},
|
||||
"prior_selection": {
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-gates-attempt2-20260913/expected-tests.json",
|
||||
"bytes": 155695,
|
||||
"sha256": "92d17487dc077e46e3e708ee369c016470d3e54b52f90730aefb48db002c83ed"
|
||||
},
|
||||
"prior_desktop_count": 1082,
|
||||
"prior_focused_count": 288,
|
||||
"added_tests": [
|
||||
"behavior::scenario::spacing::controller::tests::fractional_screen_packet_preserves_subpixel_motion_in_preview_and_finish"
|
||||
],
|
||||
"removed_tests": [],
|
||||
"expected_desktop_count": 1083,
|
||||
"expected_focused_count": 289,
|
||||
"expected_filtered": 794,
|
||||
"ignored_tests": [
|
||||
"app::source_rename::timing_tests::accepted_release1_prepare_commit_sync_and_confirm_timing",
|
||||
"app::source_rename::timing_tests::layout_timing_tests::accepted_release1_constructor_vs_reuse_through_next_highlight",
|
||||
"app::source_symbols::tests::source_symbols_100_modules_1000_definitions_10000_uses",
|
||||
"behavior::scenario::spacing::controller::timing_tests::saved_spacing_capture_prepare_20_lanes_1000_messages_3_views"
|
||||
],
|
||||
"reviewed_changed_sources": [
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-fixes-ytr83r-20260913/crates/oa-desktop/src/behavior/scenario/presentation_tests.rs",
|
||||
"bytes": 13912,
|
||||
"sha256": "e5552ba65c253580b1e5f18ba8ba77fb5aa188e009aecbd5b7406f06db3b2455"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-fixes-ytr83r-20260913/crates/oa-desktop/src/behavior/scenario/spacing/controller/tests.rs",
|
||||
"bytes": 13944,
|
||||
"sha256": "838aec6bf8af3109b0d4830edae9c6f6f2fae53dc8dc33d04b5079b6b2ee8c16"
|
||||
},
|
||||
{
|
||||
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-spacing-fixes-ytr83r-20260913/crates/oa-desktop/src/behavior/scenario/workspace/spacing_tests.rs",
|
||||
"bytes": 16699,
|
||||
"sha256": "59c1986abd2ed6f77e98015cc802a88e0265961458cd002b13bd933e641c7858"
|
||||
}
|
||||
],
|
||||
"method": "Compared exact prior listed names to prior expected inventory, added the single #[test] function verified in reviewed controller/tests.rs, retained all prior names and ignored membership. Finalizer requires integrated tree equality to reviewed correction commit."
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"status": "No repeated server stage: core/server/manifests unchanged from verified37 source",
|
||||
"previous_source": "37be41092beb1c940f345072df1e017ce45fe2fc",
|
||||
"source": "PENDING_REVIEWED_SOURCE_PIN",
|
||||
"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
|
||||
}
|
||||
],
|
||||
"strict_scope": "Required here: cargo clippy -p oa-desktop -p oa-server --all-targets --locked --offline -- -D warnings",
|
||||
"prior_strict_limit": "37 stopped on desktop warnings; server57 tests are not server strict acceptance"
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"status": "No repeated server stage: core/server/manifests unchanged from verified37 source",
|
||||
"previous_source": "37be41092beb1c940f345072df1e017ce45fe2fc",
|
||||
"source": "0409a481c7571e887f8912f0a8cdb93cfdcc01a7",
|
||||
"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
|
||||
}
|
||||
],
|
||||
"strict_scope": "Required here: cargo clippy -p oa-desktop -p oa-server --all-targets --locked --offline -- -D warnings",
|
||||
"prior_strict_limit": "37 stopped on desktop warnings; server57 tests are not server strict acceptance"
|
||||
}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"base": "0409a481c7571e887f8912f0a8cdb93cfdcc01a7",
|
||||
"capturedUtc": "2026-09-13T10:12:15.2409185Z",
|
||||
"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"
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
#Requires -Version 7.0
|
||||
$ErrorActionPreference='Stop'
|
||||
foreach($file in @('enumerate-inputs.ps1','capture.ps1','run.ps1','binary-inputs.ps1','finalize.ps1','verify-parser.ps1','validate-scripts.ps1','diagnostic.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)
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#Requires -Version 7.0
|
||||
param([ValidateSet('parser-verification.json','parser-preparation-verification.json','parser-preparation-verification-timing.json')][string]$OutputName='parser-verification.json')
|
||||
Set-StrictMode -Version Latest
|
||||
$ErrorActionPreference='Stop'
|
||||
if(Test-Path -LiteralPath (Join-Path $PSScriptRoot $OutputName)){throw 'Preserve prior parser evidence; choose a fresh gate or preparation output.'}
|
||||
$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;runnerSha256=(Get-FileHash -LiteralPath (Join-Path $PSScriptRoot 'run.ps1') -Algorithm SHA256).Hash.ToLowerInvariant();cases=$results}|ConvertTo-Json -Depth 6|Set-Content -LiteralPath (Join-Path $PSScriptRoot $OutputName) -Encoding utf8
|
||||
Write-Output ('Verified '+$results.Count+' parser cases')
|
||||
Reference in New Issue
Block a user