Record passing measured label and corridor experiments

This commit is contained in:
2026-09-12 18:42:10 -07:00
parent 903d85dda4
commit 6a8650669f
24 changed files with 558 additions and 0 deletions
@@ -0,0 +1,3 @@
*.log -text -whitespace
*.json -text whitespace=cr-at-eol
*.ps1 -text whitespace=cr-at-eol
@@ -0,0 +1,27 @@
# Measured label and corridor evaluator: Windows results
Tested source: 903d85dda403b93731c05a08b97fa7d257d012dd. The portable standalone.rs in ../scenario-label-measurement-20260913 imports the actual label, label-test and corridor source files; it does not wire the desktop renderer. All five captured source/lock/wrapper inputs remained byte-for-byte unchanged. Raw bindings are in artifacts.json; binary.json identifies the executed test artifact.
## Actual result
The isolated Rust test executable compiled with warnings denied, then listed exactly18 tests. Normal execution passed17 with0 failures and1 intentionally ignored global-font mutation (2.72 seconds). A separate fresh process selected and passed that exact ignored test:1 passed,0 failed,0 ignored,17 filtered (0.57 seconds). In total all18 selected evaluators passed. No executable or source changed between runs.
The real-font test independently admitted known embedded Iced-Icons font bytes, then loaded owned valid bytes into the actual global FontSystem. Face count changed167→168 and Version changed0→1. Every retained-label consumer and old-session resolve rejected the stale font epoch without remeasurement. This tests version/lifetime rejection, not a different chosen font's visual metrics, dynamic WGPU cache recovery or concurrent font loading.
The other tests cover complete realistic message names and distinguishing suffixes at sufficient width, Unicode grapheme/source-range mapping, paragraph metric agreement at three zooms, narrow/empty labels, resident cache/session invalidation, finite scaled/world positions and dimensions, and six connected-corridor cases. Corridor evaluation takes explicit final geometry; passing synthetic self/reversed bands does not mean production self/reversed placement has been implemented.
## Compiler and reproduction boundary
compile-receipt.json records the exact rustc1.98.1 invocation, x86_64-pc-windows-gnullvm host, selected pinned Iced0.14/unicode rlibs, native import-library search path, start/end and exit0. compile.ps1 contains the invoked command. The successful compiler emitted no output, so no successful compile.log was created. available-dependencies.json binds both locally available Iced variants (only iced-ee73abd722c72024 was selected), the used Unicode dependency and the locked Windows native import library. This is a direct rustc evaluator using existing dependency artifacts, not a Cargo workspace gate or a reproducible-from-source rebuild of those third-party dependencies.
To reproduce on a prepared matching Windows checkout, build its locked dependencies, resolve the matching Iced/unicode rlibs and windows_x86_64_gnullvm0.52.6 native lib directory, then use the recorded rustc --test invocation against the versioned standalone.rs, substituting those local paths. List the resulting executable and require exactly18 tests before running it. Run ordinary tests normally, then use ../scenario-label-measurement-20260913/run-font-version-test.ps1 with the exact executable SHA256 and standalone test name in a fresh evidence directory. Supply the matching compiler runtime DLL environment. The real-font test must run alone in its own process.
## Preserved failed attempts
Attempt1 used source9b56a337f8db2c3f63e33e06468cb8de2b93fbf1 and failed module resolution under the standalone path import. Source903d85d adds an explicit test-module path; this is the only source correction after9b. Attempt2 reached the linker on903d85d but lacked the Windows native import-library search path. Attempt3 added that actual locked gnullvm library path and succeeded without another source change. Both failures' raw commands, receipts, inputs and logs are retained; they are not successful tests. Original unformatted/review attempts are preserved in the linked preparation directory.
## Remaining integration work
The source remains unwired. Choose structural scene/corridor bounds first, then camera zoom, then resolve labels at that zoom and settled-font session. Paint, backplate, hit and operation-field navigation must consume the same result. Navigation needs an explicit destination zoom preserved through lookup, Choose and deferred centering; its current independent scale1 lookup cannot establish destination visibility. Subtract padded activation/card/header blockers over the entire label band before choosing one connected interval. Do not repeatedly feed measured label bounds back into Fit, or rely on paint order to prevent foreground text crossing a bar.
Actual Scene/lifecycle alignment, destination-camera consistency, readable self/reversed arrows, glyph ink/overhang, WGPU painting, native hit/navigation workflows, persistence and drag behavior remain unverified. This successful isolated evaluator is not #20 or full OA/SA acceptance. Linux remains user-deferred. Live coordination is in Gitea issues20,7 and27.
@@ -0,0 +1,128 @@
[
{
"path": "attempt1/compile.log",
"bytes": 974,
"sha256": "21a2407b76ee10009c3e16fe9e3277e0943d5442560c57538ee0e8b351fe4a53",
"gitBlob": "8e3361b7a4839e0a5548437e983143818a3342a5"
},
{
"path": "attempt1/compile-receipt.json",
"bytes": 1286,
"sha256": "72ad2111043ba6a56a06d9f5b65c0cc54cce38bc403ad43e4068098ad467fb5d",
"gitBlob": "6e21a36d4db62d8577955fd5527ad19828fbb219"
},
{
"path": "attempt1/compile.ps1",
"bytes": 1503,
"sha256": "6d71ae98792110570a7b8873381d1e855c763a88d96d6862c83217fca54ee106",
"gitBlob": "39f5bc4d50d9e2f43630902a7ac7d7cb69c006e4"
},
{
"path": "attempt1/inputs-before.json",
"bytes": 1092,
"sha256": "3b5132b9b436de358330de8cbbfbabeb3e7ed0eba809e743d8a0847d7d256164",
"gitBlob": "c21d99496226076c44b7a169346ff7eba3a2f72b"
},
{
"path": "attempt2/compile.log",
"bytes": 6136,
"sha256": "35d23a128c26f732d9ce95f277e8ffc0b89c5ff58aa8284f31f2124dd698ae31",
"gitBlob": "3638e1efb81c962d5296b1aaa4074ca3bb6e67bf"
},
{
"path": "attempt2/compile-receipt.json",
"bytes": 1295,
"sha256": "8de38e858df371f91b031e97251d89c58d16c448bff53735073dbf85a99a9b40",
"gitBlob": "c8a3aa1c87e4e870492ebfd4fc3cde514899ff51"
},
{
"path": "attempt2/compile.ps1",
"bytes": 1503,
"sha256": "d30fd870182f18f85333b6d0e82c7014d6853d640affd5227155efbee736c75f",
"gitBlob": "02a286298ea09560968a626ef31e6ac9df81efaa"
},
{
"path": "attempt2/inputs-before.json",
"bytes": 1092,
"sha256": "a1a02602713813cdc09b1c865a1d32c019c27f1e10c4cafdfc9aac827cb79f51",
"gitBlob": "4afbdce92fca7147eb3cc8a2e7507fd379a75948"
},
{
"path": "available-dependencies.json",
"bytes": 781,
"sha256": "850d702e21094f189d827bc4ca825b80ef46ba1a29a189c6d00ed3a9a90f56fc",
"gitBlob": "5b74307f371ec165827339dde6a20859e09beca8"
},
{
"path": "binary.json",
"bytes": 133,
"sha256": "a7a655168a84c3fb01482c79779c3eb786caea4dd678a9def74ba72d06d25ba9",
"gitBlob": "437ff4fb0ba968e51c7288fcd26c8dcf154fdfb4"
},
{
"path": "compile-receipt.json",
"bytes": 1467,
"sha256": "bc9f8aa6760520f78ba4305e10e4561a01100b858824f3700e74976379201009",
"gitBlob": "57fad30abf1f7807f8860897f830ce2d9cbbf32d"
},
{
"path": "compile.ps1",
"bytes": 1665,
"sha256": "3bc1e312351350fef1510b53d460cf37943d952310482cff30cce7ab536fc626",
"gitBlob": "b28998982084b35043c0ccf0960fd20ace7d096b"
},
{
"path": "inputs-before.json",
"bytes": 1092,
"sha256": "a1a02602713813cdc09b1c865a1d32c019c27f1e10c4cafdfc9aac827cb79f51",
"gitBlob": "4afbdce92fca7147eb3cc8a2e7507fd379a75948"
},
{
"path": "inputs-after.json",
"bytes": 1113,
"sha256": "b078a8d98665fac4bdd57856a450d4dd8e66261568b27b8d57ffcbf831204eb2",
"gitBlob": "838608e11b0a4db54b98c62c38c5d85c3b38181e"
},
{
"path": "list.log",
"bytes": 1770,
"sha256": "acd0f1eadde1187e6949aa4dbb57732cc9b872f0d586223e9c6e179a63d05a77",
"gitBlob": "df9986911a54d13754fb8171933f121a91ae26ca"
},
{
"path": "run-tests.ps1",
"bytes": 2006,
"sha256": "56923306bb50d88cef5d67638645d6a13c2ce5e09efbb3b17b28f157feddbd3a",
"gitBlob": "b6eb23cf3de8baeeb16c6e254213ae74c7788381"
},
{
"path": "tests-receipt.json",
"bytes": 430,
"sha256": "ae4d0104cc2dc5a06f1cffe9f46a6c6d00ab68a5c27dbd92d460c81ad0f98fde",
"gitBlob": "0f9a924d8184697e37fc15a0c684f991cdbf7952"
},
{
"path": "tests.log",
"bytes": 2056,
"sha256": "5865a550531a989302ad4453c66c462672f293e47f8c88b37eef7764d567c38b",
"gitBlob": "759df3ccb33855be97acf7121d0448c408783c0d"
},
{
"path": "font-version/selection.log",
"bytes": 112,
"sha256": "06c79ed30f9df147d325ca7b8da78cfd949e7f595d1ec18e158ca59d2f92a0c1",
"gitBlob": "dc985bd84a4e860ae2a717099ba05b3020151c0f"
},
{
"path": "font-version/test.log",
"bytes": 320,
"sha256": "27a2d0e71a732900d265d0224973c49a6b6d41481743cc2cd795dc14f6e4097d",
"gitBlob": "4606db46f2370c94f48c9e99d25c263466374147"
},
{
"path": "font-version/receipt.json",
"bytes": 601,
"sha256": "43001d79dcb326fef76c4f84d9a8c00772c5b700860d316be9c91a99d88b94f1",
"gitBlob": "f8b2676ca8ff91624f1c4378ff2bfaf2c4dcc7ec"
}
]
@@ -0,0 +1,29 @@
{
"source": "9b56a337f8db2c3f63e33e06468cb8de2b93fbf1",
"command": "rustc",
"arguments": [
"--edition=2024",
"--test",
"--crate-name",
"scenario_label_probe",
"-C",
"debuginfo=0",
"-C",
"linker=clang.exe",
"-D",
"warnings",
"--extern",
"iced=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps/libiced-ee73abd722c72024.rlib",
"--extern",
"unicode_segmentation=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps/libunicode_segmentation-85698043f7780858.rlib",
"-L",
"dependency=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps",
"-o",
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\scenario-label-gates-20260913\\label_tests.exe",
"C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913/harness/experiments/scenario-label-measurement-20260913/standalone.rs"
],
"compiler": "rustc 1.98.1 (48a229cea 2026-09-01)\r\nbinary: rustc\r\ncommit-hash: 48a229ceaefd4985c50990b14116b6d856af0985\r\ncommit-date: 2026-09-01\r\nhost: x86_64-pc-windows-gnullvm\r\nrelease: 1.98.1\r\nLLVM version: 22.1.8\r\n",
"startUtc": "2026-09-13T01:36:30.2307437Z",
"endUtc": "2026-09-13T01:36:33.5180878Z",
"exitCode": 1
}
@@ -0,0 +1,12 @@
error[E0583]: file not found for module `tests`
--> C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913/harness/experiments/scenario-label-measurement-20260913\..\..\..\crates\oa-desktop\src\behavior\scenario_label.rs:429:1
|
429 | mod tests;
| ^^^^^^^^^^
|
= help: to create the module `tests`, create file "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913/harness/experiments/scenario-label-measurement-20260913\..\..\..\crates\oa-desktop\src\behavior\tests.rs" or "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913/harness/experiments/scenario-label-measurement-20260913\..\..\..\crates\oa-desktop\src\behavior\tests\mod.rs"
= note: if there is a `mod tests` elsewhere in the crate already, import it with `use crate::...` instead
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0583`.
@@ -0,0 +1,12 @@
$ErrorActionPreference = 'Stop'
. 'C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/env.ps1'
$taskArgs = @('--edition=2024', '--test', '--crate-name', 'scenario_label_probe', '-C', 'debuginfo=0', '-C', 'linker=clang.exe', '-D', 'warnings', '--extern', 'iced=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps/libiced-ee73abd722c72024.rlib', '--extern', 'unicode_segmentation=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps/libunicode_segmentation-85698043f7780858.rlib', '-L', 'dependency=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps', '-o', (Join-Path $PSScriptRoot 'label_tests.exe'), 'C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913/harness/experiments/scenario-label-measurement-20260913/standalone.rs')
$taskLog=Join-Path $PSScriptRoot 'compile.log'
$taskReceipt=Join-Path $PSScriptRoot 'compile-receipt.json'
if ((Test-Path -LiteralPath $taskLog) -or (Test-Path -LiteralPath $taskReceipt)) { throw 'Refusing to replace compile evidence' }
$taskStart=[DateTime]::UtcNow.ToString('o')
$taskVersion=(& rustc --version --verbose | Out-String)
& rustc @taskArgs 2>&1 | Tee-Object -FilePath $taskLog
$taskExit=$LASTEXITCODE
[ordered]@{source='9b56a337f8db2c3f63e33e06468cb8de2b93fbf1';command='rustc';arguments=$taskArgs;compiler=$taskVersion;startUtc=$taskStart;endUtc=[DateTime]::UtcNow.ToString('o');exitCode=$taskExit} | ConvertTo-Json -Depth 4 | Set-Content -LiteralPath $taskReceipt -Encoding utf8
exit $taskExit
@@ -0,0 +1,31 @@
{
"source": "9b56a337f8db2c3f63e33e06468cb8de2b93fbf1",
"workspace": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913",
"files": [
{
"path": "Cargo.lock",
"bytes": 119478,
"sha256": "78b405543fb7b66287457e9476ca1e555838fcdadade114aeab9b76597726787"
},
{
"path": "crates/oa-desktop/src/behavior/scenario_label.rs",
"bytes": 15102,
"sha256": "0c1e5b934a5ea10a862be8bb7e035da7c1463f32abd3dc2e5c029dac4801a8d1"
},
{
"path": "crates/oa-desktop/src/behavior/scenario_label/tests.rs",
"bytes": 17960,
"sha256": "cdd5510ff45645a9f82272d8868d1862111ebcd054577242e06103443658165b"
},
{
"path": "crates/oa-desktop/src/behavior/scenario_label/corridor.rs",
"bytes": 7056,
"sha256": "d369805099b7f6182b77ad8467f843a31d21502700bd6ce50b548dd22a022fe5"
},
{
"path": "harness/experiments/scenario-label-measurement-20260913/standalone.rs",
"bytes": 263,
"sha256": "8a52f01004e6749308a55c9f183fbaf66ef2d4ece2bd7a1bb97d39abf5fee797"
}
]
}
@@ -0,0 +1,29 @@
{
"source": "903d85dda403b93731c05a08b97fa7d257d012dd",
"command": "rustc",
"arguments": [
"--edition=2024",
"--test",
"--crate-name",
"scenario_label_probe",
"-C",
"debuginfo=0",
"-C",
"linker=clang.exe",
"-D",
"warnings",
"--extern",
"iced=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps/libiced-ee73abd722c72024.rlib",
"--extern",
"unicode_segmentation=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps/libunicode_segmentation-85698043f7780858.rlib",
"-L",
"dependency=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps",
"-o",
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\scenario-label-gates-attempt2-20260913\\label_tests.exe",
"C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913/harness/experiments/scenario-label-measurement-20260913/standalone.rs"
],
"compiler": "rustc 1.98.1 (48a229cea 2026-09-01)\r\nbinary: rustc\r\ncommit-hash: 48a229ceaefd4985c50990b14116b6d856af0985\r\ncommit-date: 2026-09-01\r\nhost: x86_64-pc-windows-gnullvm\r\nrelease: 1.98.1\r\nLLVM version: 22.1.8\r\n",
"startUtc": "2026-09-13T01:37:15.9984031Z",
"endUtc": "2026-09-13T01:37:24.2982227Z",
"exitCode": 1
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,12 @@
$ErrorActionPreference = 'Stop'
. 'C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/env.ps1'
$taskArgs = @('--edition=2024', '--test', '--crate-name', 'scenario_label_probe', '-C', 'debuginfo=0', '-C', 'linker=clang.exe', '-D', 'warnings', '--extern', 'iced=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps/libiced-ee73abd722c72024.rlib', '--extern', 'unicode_segmentation=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps/libunicode_segmentation-85698043f7780858.rlib', '-L', 'dependency=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps', '-o', (Join-Path $PSScriptRoot 'label_tests.exe'), 'C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913/harness/experiments/scenario-label-measurement-20260913/standalone.rs')
$taskLog=Join-Path $PSScriptRoot 'compile.log'
$taskReceipt=Join-Path $PSScriptRoot 'compile-receipt.json'
if ((Test-Path -LiteralPath $taskLog) -or (Test-Path -LiteralPath $taskReceipt)) { throw 'Refusing to replace compile evidence' }
$taskStart=[DateTime]::UtcNow.ToString('o')
$taskVersion=(& rustc --version --verbose | Out-String)
& rustc @taskArgs 2>&1 | Tee-Object -FilePath $taskLog
$taskExit=$LASTEXITCODE
[ordered]@{source='903d85dda403b93731c05a08b97fa7d257d012dd';command='rustc';arguments=$taskArgs;compiler=$taskVersion;startUtc=$taskStart;endUtc=[DateTime]::UtcNow.ToString('o');exitCode=$taskExit} | ConvertTo-Json -Depth 4 | Set-Content -LiteralPath $taskReceipt -Encoding utf8
exit $taskExit
@@ -0,0 +1,31 @@
{
"source": "903d85dda403b93731c05a08b97fa7d257d012dd",
"workspace": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913",
"files": [
{
"path": "Cargo.lock",
"bytes": 119478,
"sha256": "78b405543fb7b66287457e9476ca1e555838fcdadade114aeab9b76597726787"
},
{
"path": "crates/oa-desktop/src/behavior/scenario_label.rs",
"bytes": 15138,
"sha256": "621f7e50372d0162f0643219a41f5e374fc9cf28a3a42aee6b8728e5271ec6c4"
},
{
"path": "crates/oa-desktop/src/behavior/scenario_label/tests.rs",
"bytes": 17960,
"sha256": "cdd5510ff45645a9f82272d8868d1862111ebcd054577242e06103443658165b"
},
{
"path": "crates/oa-desktop/src/behavior/scenario_label/corridor.rs",
"bytes": 7056,
"sha256": "d369805099b7f6182b77ad8467f843a31d21502700bd6ce50b548dd22a022fe5"
},
{
"path": "harness/experiments/scenario-label-measurement-20260913/standalone.rs",
"bytes": 263,
"sha256": "8a52f01004e6749308a55c9f183fbaf66ef2d4ece2bd7a1bb97d39abf5fee797"
}
]
}
@@ -0,0 +1,22 @@
[
{
"name": "libiced-ee73abd722c72024.rlib",
"bytes": 408214,
"sha256": "d6afba083a249722c44ac10c3cab8f2f7a2665faecbebfbad9706d51df571cf7"
},
{
"name": "libiced-a4e48b220c5d9711.rlib",
"bytes": 408162,
"sha256": "19db042a126948a970b8494281243d7044df10d857b14ca89a4d876b69f1ce9c"
},
{
"name": "libunicode_segmentation-85698043f7780858.rlib",
"bytes": 1341698,
"sha256": "5b360e6eb17c58b9c1b00ed8b101ac2f2958d328789b5f45087c2352de2d41a5"
},
{
"path": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_gnullvm-0.52.6/lib/libwindows.0.52.0.a",
"bytes": 3878066,
"sha256": "7d7617eae9e20e8026c39861f3c59906772bc8370996b9de45d12f53e4c78465"
}
]
@@ -0,0 +1,5 @@
{
"path": "label_tests.exe",
"bytes": 13569536,
"sha256": "83f33bb63f4b70cbf4c20b39556a3b8e34ef48132928c09a97cebce1a0789e4f"
}
@@ -0,0 +1,31 @@
{
"source": "903d85dda403b93731c05a08b97fa7d257d012dd",
"command": "rustc",
"arguments": [
"--edition=2024",
"--test",
"--crate-name",
"scenario_label_probe",
"-C",
"debuginfo=0",
"-C",
"linker=clang.exe",
"-D",
"warnings",
"--extern",
"iced=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps/libiced-ee73abd722c72024.rlib",
"--extern",
"unicode_segmentation=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps/libunicode_segmentation-85698043f7780858.rlib",
"-L",
"dependency=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps",
"-L",
"native=C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_gnullvm-0.52.6/lib",
"-o",
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\scenario-label-gates-attempt3-20260913\\label_tests.exe",
"C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913/harness/experiments/scenario-label-measurement-20260913/standalone.rs"
],
"compiler": "rustc 1.98.1 (48a229cea 2026-09-01)\r\nbinary: rustc\r\ncommit-hash: 48a229ceaefd4985c50990b14116b6d856af0985\r\ncommit-date: 2026-09-01\r\nhost: x86_64-pc-windows-gnullvm\r\nrelease: 1.98.1\r\nLLVM version: 22.1.8\r\n",
"startUtc": "2026-09-13T01:38:34.6483724Z",
"endUtc": "2026-09-13T01:38:47.2474651Z",
"exitCode": 0
}
@@ -0,0 +1,12 @@
$ErrorActionPreference = 'Stop'
. 'C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/env.ps1'
$taskArgs = @('--edition=2024', '--test', '--crate-name', 'scenario_label_probe', '-C', 'debuginfo=0', '-C', 'linker=clang.exe', '-D', 'warnings', '--extern', 'iced=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps/libiced-ee73abd722c72024.rlib', '--extern', 'unicode_segmentation=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps/libunicode_segmentation-85698043f7780858.rlib', '-L', 'dependency=C:/Users/User/Documents/Git/ARCADIA-Studio/target/debug/deps', '-L', 'native=C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/windows_x86_64_gnullvm-0.52.6/lib', '-o', (Join-Path $PSScriptRoot 'label_tests.exe'), 'C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913/harness/experiments/scenario-label-measurement-20260913/standalone.rs')
$taskLog=Join-Path $PSScriptRoot 'compile.log'
$taskReceipt=Join-Path $PSScriptRoot 'compile-receipt.json'
if ((Test-Path -LiteralPath $taskLog) -or (Test-Path -LiteralPath $taskReceipt)) { throw 'Refusing to replace compile evidence' }
$taskStart=[DateTime]::UtcNow.ToString('o')
$taskVersion=(& rustc --version --verbose | Out-String)
& rustc @taskArgs 2>&1 | Tee-Object -FilePath $taskLog
$taskExit=$LASTEXITCODE
[ordered]@{source='903d85dda403b93731c05a08b97fa7d257d012dd';command='rustc';arguments=$taskArgs;compiler=$taskVersion;startUtc=$taskStart;endUtc=[DateTime]::UtcNow.ToString('o');exitCode=$taskExit} | ConvertTo-Json -Depth 4 | Set-Content -LiteralPath $taskReceipt -Encoding utf8
exit $taskExit
@@ -0,0 +1,11 @@
{
"executable": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\scenario-label-gates-attempt3-20260913\\label_tests.exe",
"passedExactlyOne": true,
"sha256": "83F33BB63F4B70CBF4C20B39556A3B8E34EF48132928C09A97CEBCE1A0789E4F",
"exitCode": 0,
"exactSelection": true,
"startedUtc": "2026-09-13T01:39:39.8167547Z",
"scope": "Actual global font Version invalidation and artifact rejection; no WGPU dynamic cache recovery claim",
"finishedUtc": "2026-09-13T01:39:44.2165018Z",
"test": "scenario_label::tests::actual_font_load_rejects_retained_label_and_old_session"
}
@@ -0,0 +1,4 @@
scenario_label::tests::actual_font_load_rejects_retained_label_and_old_session: test
1 test, 0 benchmarks
@@ -0,0 +1,8 @@
running 1 test
test scenario_label::tests::actual_font_load_rejects_retained_label_and_old_session ... Valid Iced-Icons load: faces 167->168, font Version Version(0)->Version(1); old label and session rejected
ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 17 filtered out; finished in 0.57s
@@ -0,0 +1,32 @@
{
"source": "903d85dda403b93731c05a08b97fa7d257d012dd",
"workspace": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913",
"files": [
{
"path": "Cargo.lock",
"bytes": 119478,
"sha256": "78b405543fb7b66287457e9476ca1e555838fcdadade114aeab9b76597726787"
},
{
"path": "crates/oa-desktop/src/behavior/scenario_label.rs",
"bytes": 15138,
"sha256": "621f7e50372d0162f0643219a41f5e374fc9cf28a3a42aee6b8728e5271ec6c4"
},
{
"path": "crates/oa-desktop/src/behavior/scenario_label/tests.rs",
"bytes": 17960,
"sha256": "cdd5510ff45645a9f82272d8868d1862111ebcd054577242e06103443658165b"
},
{
"path": "crates/oa-desktop/src/behavior/scenario_label/corridor.rs",
"bytes": 7056,
"sha256": "d369805099b7f6182b77ad8467f843a31d21502700bd6ce50b548dd22a022fe5"
},
{
"path": "harness/experiments/scenario-label-measurement-20260913/standalone.rs",
"bytes": 263,
"sha256": "8a52f01004e6749308a55c9f183fbaf66ef2d4ece2bd7a1bb97d39abf5fee797"
}
],
"unchanged": true
}
@@ -0,0 +1,31 @@
{
"source": "903d85dda403b93731c05a08b97fa7d257d012dd",
"workspace": "C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913",
"files": [
{
"path": "Cargo.lock",
"bytes": 119478,
"sha256": "78b405543fb7b66287457e9476ca1e555838fcdadade114aeab9b76597726787"
},
{
"path": "crates/oa-desktop/src/behavior/scenario_label.rs",
"bytes": 15138,
"sha256": "621f7e50372d0162f0643219a41f5e374fc9cf28a3a42aee6b8728e5271ec6c4"
},
{
"path": "crates/oa-desktop/src/behavior/scenario_label/tests.rs",
"bytes": 17960,
"sha256": "cdd5510ff45645a9f82272d8868d1862111ebcd054577242e06103443658165b"
},
{
"path": "crates/oa-desktop/src/behavior/scenario_label/corridor.rs",
"bytes": 7056,
"sha256": "d369805099b7f6182b77ad8467f843a31d21502700bd6ce50b548dd22a022fe5"
},
{
"path": "harness/experiments/scenario-label-measurement-20260913/standalone.rs",
"bytes": 263,
"sha256": "8a52f01004e6749308a55c9f183fbaf66ef2d4ece2bd7a1bb97d39abf5fee797"
}
]
}
@@ -0,0 +1,20 @@
scenario_label::tests::actual_font_load_rejects_retained_label_and_old_session: test
scenario_label::tests::adequate_corridor_reveals_full_realistic_names_and_distinguishing_suffixes: test
scenario_label::tests::bounds_translation_rejects_nonfinite_world_positions_and_endpoints: test
scenario_label::tests::empty_and_too_narrow_labels_never_claim_source_visibility: test
scenario_label::tests::finite_scaled_metrics_cannot_escape_as_infinite_world_dimensions: test
scenario_label::tests::grapheme_prefixes_and_zoom_match_actual_paragraph_layout: test
scenario_label::tests::malformed_metrics_and_explicit_experiment_budgets_fail_without_a_cached_candidate: test
scenario_label::tests::normalized_visible_prefix_maps_to_original_bytes_without_claiming_hidden_operation: test
scenario_label::tests::redraws_reuse_resolution_but_width_zoom_and_style_are_dependencies: test
scenario_label::tests::resident_entry_is_remeasured_for_a_fresh_settled_render_session: test
scenario_label::tests::resident_entry_remeasures_after_local_font_epoch_invalidation: test
scenario_label::tests::retained_artifact_rejects_other_zoom_and_render_session_for_every_consumer: test
scenario_label_corridor::tests::caller_defined_self_and_reversed_corridors_keep_their_geometry: test
scenario_label_corridor::tests::complete_padded_band_and_touching_boundaries_are_obstructed: test
scenario_label_corridor::tests::invalid_or_overflowing_geometry_never_enters_a_corridor: test
scenario_label_corridor::tests::long_message_does_not_cross_an_intermediate_execution: test
scenario_label_corridor::tests::overlapping_unsorted_blockers_merge_and_widest_gap_wins: test
scenario_label_corridor::tests::ties_keep_the_nearest_anchor_then_choose_leftmost: test
18 tests, 0 benchmarks
@@ -0,0 +1,21 @@
$ErrorActionPreference='Stop'
. 'C:/Users/User/Documents/Git/ARCADIA-Studio/.local/toolchain/env.ps1'
$taskExe=Join-Path $PSScriptRoot 'label_tests.exe'
$taskHash=(Get-FileHash -LiteralPath $taskExe -Algorithm SHA256).Hash.ToLowerInvariant()
$taskListLog=Join-Path $PSScriptRoot 'list.log'
$taskTestsLog=Join-Path $PSScriptRoot 'tests.log'
if ((Test-Path -LiteralPath $taskListLog) -or (Test-Path -LiteralPath $taskTestsLog)) { throw 'Refusing to overwrite runtime evidence' }
& $taskExe --list 2>&1 | Tee-Object -FilePath $taskListLog
$taskListExit=$LASTEXITCODE
$taskListed=Get-Content -Raw -LiteralPath $taskListLog
$taskCount=[regex]::Matches($taskListed,'(?m)^[^\r\n]+: test\r?$').Count
if ($taskListExit -ne 0 -or $taskCount -ne 18) { throw 'The standalone listing must contain exactly18 tests' }
$taskStart=[DateTime]::UtcNow.ToString('o')
& $taskExe --nocapture 2>&1 | Tee-Object -FilePath $taskTestsLog
$taskExit=$LASTEXITCODE
$taskOutput=Get-Content -Raw -LiteralPath $taskTestsLog
$taskPassed=$taskExit -eq 0 -and $taskOutput -match 'test result: ok\. 17 passed; 0 failed; 1 ignored;'
[ordered]@{source='903d85dda403b93731c05a08b97fa7d257d012dd';executable=$taskExe;sha256=$taskHash;listed=$taskCount;startUtc=$taskStart;endUtc=[DateTime]::UtcNow.ToString('o');exitCode=$taskExit;expectedResult=$taskPassed} | ConvertTo-Json | Set-Content -LiteralPath (Join-Path $PSScriptRoot 'tests-receipt.json') -Encoding utf8
if (-not $taskPassed) { throw 'Standalone normal test gate failed' }
& 'C:/Users/User/Documents/Git/ARCADIA-Studio/.local/scenario-layout-ytr83r-20260913/harness/experiments/scenario-label-measurement-20260913/run-font-version-test.ps1' -TestExecutable $taskExe -ExpectedSha256 $taskHash -RunDirectory (Join-Path $PSScriptRoot 'font-version') -TestName 'scenario_label::tests::actual_font_load_rejects_retained_label_and_old_session'
if ((Get-FileHash -LiteralPath $taskExe -Algorithm SHA256).Hash.ToLowerInvariant() -ne $taskHash) { throw 'Test binary changed during execution' }
@@ -0,0 +1,10 @@
{
"source": "903d85dda403b93731c05a08b97fa7d257d012dd",
"executable": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\scenario-label-gates-attempt3-20260913\\label_tests.exe",
"sha256": "83f33bb63f4b70cbf4c20b39556a3b8e34ef48132928c09a97cebce1a0789e4f",
"listed": 18,
"startUtc": "2026-09-13T01:39:31.0340269Z",
"endUtc": "2026-09-13T01:39:35.4311753Z",
"exitCode": 0,
"expectedResult": true
}
@@ -0,0 +1,23 @@
running 18 tests
test scenario_label::tests::actual_font_load_rejects_retained_label_and_old_session ... ignored, mutates the global font database; run only this exact test in a fresh process
test scenario_label::tests::bounds_translation_rejects_nonfinite_world_positions_and_endpoints ... ok
test scenario_label::tests::adequate_corridor_reveals_full_realistic_names_and_distinguishing_suffixes ... ok
test scenario_label::tests::empty_and_too_narrow_labels_never_claim_source_visibility ... ok
test scenario_label::tests::finite_scaled_metrics_cannot_escape_as_infinite_world_dimensions ... ok
test scenario_label::tests::malformed_metrics_and_explicit_experiment_budgets_fail_without_a_cached_candidate ... ok
test scenario_label::tests::grapheme_prefixes_and_zoom_match_actual_paragraph_layout ... ok
test scenario_label::tests::normalized_visible_prefix_maps_to_original_bytes_without_claiming_hidden_operation ... ok
test scenario_label::tests::redraws_reuse_resolution_but_width_zoom_and_style_are_dependencies ... ok
test scenario_label::tests::resident_entry_is_remeasured_for_a_fresh_settled_render_session ... ok
test scenario_label::tests::resident_entry_remeasures_after_local_font_epoch_invalidation ... ok
test scenario_label::tests::retained_artifact_rejects_other_zoom_and_render_session_for_every_consumer ... ok
test scenario_label_corridor::tests::caller_defined_self_and_reversed_corridors_keep_their_geometry ... ok
test scenario_label_corridor::tests::complete_padded_band_and_touching_boundaries_are_obstructed ... ok
test scenario_label_corridor::tests::invalid_or_overflowing_geometry_never_enters_a_corridor ... ok
test scenario_label_corridor::tests::long_message_does_not_cross_an_intermediate_execution ... ok
test scenario_label_corridor::tests::overlapping_unsorted_blockers_merge_and_widest_gap_wins ... ok
test scenario_label_corridor::tests::ties_keep_the_nearest_anchor_then_choose_leftmost ... ok
test result: ok. 17 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 2.72s