43 lines
5.9 KiB
Markdown
43 lines
5.9 KiB
Markdown
# Details saved-source comparator: closed build and self-check
|
|
|
|
The strict standalone comparator build exited 0, and its self-check exited 0 with all 13 reported checks passing. Both real source fixtures were admitted; all six approved typed checkpoints were accepted. These results validate the comparator and its falsifiers. No native saved output, desktop source-writing action, runtime state, or Undo history was evaluated in this run.
|
|
|
|
The linked core source is [8bf7607a3f3b53db0c36364f54f57674c64ea2f1](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/src/commit/8bf7607a3f3b53db0c36364f54f57674c64ea2f1). The exact comparator [source](original/main.rs), [builder](original/build.ps1), [checker](original/check.ps1), fixtures, and expectations are preserved here. The comparator is external test tooling, not a product change.
|
|
|
|
## What it checks
|
|
|
|
The `name` mode allows only the independently predetermined Name change on one element, compared with an independently captured baseline Project. The planned incident target is `70200000-0000-4000-8000-000000000020`, changing `Initial incident report` to `Initial incident report [Details trial]`. The `typed` mode compares the complete actual saved Project against exact approved JSON checkpoint bytes. Expectations are never derived from the actual saved output.
|
|
|
|
Both source inputs pass through actual `source_files::load_project`, `compile_bundle`, unchanged input/compiled SourceBundle comparison, exactly one reachable file, and core admission. Canonicalization sorts object keys only; arrays and serialized scalar values remain exact, including signed zero. No aliases, sequence order, other saved views, or unrelated fields are excluded.
|
|
|
|
The six expected JSON files and service fixture match the independently published [core checkpoint evidence at 698126e](../scenario-service-details-core-20260913/README.md), bound by [expected-catalog.json](original/expected-catalog.json). This run reused those expectations; it did not manufacture them from future native output.
|
|
|
|
## Actual results and bindings
|
|
|
|
| Observation | Closed result |
|
|
| --- | --- |
|
|
| `rustc --edition=2024 -D warnings` | Exit 0; empty compile log; 1,595 before/after input records identical |
|
|
| Comparator self-check | Exit 0; 13 named checks passed; 636 before/after input records identical; empty stderr |
|
|
| Real fixtures | Incident and service source admitted without migration, identity insertion, or passive SourceBundle change |
|
|
| Typed expectations | Baseline plus checkpoints 1, 3a, 3b, 3c, 3d accepted |
|
|
| Falsifiers | Wrong occurrence, extra alias, semantic array order, extra layout, signed-zero change, invalid Name target/no-op, wrong checkpoint/Project identity, and unknown expected field exercised |
|
|
|
|
The authoritative raw [build receipt](original/build-01/build-receipt.json), [self-check receipt](original/self-check-01/receipt.json), [self-check assertions report](original/self-check-01/project-comparison/self-check.json), logs, captured fixtures and decoded baseline Projects are unchanged. [Verified results](verified-results.json) summarize archival checks.
|
|
|
|
The builder used the successful exact 8bf desktop **LIST** as its dependency reference: [receipt](reference-list/list-receipt.json), SHA-256 `e2d9258afab904c7d0d9f3efbb3c3cc02511a33296c1698b3114b3d6b7a125a1`. That list identifies 1,089 desktop tests and 295 focused names with 611 unchanged source inputs. It is not a claim that the later focused/full desktop gates passed. The exact frozen [native verifier helper](reference-verifier/verify.ps1) is included because the core-only builder imports its read-only source and membership checks; it does not invoke five-gate native staging admission.
|
|
|
|
| Omitted binary | Bytes | SHA-256 |
|
|
| --- | ---: | --- |
|
|
| `details-source-oracle.exe` | 19,775,488 | `deba40e3d224b1326f3f38d5eb7f692ac9bb453876c6f63e1fe2d540cae79183` |
|
|
| Adjacent `libunwind.dll` | 190,464 | `aa282fa47bb2c4e210cea5e470cdbdca58568f0be0bc73e404d86ab9cd95ef6a` |
|
|
|
|
Build receipt SHA-256: `9755e8a94e4075caaaef276e08e92cb1773423785a8c9b3046b39011b1e068ef`. Self-check receipt SHA-256: `2fe1db299c2a2ed7b4edc3fe8655ced603a5da7c9165df81cf71360eca1dc8cc`. The checker bound the actual adjacent runtime DLL and child environment before and after execution.
|
|
|
|
## Preservation and reproduction
|
|
|
|
[Archive manifest](archive-manifest.json) binds 44 copied original files totaling 2,217,831 bytes. Archival verification checked every copied byte, receipt/log/artifact bindings, exact build/run manifest equality, 627 current build-source records, all 636 current run-input records, the executable and DLL. It did not redundantly rehash the entire transitive dependency cache; the closed build's before/after dependency proof is preserved. No compiler, oracle, or desktop was invoked during archival. Raw-evidence Git attributes prevent line-ending normalization.
|
|
|
|
The preserved [original recipe](original/README.md) gives explicit build and `self-check`, `name`, and `typed` commands. Its preparation-only wording predates these closed results. For a new run, restore `original/` as a fresh local comparator recipe directory alongside a checkout of exact 8bf and a reviewed matching desktop LIST/dependency build. Supply the archived verifier explicitly through `-NativeVerifier` or restore its documented sibling path. The scripts intentionally validate workspace layout, compiler/fingerprint edges, exact rlibs, lockfile, source inputs and runtime; archived absolute paths describe this Windows host and are not assumed to exist on a peer machine. Use fresh output directories and newly reviewed executable/receipt hashes. The archive is a source-and-receipt reproduction record, not a bundled compiler/cache or runnable binary package.
|
|
|
|
Native staging still requires its complete desktop/focused/full/strict/build gates. Actual Name and typed saved-output comparisons, Properties interaction, Revert/Apply, source-writing behavior and history remain separate acceptance work. The old spacing oracle remains responsible for lane/message/repair comparisons.
|