Record native counterpart search verification and lifecycle checkpoint

This commit is contained in:
2026-09-13 08:33:03 -07:00
parent fe43730bec
commit d0b7c28501
6 changed files with 791 additions and 0 deletions
@@ -0,0 +1,41 @@
# Transition picker: native comparison evidence
Run `python verify.py` using Python 3.10 or newer. This five-file package supports
read-only verification using the standard library. It does not execute archived
helpers, binaries, Git commands or network calls. Outer text is UTF-8 LF before
hashing; archived files retain exact original bytes.
All three trials, launch helpers, copied release1 inputs and original frames are
preserved. Baseline picker-baseline-1 used the f714a25 GUI and closed with exit 0.
Corrected picker-corrected-1 exited immediately with 3221225781 and empty logs;
the operator attributes this to omitted runtime environment setup. That cause
is not independently proven by empty logs. Corrected picker-corrected-2 used
the d46854c GUI, ran from 15:22:22 to 15:27:13 UTC, and closed with exit 0 and
empty logs. Its frame 02 is a loading state, not proof that loading finished.
The capture-snippet.js source was retained from a previous persistent session.
It was not pinned in these trials' launch receipts. Archiving it now does not
establish the exact capture function executed during the trials. Frame JSON
records timestamps, a window/application path and image references; it is not
an action invocation log or independent PID attestation. No frame is fabricated,
renumbered, cropped or omitted, including auxiliary dialog images.
Both exact GUI build result receipts are included. Full build source evidence
remains external: the sibling transition-lifecycle-20260913 Cargo package at
commit fe43730bec196cc6ebbc06dcf827169f04c120f0 covers the corrected d46854c
build, and the ordinary-text-native-20260913 package at
commit 3f9e6a18af96b5cd10940da4093be8da28b9c835 includes the baseline f714a25
build/source evidence. The manifest pins those related evidence ZIPs. This is
not a self-contained source or runtime distribution; the verifier does not
require those external packages for its local receipt/frame checks.
Verification checks exact safe ZIP membership/hashes, launch helper pins,
start/process/result timing, expected exit outcomes, empty streams, GUI binary
and build receipt relationships, identical copied input membership/bytes across
all trials, and complete frame/image references within process intervals. Binary
hashes are receipt observations; binaries are excluded. Screenshots require
separate interpretation and do not prove action execution, complete model
equality, persistence or full usability. The included independent-review.md is
a parent-consolidated record of separate human-readable review observations.
No credentials or whole user profile are
packaged; raw receipts retain original runtime path strings.
@@ -0,0 +1,18 @@
{
"evidence.zip": {
"bytes": 3412321,
"sha256": "c801eda9e33cd796a3594e73c34d6d29691597552a68307d2dc5a5e113c1e470"
},
"manifest.json": {
"bytes": 26082,
"sha256": "f80092a483a00e17c3ffcdbf2dd71480ed6ead4d003248de2f9ef708104cfba1"
},
"README.md": {
"bytes": 2673,
"sha256": "86251ca15d4950cd0b037ba05b63433877608c1d0d6424fedef8ff4e34340141"
},
"verify.py": {
"bytes": 5143,
"sha256": "23c5040f91f29e243e65ad31b4f8f82f7ad1d692efd862b1bc87450c31e5ed5f"
}
}
@@ -0,0 +1,614 @@
{
"schema": 1,
"runs": {
"picker-baseline-1": {
"helper": "native/run-picker-baseline.py",
"build": "build/baseline-result.json",
"exitCode": 0,
"captures": [
"native/picker-baseline-1/01-start.json",
"native/picker-baseline-1/02-open-pending.json",
"native/picker-baseline-1/03-open-dialog.json",
"native/picker-baseline-1/04-teaching-path.json",
"native/picker-baseline-1/05-teaching-opened.json",
"native/picker-baseline-1/06-teaching-ready.json",
"native/picker-baseline-1/07-source-selected.json",
"native/picker-baseline-1/08-source-actions.json",
"native/picker-baseline-1/09-transition-dialog.json",
"native/picker-baseline-1/10-unfiltered-counterparts.json",
"native/picker-baseline-1/11-incompatible-selection.json",
"native/picker-baseline-1/12-cancel-preserved.json"
]
},
"picker-corrected-1": {
"helper": "native/run-picker-corrected.py",
"build": "build/corrected-result.json",
"exitCode": 3221225781,
"captures": []
},
"picker-corrected-2": {
"helper": "native/run-picker-corrected-2.py",
"build": "build/corrected-result.json",
"exitCode": 0,
"captures": [
"native/picker-corrected-2/01-opened.json",
"native/picker-corrected-2/02-teaching-reopened.json",
"native/picker-corrected-2/03-loaded.json",
"native/picker-corrected-2/04-source-selected.json",
"native/picker-corrected-2/05-actions.json",
"native/picker-corrected-2/06-transition-dialog.json",
"native/picker-corrected-2/07-compatible-menu.json",
"native/picker-corrected-2/08-menu-dismissed.json",
"native/picker-corrected-2/09-search-focus.json",
"native/picker-corrected-2/10-alias-query.json",
"native/picker-corrected-2/11-filtered-menu.json",
"native/picker-corrected-2/12-existing-selection.json",
"native/picker-corrected-2/13-refocus-search.json",
"native/picker-corrected-2/14-query-selected.json",
"native/picker-corrected-2/15-no-results-selection-retained.json",
"native/picker-corrected-2/16-parent-search-focus.json",
"native/picker-corrected-2/17-independent-card-queries.json",
"native/picker-corrected-2/18-field-review.json",
"native/picker-corrected-2/19-keep-target-reviewed.json",
"native/picker-corrected-2/20-reviewed-search-focus.json",
"native/picker-corrected-2/21-reviewed-query-selected.json",
"native/picker-corrected-2/22-cleared-search-review-retained.json",
"native/picker-corrected-2/23-cancel-restores-saved.json"
]
}
},
"members": {
"build/baseline-result.json": {
"bytes": 5532,
"sha256": "5e9e227c66a4b71ade734b8ebeb12070b8a5c64a9a6cf9d8d0b6d70379d4ffc2"
},
"build/corrected-result.json": {
"bytes": 5583,
"sha256": "91b38045319adc1fb9aa0e51d45d79a4be99d2de9aec08a47f73915e3ac9dd79"
},
"native/capture-snippet.js": {
"bytes": 1579,
"sha256": "55279ed080289ccf5ba482cb24b5a807669a9360012e2d87f794d4465227cb2c"
},
"native/independent-review.md": {
"bytes": 1898,
"sha256": "c59d2ff78635f94f3f225c27999b69d24c11977c89026fc8a7331ddbd160c8c6"
},
"native/input/release1/README.md": {
"bytes": 11137,
"sha256": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5"
},
"native/input/release1/evidence/repair-check.md": {
"bytes": 1419,
"sha256": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5"
},
"native/input/release1/expected-diagnostics.json": {
"bytes": 288,
"sha256": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e"
},
"native/input/release1/model.json": {
"bytes": 134520,
"sha256": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727"
},
"native/input/release1/model.rs": {
"bytes": 28762,
"sha256": "15f30f6bde655808fe754665c26d560e36f2a9bad340f346b09137d0d05045f5"
},
"native/input/release1/oa/activities/activity_oa_restore_work.arcadia": {
"bytes": 1130,
"sha256": "21cbd7176af8fad68453306f2371ff03e127a994b8796cdf044567332de9686f"
},
"native/input/release1/oa/behavior/process_oa_assessment_procedure.arcadia": {
"bytes": 550,
"sha256": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a"
},
"native/input/release1/oa/behavior/process_oa_field_procedure.arcadia": {
"bytes": 1178,
"sha256": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96"
},
"native/input/release1/oa/behavior/process_oa_response.arcadia": {
"bytes": 2560,
"sha256": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84"
},
"native/input/release1/oa/behavior/scenario_oa_conversation.arcadia": {
"bytes": 1515,
"sha256": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b"
},
"native/input/release1/oa/behavior/scenario_oa_full_scenario.arcadia": {
"bytes": 1121,
"sha256": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5"
},
"native/input/release1/oa/behavior/state_machine_oa_monitor.arcadia": {
"bytes": 1358,
"sha256": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6"
},
"native/input/release1/oa/capabilities.arcadia": {
"bytes": 630,
"sha256": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a"
},
"native/input/release1/oa/model.arcadia": {
"bytes": 531,
"sha256": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada"
},
"native/input/release1/oa/participants.arcadia": {
"bytes": 1580,
"sha256": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819"
},
"native/input/release1/oa/types.arcadia": {
"bytes": 554,
"sha256": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d"
},
"native/input/release1/project.arcadia": {
"bytes": 1958,
"sha256": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda"
},
"native/input/release1/sa/behavior/process_sa_assessment_procedure.arcadia": {
"bytes": 559,
"sha256": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d"
},
"native/input/release1/sa/behavior/process_sa_field_procedure.arcadia": {
"bytes": 1187,
"sha256": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2"
},
"native/input/release1/sa/behavior/process_sa_response.arcadia": {
"bytes": 2569,
"sha256": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52"
},
"native/input/release1/sa/behavior/scenario_sa_conversation.arcadia": {
"bytes": 1847,
"sha256": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2"
},
"native/input/release1/sa/behavior/scenario_sa_full_scenario.arcadia": {
"bytes": 1116,
"sha256": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda"
},
"native/input/release1/sa/behavior/state_machine_sa_monitor.arcadia": {
"bytes": 1358,
"sha256": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8"
},
"native/input/release1/sa/capabilities.arcadia": {
"bytes": 630,
"sha256": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645"
},
"native/input/release1/sa/functions/function_sa_audit_thresholds.arcadia": {
"bytes": 280,
"sha256": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686"
},
"native/input/release1/sa/functions/function_sa_restore_work.arcadia": {
"bytes": 2251,
"sha256": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c"
},
"native/input/release1/sa/model.arcadia": {
"bytes": 531,
"sha256": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395"
},
"native/input/release1/sa/participants.arcadia": {
"bytes": 3604,
"sha256": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84"
},
"native/input/release1/sa/types.arcadia": {
"bytes": 903,
"sha256": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064"
},
"native/input/release1/traceability.arcadia": {
"bytes": 28041,
"sha256": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116"
},
"native/input/release1/transition-before.json": {
"bytes": 35801,
"sha256": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d"
},
"native/input/release1/transition-request.json": {
"bytes": 4276,
"sha256": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a"
},
"native/input/release1/views/diagram_oa_allocation_view.arcadia": {
"bytes": 1786,
"sha256": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624"
},
"native/input/release1/views/diagram_sa_allocation_view.arcadia": {
"bytes": 1797,
"sha256": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6"
},
"native/input/release1/views/diagram_sa_capability_view.arcadia": {
"bytes": 1286,
"sha256": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2"
},
"native/input/release1/views/diagram_sa_service_view.arcadia": {
"bytes": 1960,
"sha256": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c"
},
"native/input/release1/views/diagram_sa_state_view.arcadia": {
"bytes": 1576,
"sha256": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230"
},
"native/picker-baseline-1/01-start-0.jpg": {
"bytes": 116509,
"sha256": "d5c669575ffa4f8c0fe2027d39ad0b655bf6557a6315a9f27ef4cc81e3e4a9d8"
},
"native/picker-baseline-1/01-start.json": {
"bytes": 920,
"sha256": "f8ac2638390d3dc2a4bf7d64a9c6b8988c59ef377b53d7067fc41c1d30b5f091"
},
"native/picker-baseline-1/02-open-pending-0.jpg": {
"bytes": 115140,
"sha256": "d06c8963b5b752f6248ecead582c317cadfcf699955f7ecd629d6052ef157f70"
},
"native/picker-baseline-1/02-open-pending.json": {
"bytes": 927,
"sha256": "f326b85978dfa21cc2fd2e4454ebfee6a6d856e439de5ab41a8cec7c2998fb23"
},
"native/picker-baseline-1/03-open-dialog-0.jpg": {
"bytes": 674,
"sha256": "5a2387a1a593a32ea169b56b9a3e59333936ee1da95164564e4d9be61bf5a24b"
},
"native/picker-baseline-1/03-open-dialog-1.jpg": {
"bytes": 52573,
"sha256": "23ab19c5286f26ead42aec7e3690fda96cad512518243593f37e26579eb08ef6"
},
"native/picker-baseline-1/03-open-dialog.json": {
"bytes": 4915,
"sha256": "b1d4e6c59104b3d4d36210e855750cc7fc445a8d05e12f3c63cc43196df9df95"
},
"native/picker-baseline-1/04-teaching-path-0.jpg": {
"bytes": 674,
"sha256": "5a2387a1a593a32ea169b56b9a3e59333936ee1da95164564e4d9be61bf5a24b"
},
"native/picker-baseline-1/04-teaching-path-1.jpg": {
"bytes": 55565,
"sha256": "569f70974c0347c3accecb412de468751fc2294ba5f577b572765335a1cbca7c"
},
"native/picker-baseline-1/04-teaching-path.json": {
"bytes": 4919,
"sha256": "e7ef7212f637bff8125fa86892cc0b610a0c29a64c3715baeab12a6b36992620"
},
"native/picker-baseline-1/05-teaching-opened-0.jpg": {
"bytes": 115272,
"sha256": "c74bba329bca67a25c83352467842dadb8d393b17785b87929a4b7f10a8a2ae2"
},
"native/picker-baseline-1/05-teaching-opened.json": {
"bytes": 930,
"sha256": "dacbdbc29a7a61de78eb987069ed8e31f5818cdf6269b34836927109badd87ec"
},
"native/picker-baseline-1/06-teaching-ready-0.jpg": {
"bytes": 148650,
"sha256": "89957f78f5744c35f600b09f55dfbe52fddc4aac1b76ea1e820d1063b15c2833"
},
"native/picker-baseline-1/06-teaching-ready.json": {
"bytes": 1114,
"sha256": "4a708684d4469e4b5612ffe10216ad81d492eaf28730f0e11a4f5c4dcd30c903"
},
"native/picker-baseline-1/07-source-selected-0.jpg": {
"bytes": 146555,
"sha256": "ca53af5035524280f3144309a12c931193115e025bec6fe5b6b1799de3c8c949"
},
"native/picker-baseline-1/07-source-selected.json": {
"bytes": 1115,
"sha256": "4a725e4db48f2f8db7bc41a37ce69d49b2cd01a9b046791fee57b1bb580183a0"
},
"native/picker-baseline-1/08-source-actions-0.jpg": {
"bytes": 153686,
"sha256": "367876958aa58ed08c913d33530ba8da663d247ee3b0b9503625e7d3f945480c"
},
"native/picker-baseline-1/08-source-actions.json": {
"bytes": 1114,
"sha256": "4d244ccced055bdff280bbf99269554173fe85c816d15f9dae03aca40ad64ece"
},
"native/picker-baseline-1/09-transition-dialog-0.jpg": {
"bytes": 147596,
"sha256": "f197b031669070f731e354bca993ffc77ff43966349f4699d69e361287f2a704"
},
"native/picker-baseline-1/09-transition-dialog.json": {
"bytes": 1127,
"sha256": "3de33b54e5b15a598a901103acfa48650170d94724c5f5708b90d8fac6bcf6dd"
},
"native/picker-baseline-1/10-unfiltered-counterparts-0.jpg": {
"bytes": 138703,
"sha256": "a3c8464125657ea37550eb46a269f9a0c0646001ba387a8188b987ba74c6a270"
},
"native/picker-baseline-1/10-unfiltered-counterparts.json": {
"bytes": 1133,
"sha256": "977c0bbc366937ce2242b871b12f350cb56af4661f09c214e4945296195f4c55"
},
"native/picker-baseline-1/11-incompatible-selection-0.jpg": {
"bytes": 144348,
"sha256": "53884020ceb9c0b416386ceaa1e06801614ac132760e58c7c3320c820c251d04"
},
"native/picker-baseline-1/11-incompatible-selection.json": {
"bytes": 1132,
"sha256": "94f6814f61b75dc4ad9f9f14babed492865079c45fa5de17e6fc9c8a4fabc349"
},
"native/picker-baseline-1/12-cancel-preserved-0.jpg": {
"bytes": 145507,
"sha256": "d3db7643267cdc532f630c972d6c53823679326910e482179d447efad6289a61"
},
"native/picker-baseline-1/12-cancel-preserved.json": {
"bytes": 1116,
"sha256": "259769191f79cd381e2c8be3230b0da8912d35ef0ce5c362b2dd4f1189773647"
},
"native/picker-baseline-1/inputs.json": {
"bytes": 5843,
"sha256": "c1e7219e30171f3854c97cfe6b2fa2411d7b3f39c60a12ad41b57ca61a8f4dff"
},
"native/picker-baseline-1/process.json": {
"bytes": 61,
"sha256": "a99574647fda39a1529b9733794064c5214005df5a5ea821f7e0d0e61e4136a9"
},
"native/picker-baseline-1/result.json": {
"bytes": 1247,
"sha256": "a4cfe1faa8edc3ae8a7eaef9bb0714b357ecbaf91ad5a5bc6e787fea7fe013d3"
},
"native/picker-baseline-1/started.json": {
"bytes": 780,
"sha256": "b059824ca0e7b1a528ec8ececbe1b8d37335bcd5a34de921c3c9b6fda448acbe"
},
"native/picker-baseline-1/stderr.log": {
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"native/picker-baseline-1/stdout.log": {
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"native/picker-corrected-1/inputs.json": {
"bytes": 5843,
"sha256": "c1e7219e30171f3854c97cfe6b2fa2411d7b3f39c60a12ad41b57ca61a8f4dff"
},
"native/picker-corrected-1/process.json": {
"bytes": 61,
"sha256": "749d13d70bb8c9d7b9ad35a11e63980562b5e2140a1325454d61c6fd2cc5ef7d"
},
"native/picker-corrected-1/result.json": {
"bytes": 1256,
"sha256": "98d9e77ed93d56f2fb79f21c70ba5dceb012605f491fa6d704bd4f2f3bb2f8ea"
},
"native/picker-corrected-1/started.json": {
"bytes": 780,
"sha256": "9260aaee5e9e733eeb38a334a96881a1ed796149d9ece8438e0682f1990a8404"
},
"native/picker-corrected-1/stderr.log": {
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"native/picker-corrected-1/stdout.log": {
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"native/picker-corrected-2/01-opened-0.jpg": {
"bytes": 118158,
"sha256": "84db89be21fabc31958b4521587ff708619a4a4cbf0ded6fe8b2c58e94a26a68"
},
"native/picker-corrected-2/01-opened.json": {
"bytes": 922,
"sha256": "44cb8a61c47648bdcdfdc278ebfd43e45942eb5211e8f77624b9982186c89c25"
},
"native/picker-corrected-2/02-teaching-reopened-0.jpg": {
"bytes": 117821,
"sha256": "aa6fd6a99c2f808c6b55c734c83b0aa8b2fbd1ce03a14b02f609e5c84275bc66"
},
"native/picker-corrected-2/02-teaching-reopened.json": {
"bytes": 933,
"sha256": "b8a9dd0a0462f9b2703bfd9d88823b9ca00efba304f0f1cd923d637e8a01b6da"
},
"native/picker-corrected-2/03-loaded-0.jpg": {
"bytes": 148546,
"sha256": "dfe2700568a0e2f688c8c197224d75d7c15dfde5f060dfe2aba09631837687ef"
},
"native/picker-corrected-2/03-loaded.json": {
"bytes": 1107,
"sha256": "e8b18a5e75b52649dd87118f70c55be4b0e9c7e2ee00c2a3db730376a6c36aa4"
},
"native/picker-corrected-2/04-source-selected-0.jpg": {
"bytes": 146472,
"sha256": "74baf9f9059b4f0741d500a1f6d84ccb91474ff48de7466a03736e5decc868ca"
},
"native/picker-corrected-2/04-source-selected.json": {
"bytes": 1116,
"sha256": "45f7cfeab95e2ca2ca2ed2cd45bea9a269c1c6a1515dbe9cbcb3087fb2917c55"
},
"native/picker-corrected-2/05-actions-0.jpg": {
"bytes": 153725,
"sha256": "c00b412af778af51cb2a6658bae4f4e11bb024a0770c3ea5aa4a54383be381c4"
},
"native/picker-corrected-2/05-actions.json": {
"bytes": 1108,
"sha256": "1132f230694873a7e9536fd59f06b976e3b52041b119e2e9632b7c66de53d400"
},
"native/picker-corrected-2/06-transition-dialog-0.jpg": {
"bytes": 149653,
"sha256": "a4736781ac296164ddffe12005f9f1ad29d73ddd2bc752d14fb2b63ac2579153"
},
"native/picker-corrected-2/06-transition-dialog.json": {
"bytes": 1126,
"sha256": "2a2b8e8d9ac75a7c354e79bd5ba764c4024b045db009d5feb2b7f3909423f753"
},
"native/picker-corrected-2/07-compatible-menu-0.jpg": {
"bytes": 148938,
"sha256": "80621a49998cc7fc2a643e7338a6867c722b4365fabc713fac0b39f7812703f9"
},
"native/picker-corrected-2/07-compatible-menu.json": {
"bytes": 1126,
"sha256": "0f3c6a3d512e163953b9773de45df81d4129c0ded48a13c4d79de32dd8ab2d9e"
},
"native/picker-corrected-2/08-menu-dismissed-0.jpg": {
"bytes": 149416,
"sha256": "867236aeac2dcf839104692f73cb63fb45d7dcc38d95eaabd5cba8d0a7ff862a"
},
"native/picker-corrected-2/08-menu-dismissed.json": {
"bytes": 1125,
"sha256": "65ce375a1918a848cc57739f90eb15fbd55e9173c2343701791d0cf9740b818e"
},
"native/picker-corrected-2/09-search-focus-0.jpg": {
"bytes": 149668,
"sha256": "4a08a7955982956d518397832a0befdda951347f04da9af75af787fe5a163332"
},
"native/picker-corrected-2/09-search-focus.json": {
"bytes": 1123,
"sha256": "de505bdab419c6c60a3ad260479036d373f915333eb6fc62cd68c57ce2974af9"
},
"native/picker-corrected-2/10-alias-query-0.jpg": {
"bytes": 149373,
"sha256": "dceaa7f1e0e0959aa6e654d0b9f84cbe20badec8d99315e3fd2ebc3cb47f6f5f"
},
"native/picker-corrected-2/10-alias-query.json": {
"bytes": 1122,
"sha256": "c080f52656f6f603065e763cefb4a6ef790f4cfad96a3ddd3b6d58c5053cd62d"
},
"native/picker-corrected-2/11-filtered-menu-0.jpg": {
"bytes": 149367,
"sha256": "6893983b46da3a6f3da1ee3eac90dc50f34dbb257671835d7e893244d18b1b03"
},
"native/picker-corrected-2/11-filtered-menu.json": {
"bytes": 1124,
"sha256": "f8c5c8573840faef1337a7b429645e46652d29340104c2d6b15a9e1fbc14f152"
},
"native/picker-corrected-2/12-existing-selection-0.jpg": {
"bytes": 147991,
"sha256": "839dee6d22448d12d90758ca76f5503fae69a099af0e055e20cf814d7dd498ec"
},
"native/picker-corrected-2/12-existing-selection.json": {
"bytes": 1129,
"sha256": "84bc484447049dbafa1cda1b4c1ce0ade93c7ddcbf1c0489f2b18167deabed00"
},
"native/picker-corrected-2/13-refocus-search-0.jpg": {
"bytes": 148017,
"sha256": "70f5a9d3ea5d2b82b68e19d5682659ba0bba1abaeac0f56aca4a88ffeec74b76"
},
"native/picker-corrected-2/13-refocus-search.json": {
"bytes": 1125,
"sha256": "c2e42830b2d2364699210f716c375f2e63a447f910e729be0aa60c157f8341f6"
},
"native/picker-corrected-2/14-query-selected-0.jpg": {
"bytes": 148447,
"sha256": "e0e5807ed5f0f535110ceecc6c6aabb9d077ea67fa1d83367d2c50141e8cdc53"
},
"native/picker-corrected-2/14-query-selected.json": {
"bytes": 1125,
"sha256": "5d97ec91b3fd752d9f5e896c6fe97abc97ca40a91b6a708209663d4c198cc2e0"
},
"native/picker-corrected-2/15-no-results-selection-retained-0.jpg": {
"bytes": 150165,
"sha256": "25be189c30acb4c8dab03d458b2fc73bd09d0766513d5c9ee4e0e0bffcee2457"
},
"native/picker-corrected-2/15-no-results-selection-retained.json": {
"bytes": 1140,
"sha256": "a4f3c3e357aed8f66cad8b3c89f0e89d9eaf0662e3d740a06ba8eee6e7a33748"
},
"native/picker-corrected-2/16-parent-search-focus-0.jpg": {
"bytes": 149957,
"sha256": "84bdd2c3ed40178a16452a680932d27d42142220f09f79dc747906732aafb97d"
},
"native/picker-corrected-2/16-parent-search-focus.json": {
"bytes": 1130,
"sha256": "c3346906c51cf087a1fa850b46c867491630c2ec9a1565671e5674f2600ee261"
},
"native/picker-corrected-2/17-independent-card-queries-0.jpg": {
"bytes": 149082,
"sha256": "a48e99ca120c7e34ce2823bc0140a99778b88849eb7a6b245867f129a0e46aff"
},
"native/picker-corrected-2/17-independent-card-queries.json": {
"bytes": 1135,
"sha256": "ced4961b7bffb3d5f82757036ac77dab3cffba705bdd0a596183e686b3a59691"
},
"native/picker-corrected-2/18-field-review-0.jpg": {
"bytes": 144509,
"sha256": "734e83058cc66d1af13098b5b69c7e2cbad8daf2a3afd2a25780e65faa38bf71"
},
"native/picker-corrected-2/18-field-review.json": {
"bytes": 1123,
"sha256": "7489d77a9b1d4718f43aa10edca688e42a76a05507198538bd714ac8de638432"
},
"native/picker-corrected-2/19-keep-target-reviewed-0.jpg": {
"bytes": 144547,
"sha256": "8eafc33857650748a059a2c1dc345112b300a6d16d0395b33ff8f7e596d18d04"
},
"native/picker-corrected-2/19-keep-target-reviewed.json": {
"bytes": 1131,
"sha256": "509c9c3f0237a860c61e2413f05ab7bd9c51e5ffcbf97caede5c7298de0d479a"
},
"native/picker-corrected-2/20-reviewed-search-focus-0.jpg": {
"bytes": 144893,
"sha256": "0e46bb4787aba3c19cb27461cf70a22fdb579f3a63839a91ee68d37d7f9dd1d9"
},
"native/picker-corrected-2/20-reviewed-search-focus.json": {
"bytes": 1132,
"sha256": "33325c0cdac00fd49f25d4606c88a241dc6957f91f38d97b3ebafd4f5c42eaf2"
},
"native/picker-corrected-2/21-reviewed-query-selected-0.jpg": {
"bytes": 144916,
"sha256": "bec9c198292a5d4f6883c003112da1634fc7b8b8694a2910e51ed29079eaeb4b"
},
"native/picker-corrected-2/21-reviewed-query-selected.json": {
"bytes": 1134,
"sha256": "cf01d193ba011ed141e98236dff49fc06f789bbb26bb92b5a848a3f059c4319a"
},
"native/picker-corrected-2/22-cleared-search-review-retained-0.jpg": {
"bytes": 145507,
"sha256": "ff8670ba72a6b516e01bfcb9a8036940682e8f2caec92342b0902d9c0bb26b87"
},
"native/picker-corrected-2/22-cleared-search-review-retained.json": {
"bytes": 1141,
"sha256": "9a6a51578618a6c8aaf238329624102f3f37fda306be1dadffbc97dca178c221"
},
"native/picker-corrected-2/23-cancel-restores-saved-0.jpg": {
"bytes": 145951,
"sha256": "c79b52574c7ad9ea3a442679fbccb7e2683be6c0c8d015260398bc31fe9c705c"
},
"native/picker-corrected-2/23-cancel-restores-saved.json": {
"bytes": 1122,
"sha256": "6524ed5fd1cadc41de60d60818ec69e47a406189d03ede0822ea70ed502798b9"
},
"native/picker-corrected-2/inputs.json": {
"bytes": 5843,
"sha256": "c1e7219e30171f3854c97cfe6b2fa2411d7b3f39c60a12ad41b57ca61a8f4dff"
},
"native/picker-corrected-2/process.json": {
"bytes": 61,
"sha256": "6c4ea33570bd26271c5ec70c884dd4aeeab0642c33f46896ecd8832cb7ff5361"
},
"native/picker-corrected-2/result.json": {
"bytes": 2837,
"sha256": "b483791514deb4c1e16272dfabdf78f5a8092ddc8deeefc01a23baaed2913c2d"
},
"native/picker-corrected-2/started.json": {
"bytes": 2370,
"sha256": "cd97a270ae7e4eae8c6777ec311eb2437c4dd55e8b5882cbd8011c82fca2f7af"
},
"native/picker-corrected-2/stderr.log": {
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"native/picker-corrected-2/stdout.log": {
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"native/run-picker-baseline.py": {
"bytes": 2106,
"sha256": "86c88e94ccb5fcfd8f81db429db9991170839bc4a20dab408ab1d284c7e234f1"
},
"native/run-picker-corrected-2.py": {
"bytes": 2162,
"sha256": "e61347fa440337bc9629c0d3b532c39e16cfb8d1966132992676bfa1c8f546f5"
},
"native/run-picker-corrected.py": {
"bytes": 2124,
"sha256": "0e82acfca234bade68a6263f1c5a2222e1eeaff932fa7c92eb88063f254f6701"
}
},
"externalEvidence": {
"correctedCargo": {
"repositoryPath": "harness/experiments/transition-lifecycle-20260913/evidence.zip",
"commit": "fe43730bec196cc6ebbc06dcf827169f04c120f0",
"bytes": 8496343,
"sha256": "5f44ad5d83024a04a873142e77c5b8961c278a19d76492618c3ef2db63801070"
},
"baselineNative": {
"repositoryPath": "harness/experiments/ordinary-text-native-20260913/evidence.zip",
"commit": "3f9e6a18af96b5cd10940da4093be8da28b9c835",
"bytes": 5704887,
"sha256": "b827d0bdaec76b7b86d8a169530dcf98767c9883187ecdda02b4ea87171a42b5"
}
},
"captureCount": 35,
"imageCount": 37
}
@@ -0,0 +1,63 @@
"""Read-only portable receipt and frame verification, without archived execution."""
from pathlib import Path, PurePosixPath
from datetime import datetime
import hashlib,json,zipfile
ROOT=Path(__file__).resolve().parent
def pin(b):return {'bytes':len(b),'sha256':hashlib.sha256(b).hexdigest()}
def need(ok,msg):
if not ok:raise ValueError(msg)
def main():
files=json.loads((ROOT/'files.json').read_bytes())
for n,p in files.items():need(pin((ROOT/n).read_bytes())==p,'outer hash '+n)
manifest=json.loads((ROOT/'manifest.json').read_bytes())
with zipfile.ZipFile(ROOT/'evidence.zip') as z:
names=z.namelist()
need(len(names)==len(set(names)) and set(names)==set(manifest['members']),'exact ZIP membership')
need(all(not PurePosixPath(n).is_absolute() and '..' not in PurePosixPath(n).parts and '\\' not in n and ':' not in n for n in names),'safe members')
for n,p in manifest['members'].items():need(pin(z.read(n))==p,'member hash '+n)
def obj(n):return json.loads(z.read(n))
input_names={n[len('native/input/'):]:n for n in names if n.startswith('native/input/')}
reference=None;frame_count=0;image_count=0
for run,spec in manifest['runs'].items():
prefix='native/'+run+'/'
start=obj(prefix+'started.json');result=obj(prefix+'result.json');process=obj(prefix+'process.json')
need(all(result[k]==v for k,v in start.items()),run+' start/result relationship')
need(result['exitCode']==spec['exitCode'],run+' exit code')
need(isinstance(process['pid'],int) and process['pid']>0,run+' process ID')
need(datetime.fromisoformat(start['start'])<=datetime.fromisoformat(process['observed'])<=datetime.fromisoformat(result['finish']),run+' process time order')
need(result['helper']==pin(z.read(spec['helper'])),run+' launch helper')
need(result['inputs']==pin(z.read(prefix+'inputs.json')) and result['inputUnchanged'] is True,run+' input receipt')
inputs=obj(prefix+'inputs.json')
need(set(inputs)==set(input_names),run+' input inventory')
for n,p in inputs.items():need(pin(z.read(input_names[n]))==p,run+' input bytes '+n)
if reference is None:reference=inputs
need(inputs==reference,run+' all trials identical fixture')
for stream in ['stdout','stderr']:
b=z.read(prefix+stream+'.log');need(not b and result[stream]==pin(b),run+' empty stream '+stream)
build=obj(spec['build'])
need(result['buildReceipt']==pin(z.read(spec['build'])) and result['buildHead']==build['head'],run+' build receipt')
need(build['exitCode']==0 and build['inputsUnchanged'] is True,run+' build status')
need(datetime.fromisoformat(build['start'])<=datetime.fromisoformat(build['finish'])<=datetime.fromisoformat(start['start']),run+' build before launch')
gui=[a for a in build['artifacts'] if a['cargo']['target']['name']=='arcadia-studio']
need(len(gui)==1,run+' unique GUI artifact')
need(result['binary']==result['binaryAfter']==gui[0]['readback'],run+' unchanged GUI pin')
need(result['command']==[gui[0]['cargo']['executable']],run+' exact launch command')
images=[]
for metadata in spec['captures']:
frame=obj(metadata)
need(datetime.fromisoformat(start['start'])<=datetime.fromisoformat(frame['time'])<=datetime.fromisoformat(result['finish']),metadata+' capture interval')
need(frame['window']['app'].replace('\\','/')=='process:'+result['command'][0].replace('\\','/'),metadata+' window application path')
for image in frame['images']:
n=prefix+image['file'];need(n in manifest['members'] and z.read(n).startswith(b'\xff\xd8'),metadata+' JPEG reference')
need(image['width']>0 and image['height']>0,metadata+' frame dimensions')
images.append(n)
actual_images=[n for n in names if n.startswith(prefix) and n.endswith('.jpg')]
need(len(images)==len(set(images)) and set(images)==set(actual_images),run+' all images referenced once')
actual_metadata=[n for n in names if n.startswith(prefix) and n.endswith('.json') and 'images' in obj(n)]
need(set(actual_metadata)==set(spec['captures']) and len(actual_metadata)==len(spec['captures']),run+' all capture metadata')
frame_count+=len(actual_metadata);image_count+=len(images)
print(run,'exit',result['exitCode'],'captures',len(actual_metadata),'images',len(images))
need(frame_count==manifest['captureCount'] and image_count==manifest['imageCount'],'aggregate frame counts')
print('PASS:',len(names),'raw members;',len(reference),'unchanged fixture files;',frame_count,'capture records;',image_count,'original JPEGs.')
print('Build source inventories are external. Frames prove recorded states, not action execution or PID attestation. Capture helper was not start-pinned.')
if __name__=='__main__':main()