Publish the reviewed ordinary and Text compatibility checkpoint

This commit is contained in:
2026-09-13 06:54:43 -07:00
parent e624d5b9c4
commit 96b756bece
6 changed files with 1163 additions and 0 deletions
@@ -0,0 +1,52 @@
# Ordinary-text union: closed-run checkpoint
Run `python verify.py` with Python 3.10 or newer in this directory. The verifier
uses only the standard library and these five files. It reads archives in memory,
does not extract or execute source/binaries, and does not consult Git, Cargo,
network services, or paths recorded from the original machine.
`files.json` hashes the ZIP, manifest, verifier and this README. `manifest.json`
lists every ZIP member and maps each run to its exact input manifest and ZIP.
Only byte-identical input files are deduplicated; ZIPs with different timestamps
remain separate even when their source inventories match. Receipts and raw logs
are retained verbatim, including failures and original local path strings.
The production composition is d7c065991d3f63cc41341d23a546739de8837ac3.
The checkpoint is e624d5b9c4f848eff3fba2ed83f9decf959e14d8, including generated
teaching fixtures and normative language documentation. Individual receipt HEADs
and input inventories are authoritative for each run; a HEAD alone does not
describe dirty fixture/document changes during capture.
| Closed capture | Recorded outcome |
| --- | --- |
| core-consumers-1 | Offline dependency resolution failed: num-bigint missing |
| windows-dependencies-1 | Dependency preparation completed |
| core-1 | 536 passed, 1 failed, 1 ignored; stale generated teaching fixture failure preserved |
| teaching-generate-1 | Teaching generator completed; raw generated-release1 outputs included |
| teaching-check-2 | 4 passed after fixture regeneration |
| language-doc-1 | Warning log from failed strict render preserved |
| language-doc-2 | Strict docutils 0.23 render succeeded; empty warning log |
| consumers-1 | 63 passed |
The verifier checks exact archive membership, hashes and lengths, nested input
archive membership/content, input counts (including 71 vendored iced_widget
files), start/result/process command relationships, unchanged-input assertions,
helper hashes, exit codes, exact test summary rows and aggregate counts,
compiler-artifact receipt relationships, composition patch hash, generated output
inventory, and successful document source/output/warning receipts.
Limitations: integrity and internal consistency are not independent reproduction
or authenticated provenance. Test expectations in the manifest are frozen from
the raw capture. No runtime binaries, dependency cache, credentials or user
profile are packaged. Recorded artifact readback hashes cannot be independently
checked without the excluded binaries. Input archives contain project sources,
not a hermetic toolchain or complete dependency distribution. The gate helper is
receipt-pinned; the included render helper is its current successful-render
version, with no historical helper hash receipt. language-doc-1 contains only
warnings.log: its original helper, exact failed input and process/exit receipt
were not captured. The successful render inputs and outputs are hash-pinned by
its result receipt. Generated outputs are archived as observed, without a
separate generation-output hash receipt. This package does not claim a full
core rerun after regeneration, complete desktop/GUI validation, lint success,
release packaging, or publication. Active desktop-list-1 and any later runs are
excluded from this initial checkpoint.
@@ -0,0 +1,18 @@
{
"evidence.zip": {
"bytes": 8584848,
"sha256": "f220433f8f6fe99cea762aca98ee471c14411b5f6762745cf91432e6bfaca440"
},
"manifest.json": {
"bytes": 25175,
"sha256": "7893d7cdea75f8d3d2bca076d17a8688a49a2ce414ee62875a53dfa3b04c9d46"
},
"verify.py": {
"bytes": 5526,
"sha256": "65136bbf0074c63a1478a56e0a66523d785081c368a50cd698d1231f6b0618ba"
},
"README.md": {
"bytes": 3328,
"sha256": "98c900e5c83e13da6c6edc11521df8edb87f4e1ebebb004fd1d6cc8acc91683b"
}
}
@@ -0,0 +1,901 @@
{
"schema": 1,
"productionCommit": "d7c065991d3f63cc41341d23a546739de8837ac3",
"checkpointCommit": "e624d5b9c4f848eff3fba2ed83f9decf959e14d8",
"runs": {
"core-consumers-1": {
"kind": "cargo",
"inputs": "inputs/e3d2d504b18bb1f7c4c3fa1f26abff425b957f18b418d8556888151723ba67b4.json",
"archive": "inputs/12ce1ca9c1185d7a91a1dea322cdc0c7fc4372db5d879386595acdbfd412d880.zip",
"command": [
"cargo",
"test",
"--locked",
"--offline",
"-p",
"oa-core",
"-p",
"oa-server",
"--test",
"http",
"-p",
"oa-cli",
"--test",
"source_cli",
"--no-fail-fast",
"--message-format=json",
"--",
"--nocapture"
],
"head": "d7c065991d3f63cc41341d23a546739de8837ac3",
"exitCode": 101,
"inputCount": 707,
"testRows": [],
"testTotals": [
0,
0,
0,
0,
0
]
},
"windows-dependencies-1": {
"kind": "cargo",
"inputs": "inputs/e3d2d504b18bb1f7c4c3fa1f26abff425b957f18b418d8556888151723ba67b4.json",
"archive": "inputs/12ce1ca9c1185d7a91a1dea322cdc0c7fc4372db5d879386595acdbfd412d880.zip",
"command": [
"cargo",
"fetch",
"--locked",
"--target",
"x86_64-pc-windows-gnullvm"
],
"head": "d7c065991d3f63cc41341d23a546739de8837ac3",
"exitCode": 0,
"inputCount": 707,
"testRows": [],
"testTotals": [
0,
0,
0,
0,
0
]
},
"core-1": {
"kind": "cargo",
"inputs": "inputs/e3d2d504b18bb1f7c4c3fa1f26abff425b957f18b418d8556888151723ba67b4.json",
"archive": "inputs/12ce1ca9c1185d7a91a1dea322cdc0c7fc4372db5d879386595acdbfd412d880.zip",
"command": [
"cargo",
"test",
"--locked",
"--offline",
"-p",
"oa-core",
"--no-fail-fast",
"--message-format=json",
"--",
"--nocapture"
],
"head": "d7c065991d3f63cc41341d23a546739de8837ac3",
"exitCode": 101,
"inputCount": 707,
"testRows": [
[
102,
0,
0,
0,
0
],
[
3,
0,
0,
0,
0
],
[
9,
0,
0,
0,
0
],
[
6,
0,
0,
0,
0
],
[
10,
0,
0,
0,
0
],
[
9,
0,
0,
0,
0
],
[
6,
0,
0,
0,
0
],
[
11,
0,
0,
0,
0
],
[
6,
0,
0,
0,
0
],
[
16,
0,
0,
0,
0
],
[
13,
0,
0,
0,
0
],
[
8,
0,
0,
0,
0
],
[
3,
0,
0,
0,
0
],
[
7,
0,
0,
0,
0
],
[
1,
0,
0,
0,
0
],
[
8,
0,
0,
0,
0
],
[
5,
0,
0,
0,
0
],
[
35,
0,
0,
0,
0
],
[
7,
0,
0,
0,
0
],
[
15,
0,
1,
0,
0
],
[
7,
0,
0,
0,
0
],
[
5,
0,
0,
0,
0
],
[
3,
1,
0,
0,
0
],
[
7,
0,
0,
0,
0
],
[
4,
0,
0,
0,
0
],
[
4,
0,
0,
0,
0
],
[
13,
0,
0,
0,
0
],
[
13,
0,
0,
0,
0
],
[
14,
0,
0,
0,
0
],
[
11,
0,
0,
0,
0
],
[
6,
0,
0,
0,
0
],
[
15,
0,
0,
0,
0
],
[
5,
0,
0,
0,
0
],
[
18,
0,
0,
0,
0
],
[
2,
0,
0,
0,
0
],
[
2,
0,
0,
0,
0
],
[
4,
0,
0,
0,
0
],
[
8,
0,
0,
0,
0
],
[
16,
0,
0,
0,
0
],
[
10,
0,
0,
0,
0
],
[
3,
0,
0,
0,
0
],
[
12,
0,
0,
0,
0
],
[
33,
0,
0,
0,
0
],
[
13,
0,
0,
0,
0
],
[
28,
0,
0,
0,
0
],
[
0,
0,
0,
0,
0
]
],
"testTotals": [
536,
1,
1,
0,
0
]
},
"teaching-generate-1": {
"kind": "cargo",
"inputs": "inputs/e3d2d504b18bb1f7c4c3fa1f26abff425b957f18b418d8556888151723ba67b4.json",
"archive": "inputs/12ce1ca9c1185d7a91a1dea322cdc0c7fc4372db5d879386595acdbfd412d880.zip",
"command": [
"cargo",
"run",
"--locked",
"--offline",
"-p",
"oa-core",
"--example",
"generate_release1",
"--message-format=json",
"--",
".local/ordinary-text-integration/generated-release1"
],
"head": "d7c065991d3f63cc41341d23a546739de8837ac3",
"exitCode": 0,
"inputCount": 707,
"testRows": [],
"testTotals": [
0,
0,
0,
0,
0
]
},
"teaching-check-2": {
"kind": "cargo",
"inputs": "inputs/0fa1da63d71c984cd99b079de661e88154b5a31818b384f557deefd40b8ead3a.json",
"archive": "inputs/81bd006f10034bc0c203187af179548a549fda6e58bc7cde0702cc26994fd28d.zip",
"command": [
"cargo",
"test",
"--locked",
"--offline",
"-p",
"oa-core",
"--test",
"release1_teaching",
"--message-format=json",
"--",
"--nocapture"
],
"head": "d7c065991d3f63cc41341d23a546739de8837ac3",
"exitCode": 0,
"inputCount": 707,
"testRows": [
[
4,
0,
0,
0,
0
]
],
"testTotals": [
4,
0,
0,
0,
0
]
},
"language-doc-1": {
"kind": "render"
},
"language-doc-2": {
"kind": "render"
},
"consumers-1": {
"kind": "cargo",
"inputs": "inputs/bbe8290d9cb11a7ee5dba250350451c5b7ec88069aa65f6be786a67922408c48.json",
"archive": "inputs/86ac50e9cec8b39db91bbc98e5388e8c0f8466e6c217cf2f4eca5f1db087dde1.zip",
"command": [
"cargo",
"test",
"--locked",
"--offline",
"-p",
"oa-server",
"--test",
"http",
"-p",
"oa-cli",
"--test",
"source_cli",
"--no-fail-fast",
"--message-format=json",
"--",
"--nocapture"
],
"head": "d7c065991d3f63cc41341d23a546739de8837ac3",
"exitCode": 0,
"inputCount": 707,
"testRows": [
[
12,
0,
0,
0,
0
],
[
51,
0,
0,
0,
0
]
],
"testTotals": [
63,
0,
0,
0,
0
]
}
},
"members": {
"generated-release1/expected-diagnostics.json": {
"bytes": 288,
"sha256": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e"
},
"generated-release1/model.json": {
"bytes": 134520,
"sha256": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727"
},
"generated-release1/oa/activities/activity_oa_restore_work.arcadia": {
"bytes": 1130,
"sha256": "21cbd7176af8fad68453306f2371ff03e127a994b8796cdf044567332de9686f"
},
"generated-release1/oa/behavior/process_oa_assessment_procedure.arcadia": {
"bytes": 550,
"sha256": "23cabc213c264a16c8595414db6acb09248c1cef9cd699f1b0316e5bb82c062a"
},
"generated-release1/oa/behavior/process_oa_field_procedure.arcadia": {
"bytes": 1178,
"sha256": "9c52086759b7344b4809ceb8d372f65647b16fc24153a03b887faa378c37fe96"
},
"generated-release1/oa/behavior/process_oa_response.arcadia": {
"bytes": 2560,
"sha256": "675798bd19e6b40d03e7076b0e59b110cdaaab7b6d16c47c3ac80fa960072e84"
},
"generated-release1/oa/behavior/scenario_oa_conversation.arcadia": {
"bytes": 1515,
"sha256": "e217e5394a0771dc16206ed9437a231da27905d2f19be64b3f48281c0a32fb6b"
},
"generated-release1/oa/behavior/scenario_oa_full_scenario.arcadia": {
"bytes": 1121,
"sha256": "c5a285f2d7c61bd2a136107f267fbf9cddb1cba3f63ff36a6f53f7ab98f33df5"
},
"generated-release1/oa/behavior/state_machine_oa_monitor.arcadia": {
"bytes": 1358,
"sha256": "e7349e1e5336282eed3f5a103129db33d3ae4ed500788ee7129e8fc193ac57f6"
},
"generated-release1/oa/capabilities.arcadia": {
"bytes": 630,
"sha256": "26a3d9b615a3251ff010e0b47127f2d16bc2dcd45ed95967208b0076d725843a"
},
"generated-release1/oa/model.arcadia": {
"bytes": 531,
"sha256": "069a5eaaf525089935cc9d73ae7b916866ed78c6534705d75739650ecdea7ada"
},
"generated-release1/oa/participants.arcadia": {
"bytes": 1580,
"sha256": "591a75a9ecad280302be4d4ae0171ad616377ed11ead5e233848ca2dc0a71819"
},
"generated-release1/oa/types.arcadia": {
"bytes": 554,
"sha256": "f02c391d584674c879f662a418abba3a220f1fee88471ca49322ac9873de628d"
},
"generated-release1/project.arcadia": {
"bytes": 1958,
"sha256": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda"
},
"generated-release1/sa/behavior/process_sa_assessment_procedure.arcadia": {
"bytes": 559,
"sha256": "5c414fbdaabf9f9e402b0441fcacf1cacf4dbbc6c822162f028de35abf59be2d"
},
"generated-release1/sa/behavior/process_sa_field_procedure.arcadia": {
"bytes": 1187,
"sha256": "ece846fdf93857e71a9ab0efcbdf64a5c41c71180f62afa3f79077fffb53b8f2"
},
"generated-release1/sa/behavior/process_sa_response.arcadia": {
"bytes": 2569,
"sha256": "af7fdda280a917cf626f6e077162d481f9aaad280f8e81330c07d7fe384b1c52"
},
"generated-release1/sa/behavior/scenario_sa_conversation.arcadia": {
"bytes": 1847,
"sha256": "01339699ec3ee409418d9bb232542f2bcd9419f1e67b183e77700c56bb9f71d2"
},
"generated-release1/sa/behavior/scenario_sa_full_scenario.arcadia": {
"bytes": 1116,
"sha256": "5dce6b00a3a441162e8dee3e23d9ca5ab7bed4a24de669b1fba03664a3086dda"
},
"generated-release1/sa/behavior/state_machine_sa_monitor.arcadia": {
"bytes": 1358,
"sha256": "17dbcfa5bbfd10fc8e23a325fc950ce853c219b4aa89c74f96278cbb3f34acc8"
},
"generated-release1/sa/capabilities.arcadia": {
"bytes": 630,
"sha256": "81706a0ca9d7db2aa0350888b9c00d853885185db2e6b90557d3d51a11c3d645"
},
"generated-release1/sa/functions/function_sa_audit_thresholds.arcadia": {
"bytes": 280,
"sha256": "27f798f78f36e72b38edab3725af2feb0eaa010fd52a60b5c6b6bef57ad3b686"
},
"generated-release1/sa/functions/function_sa_restore_work.arcadia": {
"bytes": 2251,
"sha256": "357c6acb80f86b4e8d8f5c98f9f79d140f85fbe09f3406b41b7ac6eba464ec8c"
},
"generated-release1/sa/model.arcadia": {
"bytes": 531,
"sha256": "805b90262e27090ae7da81a51bcefa49c97fb0b3d3220b4a72323b4c4351c395"
},
"generated-release1/sa/participants.arcadia": {
"bytes": 3604,
"sha256": "ca144d6a8f45fe720b5d18c7b59c7671444baa8c37e5ce9117bcba34b3a6aa84"
},
"generated-release1/sa/types.arcadia": {
"bytes": 903,
"sha256": "540ddbc2bcd0ccf45298e3ea5660637341aff63ff65fd87ac2f26469d1adc064"
},
"generated-release1/traceability.arcadia": {
"bytes": 28041,
"sha256": "474bd28d955ff7af7722f6e9a23220d816879e3f46202e79a233544b9c593116"
},
"generated-release1/transition-before.json": {
"bytes": 35801,
"sha256": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d"
},
"generated-release1/transition-request.json": {
"bytes": 4276,
"sha256": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a"
},
"generated-release1/views/diagram_oa_allocation_view.arcadia": {
"bytes": 1786,
"sha256": "c45d7467839219d894804c1ef2d22ff4d4a5a84a6a273c526bafd4c1facde624"
},
"generated-release1/views/diagram_sa_allocation_view.arcadia": {
"bytes": 1797,
"sha256": "352a3ca745517592b5c9b1239b5770f62f0466a329a91fd03457ef2b53c06ed6"
},
"generated-release1/views/diagram_sa_capability_view.arcadia": {
"bytes": 1286,
"sha256": "8f18fcccbcddcf3c1ea0ffe727b5b23b77fc148c5da4fde953abe681e4c20cd2"
},
"generated-release1/views/diagram_sa_service_view.arcadia": {
"bytes": 1960,
"sha256": "4c72cb7593d9c4be8d2600b0656a7a3a6ce84c45bb2f3e58a4ee5ae3bf91913c"
},
"generated-release1/views/diagram_sa_state_view.arcadia": {
"bytes": 1576,
"sha256": "dd1bea81ac7dc549a53f9b190be6f13052e00ede345bd180444cc31edb892230"
},
"helpers/composition.json": {
"bytes": 1190,
"sha256": "78a98f3a034cda4d0cc1abfe33efb785e847bb6278b49c2071d70ee5f1dc23f3"
},
"helpers/gate-union.py": {
"bytes": 3495,
"sha256": "9cca2646b1bcf09961a9ad1a276d633d8e4296ff2c6f2f356f028afaf789f503"
},
"helpers/ordinary-contract.patch": {
"bytes": 7301,
"sha256": "931a5822dbfa5ad34a0dc961035e060ccdc7aed15712c4a9b5dc15a852675f71"
},
"helpers/ordinary.patch": {
"bytes": 145928,
"sha256": "e319a5151b7e6713880eaaab632f3f1c01aee6df3cd534d85a1c099fb501dcb7"
},
"helpers/render-language.py": {
"bytes": 1009,
"sha256": "82909cf11b0bdb0594b424cba51e71ec0abdead78d878f101b7ae8ff6c4281f8"
},
"helpers/required-desktop-tests.json": {
"bytes": 125261,
"sha256": "6672e3f7ccfb92b7710310836af6933a8e58ef113353505ec4fc0c3d6908c136"
},
"inputs/0fa1da63d71c984cd99b079de661e88154b5a31818b384f557deefd40b8ead3a.json": {
"bytes": 118403,
"sha256": "0fa1da63d71c984cd99b079de661e88154b5a31818b384f557deefd40b8ead3a"
},
"inputs/12ce1ca9c1185d7a91a1dea322cdc0c7fc4372db5d879386595acdbfd412d880.zip": {
"bytes": 2830239,
"sha256": "12ce1ca9c1185d7a91a1dea322cdc0c7fc4372db5d879386595acdbfd412d880"
},
"inputs/81bd006f10034bc0c203187af179548a549fda6e58bc7cde0702cc26994fd28d.zip": {
"bytes": 2828619,
"sha256": "81bd006f10034bc0c203187af179548a549fda6e58bc7cde0702cc26994fd28d"
},
"inputs/86ac50e9cec8b39db91bbc98e5388e8c0f8466e6c217cf2f4eca5f1db087dde1.zip": {
"bytes": 2831327,
"sha256": "86ac50e9cec8b39db91bbc98e5388e8c0f8466e6c217cf2f4eca5f1db087dde1"
},
"inputs/bbe8290d9cb11a7ee5dba250350451c5b7ec88069aa65f6be786a67922408c48.json": {
"bytes": 118403,
"sha256": "bbe8290d9cb11a7ee5dba250350451c5b7ec88069aa65f6be786a67922408c48"
},
"inputs/e3d2d504b18bb1f7c4c3fa1f26abff425b957f18b418d8556888151723ba67b4.json": {
"bytes": 118404,
"sha256": "e3d2d504b18bb1f7c4c3fa1f26abff425b957f18b418d8556888151723ba67b4"
},
"render/language.html": {
"bytes": 188141,
"sha256": "57e71090f56ae27aa50f757886d6cadf63d49f5641fe4a365547cbd9e59685b6"
},
"render/language.rst": {
"bytes": 142931,
"sha256": "5deafe3f75a503ab5fb3d05c5ad8f126d82668f89bef02067ce5d56c3045a2bb"
},
"runs/consumers-1/process.json": {
"bytes": 257,
"sha256": "85b18634abd4ccf90144b44b01cbcade2521ef6706b2e46abc2e1d60a4dfc346"
},
"runs/consumers-1/result.json": {
"bytes": 6986,
"sha256": "5501663ed1f845b8d18487c90fb827faab2a1c2319cf8ea8c127324fdd9add15"
},
"runs/consumers-1/started.json": {
"bytes": 1488,
"sha256": "908dda6bce0013b3c5db9bc5cf678a9df3b221845e9c29d29409bf440bab52d3"
},
"runs/consumers-1/stderr.log": {
"bytes": 652,
"sha256": "6dca8394973a95c080a0b8858926efe7779512adf0fd5e64b47d1239f9446618"
},
"runs/consumers-1/stdout.log": {
"bytes": 144498,
"sha256": "f1ff82c06e0e1b0f0c3eadb5533402bfea42983c89fa3581340768f3d953de3e"
},
"runs/core-1/process.json": {
"bytes": 197,
"sha256": "1bf0f358d94b6e95eab5cf3823a4230a72f0363b77c75b8222c73f1122739f21"
},
"runs/core-1/result.json": {
"bytes": 67077,
"sha256": "a9f111627d5a2a7fa33e525cbd43150b803505e3e201b8465f94d2060fce143e"
},
"runs/core-1/started.json": {
"bytes": 1398,
"sha256": "56fb8a8824c031ed8f831561241a3bf321158f75cc0a2acdca6b0a77d9b648f6"
},
"runs/core-1/stderr.log": {
"bytes": 12121,
"sha256": "ca7ae2dfd0b6eecec811fce5831ea0dc7fb3b6209ffcad88d45eb6c5afd65103"
},
"runs/core-1/stdout.log": {
"bytes": 131218,
"sha256": "0d683632d1046f102e6b70af56d67ea6841134d99c923f0648261b4832a860fa"
},
"runs/core-consumers-1/process.json": {
"bytes": 274,
"sha256": "16bba7d4e4e3eb39c0ae89ecdbbfe38818c2ed329a32ac52a8db3cea69ed7fd4"
},
"runs/core-consumers-1/result.json": {
"bytes": 1907,
"sha256": "4bb8e79cd647aacebe2c4790a18ac37d07bbc29b0f7c8eca1933f1c5020474f8"
},
"runs/core-consumers-1/started.json": {
"bytes": 1515,
"sha256": "2ff77ca7601800340bf458d0707aaeef742a010ec7f6a55cf1577a1c33f5c543"
},
"runs/core-consumers-1/stderr.log": {
"bytes": 327,
"sha256": "5ded46d388f7ecc597c5e468621e84a297b1231f4eab8c2aa413697dd005e286"
},
"runs/core-consumers-1/stdout.log": {
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"runs/language-doc-1/warnings.log": {
"bytes": 144,
"sha256": "82cf5ddae4d21aa3730437a7962e6582507aa8032cc75fb8164ff7cf9003b7ae"
},
"runs/language-doc-2/result.json": {
"bytes": 415,
"sha256": "620a449b2995fbbb27aa769cadf603dd01d9f7036c595d012e66b74469102bde"
},
"runs/language-doc-2/warnings.log": {
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"runs/teaching-check-2/process.json": {
"bytes": 210,
"sha256": "18e9d3ee3e9c0d2d21c196c811ae543c899cc4580ad3288eca3a544f20f7a9cc"
},
"runs/teaching-check-2/result.json": {
"bytes": 3147,
"sha256": "cfc8dad31b1d8ba45face31f7986a30066c3bc464d19bd3b8495c9a013b45c0e"
},
"runs/teaching-check-2/started.json": {
"bytes": 1416,
"sha256": "259944f97150c87b2c95e9f53ae5cbb09264b03284510c9ac44272a70fdc9c87"
},
"runs/teaching-check-2/stderr.log": {
"bytes": 218,
"sha256": "9c90adb28961f087f33b905352c50c5d2aaa46785f47f3061dbe7dc161bc95d9"
},
"runs/teaching-check-2/stdout.log": {
"bytes": 42153,
"sha256": "d53a7d2d3d726302111aab71208814f487489080d250c1f555ad18312e80d86c"
},
"runs/teaching-generate-1/process.json": {
"bytes": 252,
"sha256": "c97f65ec53807bca963754b767ab21a88c3476c3639f0b54b38880281aff8a22"
},
"runs/teaching-generate-1/result.json": {
"bytes": 3171,
"sha256": "bd0095f78b4ff3cbaf7c1c3183bc280dbb1eec1cb68a528507af27ac35f34f83"
},
"runs/teaching-generate-1/started.json": {
"bytes": 1458,
"sha256": "e0526c09c8baa67bdb753ed1b0f15e237d3db2b1c60f097a145a141b9d174169"
},
"runs/teaching-generate-1/stderr.log": {
"bytes": 229,
"sha256": "464f44f1eaa5cabe25b7f66bcd689912977482c3eaad0e65328e0210749491fa"
},
"runs/teaching-generate-1/stdout.log": {
"bytes": 41964,
"sha256": "c7b195917f9b5b15aaf654703349b713b788f4cfbf00dce966539ff0764f892b"
},
"runs/windows-dependencies-1/process.json": {
"bytes": 146,
"sha256": "3901471653ef98f1abe326244dc639c6a2f0f53d3fff72db82acf068d8afabf9"
},
"runs/windows-dependencies-1/result.json": {
"bytes": 1712,
"sha256": "f1aa540938e09c5f4b92d13b293861a9e2cd08681e3f6b285b9e85f848a44935"
},
"runs/windows-dependencies-1/started.json": {
"bytes": 1321,
"sha256": "a54a7f78b455414d592b7ca3daf3d824487583a844097db76265e564bfb531d7"
},
"runs/windows-dependencies-1/stderr.log": {
"bytes": 117,
"sha256": "a82eeeb2d2fffd4d9e5d6e20ef76ed29e9e365923e2cc33bac0ab8f21a7a88d8"
},
"runs/windows-dependencies-1/stdout.log": {
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
"generatedFiles": [
"generated-release1/expected-diagnostics.json",
"generated-release1/model.json",
"generated-release1/oa/activities/activity_oa_restore_work.arcadia",
"generated-release1/oa/behavior/process_oa_assessment_procedure.arcadia",
"generated-release1/oa/behavior/process_oa_field_procedure.arcadia",
"generated-release1/oa/behavior/process_oa_response.arcadia",
"generated-release1/oa/behavior/scenario_oa_conversation.arcadia",
"generated-release1/oa/behavior/scenario_oa_full_scenario.arcadia",
"generated-release1/oa/behavior/state_machine_oa_monitor.arcadia",
"generated-release1/oa/capabilities.arcadia",
"generated-release1/oa/model.arcadia",
"generated-release1/oa/participants.arcadia",
"generated-release1/oa/types.arcadia",
"generated-release1/project.arcadia",
"generated-release1/sa/behavior/process_sa_assessment_procedure.arcadia",
"generated-release1/sa/behavior/process_sa_field_procedure.arcadia",
"generated-release1/sa/behavior/process_sa_response.arcadia",
"generated-release1/sa/behavior/scenario_sa_conversation.arcadia",
"generated-release1/sa/behavior/scenario_sa_full_scenario.arcadia",
"generated-release1/sa/behavior/state_machine_sa_monitor.arcadia",
"generated-release1/sa/capabilities.arcadia",
"generated-release1/sa/functions/function_sa_audit_thresholds.arcadia",
"generated-release1/sa/functions/function_sa_restore_work.arcadia",
"generated-release1/sa/model.arcadia",
"generated-release1/sa/participants.arcadia",
"generated-release1/sa/types.arcadia",
"generated-release1/traceability.arcadia",
"generated-release1/transition-before.json",
"generated-release1/transition-request.json",
"generated-release1/views/diagram_oa_allocation_view.arcadia",
"generated-release1/views/diagram_sa_allocation_view.arcadia",
"generated-release1/views/diagram_sa_capability_view.arcadia",
"generated-release1/views/diagram_sa_service_view.arcadia",
"generated-release1/views/diagram_sa_state_view.arcadia"
],
"generatedCount": 34
}
@@ -0,0 +1,89 @@
"""Read-only, Python-standard-library verification. Never executes archived code."""
from pathlib import Path, PurePosixPath
from datetime import datetime
import hashlib
import io
import json
import re
import zipfile
ROOT = Path(__file__).resolve().parent
def require(ok, message):
if not ok:
raise ValueError(message)
def digest(data):
return {'bytes': len(data), 'sha256': hashlib.sha256(data).hexdigest()}
def members(z, expected):
names = z.namelist()
require(len(names) == len(set(names)), 'duplicate ZIP members')
require(set(names) == set(expected), 'archive membership mismatch')
require(all(not PurePosixPath(n).is_absolute() and '..' not in PurePosixPath(n).parts
and '\\' not in n and ':' not in n for n in names), 'unsafe member')
def main():
inventory = json.loads((ROOT / 'files.json').read_text())
for name, expected in inventory.items():
require(digest((ROOT / name).read_bytes()) == expected, 'external file hash: ' + name)
manifest = json.loads((ROOT / 'manifest.json').read_text())
with zipfile.ZipFile(ROOT / 'evidence.zip') as z:
members(z, manifest['members'])
for name, expected in manifest['members'].items():
require(digest(z.read(name)) == expected, 'member hash: ' + name)
def raw(name): return z.read(name)
def obj(name): return json.loads(raw(name))
checked = set()
for run, spec in manifest['runs'].items():
if spec['kind'] != 'cargo':
continue
prefix = 'runs/' + run + '/'
start, result, process = (obj(prefix + n + '.json') for n in ('started', 'result', 'process'))
require(all(result[k] == v for k, v in start.items()), run + ': start/result relationship')
require(result['command'] == spec['command'] == process['command'], run + ': command')
require(result['head'] == spec['head'], run + ': HEAD')
require(result['exitCode'] == spec['exitCode'] and result['inputsUnchanged'] is True, run + ': outcome')
require(datetime.fromisoformat(result['finish']) >= datetime.fromisoformat(start['start']), run + ': times')
require(result['seconds'] >= 0, run + ': duration')
require(result['helper'] == digest(raw('helpers/gate-union.py')), run + ': helper')
for field, file in [('inputs', spec['inputs']), ('archive', spec['archive']), ('stdout', prefix+'stdout.log'), ('stderr', prefix+'stderr.log')]:
require(result[field] == digest(raw(file)), run + ': receipt ' + field)
inputs = obj(spec['inputs'])
require(len(inputs) == result['inputCount'] == spec['inputCount'], run + ': input count')
require(sum(p.startswith('crates/vendor/iced_widget/') for p in inputs) == 71, run + ': vendor count')
pair = (spec['inputs'], spec['archive'])
if pair not in checked:
with zipfile.ZipFile(io.BytesIO(raw(spec['archive']))) as source:
members(source, inputs)
for name, expected in inputs.items():
require(digest(source.read(name)) == expected, run + ': source hash ' + name)
checked.add(pair)
stdout = raw(prefix+'stdout.log').decode('utf-8', errors='replace')
rows = [[int(x) for x in row] for row in re.findall(r'test result: (?:ok|FAILED)\. (\d+) passed; (\d+) failed; (\d+) ignored; (\d+) measured; (\d+) filtered out;', stdout)]
require(rows == spec['testRows'], run + ': exact test summaries')
require([sum(row[i] for row in rows) for i in range(5)] == spec['testTotals'], run + ': test totals')
artifacts = []
for line in stdout.splitlines():
try: item = json.loads(line)
except json.JSONDecodeError: continue
if isinstance(item, dict) and item.get('reason') == 'compiler-artifact' and item.get('executable'):
artifacts.append(item)
require(artifacts == [a['cargo'] for a in result['artifacts']], run + ': artifact receipt relationship')
print(run, 'exit', result['exitCode'], 'test totals', spec['testTotals'])
composition = obj('helpers/composition.json')
require(composition['patch'] == digest(raw('helpers/ordinary.patch')), 'composition patch')
doc = obj('runs/language-doc-2/result.json')
require(doc['strict'] is True and doc['docutils'] == '0.23', 'render settings')
for field, path in [('source','render/language.rst'), ('html','render/language.html'), ('warnings','runs/language-doc-2/warnings.log')]:
require(doc[field] == digest(raw(path)), 'render receipt ' + field)
require(raw('runs/language-doc-2/warnings.log') == b'', 'successful render warnings')
require(bool(raw('runs/language-doc-1/warnings.log')), 'failed render warning missing')
for path in manifest['generatedFiles']:
require(path.startswith('generated-release1/') and path in manifest['members'], 'generated mapping')
require(len(manifest['generatedFiles']) == manifest['generatedCount'], 'generated count')
print('PASS:', len(manifest['runs']), 'closed captures;', len(manifest['members']), 'members;', len(checked), 'input manifest/archive pairs')
print('Integrity and receipt consistency only; no rerun, signature, binary verification, or GUI claim.')
if __name__ == '__main__':
main()
@@ -0,0 +1,103 @@
# Ordinary compact source and Text workspace integration
This proposal composes ordinary source-default omission with the published Text
workspace. It does not replace the release owner's branch or establish release
acceptance. [Issue 11](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/11)
owns this contribution; [issue 27](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/27)
retains release integration. Source-8 analysis composition and Linux verification
remain outside this candidate; Linux work is paused at the user's instruction.
## Source composition
Production commit `d7c065991d3f63cc41341d23a546739de8837ac3` applies the exact
14-file ordinary code/test delta from `74cc0e09119f9fa9e1287988bdd98c4cbf9db79e`
to `3d067041d1c8b62bc4b2bd1e2ae81eb2713bf4e2` onto published Text/root
`136ed6e5868200165fbb1c2ae8a7230067bf9c1e`. Thirteen preimages match, including
seven paths absent on both bases. The only other preimage difference is
`lib.rs`'s independent `pub mod analysis_numeric;`, retained with the new private
`mod source_defaults;`. Thirteen resulting files match the ordinary head exactly;
the combined `lib.rs` additionally retains the numeric module. The original
145,928-byte patch has SHA-256
`e319a5151b7e6713880eaaab632f3f1c01aee6df3cd534d85a1c099fb501dcb7`.
Follow-up `e624d5b9c4f848eff3fba2ed83f9decf959e14d8` brings over the ordinary
normative language-contract delta and regenerates the current teaching example.
The full core run identified the latter dependency: its exact generated-source
assertion still expected verbose defaults. The documented generator produced
30 source files and four JSON files. Twenty-nine source files changed, removing
514 default-field lines; the root entry, all four JSON files, and all 68 historical
trace baseline blocks remained byte-identical. Generation asserts complete
decoded Project equality. The test assertion was preserved.
Strict Docutils 0.23 rendering exposed an existing one-character-short underline
on the focused diagram removal heading. Repairing it allowed warning-free HTML
generation. Regeneration also restores the root's existing allocation/removal
sections that were missing from its previous HTML. No semantic prose from those
sections changed.
## Verification to date
Windows toolchain: Rust/Cargo 1.98.1, `stable-x86_64-pc-windows-gnullvm`, LLVM-MinGW
20260826 UCRT, one build job, `CARGO_INCREMENTAL=0`. Each Cargo run captures its
707 source inputs before and after, including all 71 vendored Iced widget files,
raw logs, process identity, and executable artifact hashes. A captured HEAD with
local deltas is not represented as a clean-commit run.
- The initial combined-consumer attempt stopped before compilation because
`num-bigint` was absent from the offline cache. A locked Windows-target fetch
installed `num-bigint 0.5.1` and `num-integer 0.1.47`; sources and lock stayed
unchanged.
- Full core at clean `d7c0659`: **536 passed, one failed, one existing opt-in
scaling probe ignored**, across 46 result summaries. The sole failure was
`release1_teaching_regeneration_and_shipped_source_are_exact_with_one_intentional_warning`.
The source-transaction panic messages are deliberate interruption injections
in passing recovery tests.
- The documented teaching generator completed successfully against the same
production inputs, writing to a separate scratch folder. All 34 generated
files were compared with the repaired shipped fixture.
- `cargo test --locked --offline -p oa-core --test release1_teaching` against the
repaired fixture: **four passed**, including exact source/JSON parity and the
one intentional coverage warning. This run captured `d7c0659` plus the 29
fixture changes subsequently committed in `e624d5b`; production was unchanged.
- Strict language HTML generation: passed with an empty warning log.
- CLI/HTTP consumers: **12 CLI and 51 HTTP passed**, no failed or ignored
cases. The HTTP preservation witness exercises an actual move and server
restart with an explicitly authored empty port-anchor list. The two Windows
storage-refusal messages are expected from atomic-storage failure tests.
This run started at `d7c0659` plus the 31 fixture/documentation changes now in
`e624d5b`; all 707 captured inputs remained unchanged through execution.
Actual desktop listing admission, desktop execution, strict workspace
Clippy, matching Windows binaries, and native combined-workflow acceptance are
not established by the results above. Earlier ordinary-only native and automated
evidence remains scoped to its original published inputs.
## Independent review
Astra review checked exact Git-blob composition and the source-preserving updater,
raw diagnostic coordinates, source publication ordering, warning authority after
recovery, rename/history/save ownership, schema-7 boundary, and historical payloads.
No actionable source defect was found. Separate follow-up review confirmed all
34 regenerated files and 68 unchanged historical blocks, then checked the scoped
reST delta, preserved root sections, generated HTML, and strict-render receipts.
A source-pinned checklist identifies 150 critical desktop declarations: all 89
imported desktop additions, both later recovery-warning fixes, retained selection
and departure cases, additional recovery/Save As/rename/navigation controls, and
six explicitly ignored probes. This is expected membership only; lexical counts
are not executable admission or passing runtime results.
## Portable closed-run checkpoint
[The evidence package](experiments/ordinary-text-integration-20260913/README.md)
contains the eight closed captures described above, including failed runs, exact
input snapshots, raw generated outputs, and the source-admission checklist.
Its ZIP contains 81 members with three distinct input manifest/archive pairs:
8,584,848 bytes, SHA-256
`f220433f8f6fe99cea762aca98ee471c14411b5f6762745cf91432e6bfaca440`.
Run the package's `verify.py` with Python 3.10 or newer; it requires only the
standard library and the five adjacent package files. It verifies integrity and
receipt relationships without executing archived code or consulting this machine.
The README records provenance limitations and the absence of runtime binaries.
All 707 consumer inputs were independently compared with committed Git blobs at
`e624d5b9c4f848eff3fba2ed83f9decf959e14d8` and matched exactly.