diff --git a/docs/atlas/catalog.json b/docs/atlas/catalog.json index 4463f260..07a10ee3 100644 --- a/docs/atlas/catalog.json +++ b/docs/atlas/catalog.json @@ -1 +1 @@ -{"records":["0863093e69a16355fa9b90f8e7e29156ea4ad88c4523bc4883568bde831bdf35","2056fa8b653c2240afdad2a16f572a07019109254847829610a9468bb2f95248","231df3792931ad2333d00970a5993b3e13fa9dc38f687899f9fa2c966ed9fbfa","24fdc3980640ba58bedcae6f16d5b467eb7383c31161fb9b6ff10fd2e667b0e5","264a2f7887a9b6473cbc24102e1bf9be70e57f6d7ba224138140efa094d541f4","2b7dfb3a2f76368cb603161cdb6f8fa8c2b8afc3e96659dd37c975921ba5ba66","33df463263533529cca24a0b09937573f836d197cc1a739e9960b1cdd4deb1fd","343077d02ddd266b21d8677f7c256854134f7e3e2d18137b55ebe3f32564c5c0","34391bda3fb56135a2bddf74ab790958c175bc6a69c38175e6f8db792cfd50a0","36a19fefd7024f54f3391ffed19019c10222a514719edd7a44f0cde2a1c48258","3d3a0a302c02cd0bfee86715d09b0211baa8dad3e47402c638fc95c7cfa02e87","3de8718fb3ca9b15212e8bd84fba205995d24636087090a61c63c28a96a745b1","3df4f31fda99ad137c651322ad29809e36380400516399274870b4a4332b4a92","3f09ee199e3c2e808e0f6e74f197f2fdd8158ae099a7195c498ce9466bb78b03","44bda82d6f9a9625a83283bf56a15a1831f287037214dc134eeeae87f1faa869","6c5b38ee260d1f15f8029d699ec1cebceafb5e1407a6341dc7a4b96f4d9d3521","72742cbaa561237f10251e94aa5c61153ab5c7f14fc5771b7a5ebdece1e1cb11","87d6de6f3730cecd75d9a4411bf4dbac4e058127a3ce9f46b07f6de110bc26de","8b1cf51c5f03c0ae19c46ca3ea4a1158acbb6e47bf109ca8c506c5417b51cf9f","95115e1052b5ea4fcd393f5c9b9c6f0298657f0028eee84e16215ede97576cfa","ab4502eff76606ac8e58b623878f3d76e1e0b18f30796aec7c446e2aab8b57c8","c01c2c98f13a65b49113916a2f295e46a03fc4c185ece880267dd86c3f3dee8b","d557525e3ebfad227c8d6db9bb6350d42506fb02b1de8058cb443f4f008c0f67"],"schema":"fsgg.atlas/1"} +{"records":["0863093e69a16355fa9b90f8e7e29156ea4ad88c4523bc4883568bde831bdf35","2056fa8b653c2240afdad2a16f572a07019109254847829610a9468bb2f95248","231df3792931ad2333d00970a5993b3e13fa9dc38f687899f9fa2c966ed9fbfa","24fdc3980640ba58bedcae6f16d5b467eb7383c31161fb9b6ff10fd2e667b0e5","264a2f7887a9b6473cbc24102e1bf9be70e57f6d7ba224138140efa094d541f4","2b7dfb3a2f76368cb603161cdb6f8fa8c2b8afc3e96659dd37c975921ba5ba66","33df463263533529cca24a0b09937573f836d197cc1a739e9960b1cdd4deb1fd","343077d02ddd266b21d8677f7c256854134f7e3e2d18137b55ebe3f32564c5c0","34391bda3fb56135a2bddf74ab790958c175bc6a69c38175e6f8db792cfd50a0","36a19fefd7024f54f3391ffed19019c10222a514719edd7a44f0cde2a1c48258","3d3a0a302c02cd0bfee86715d09b0211baa8dad3e47402c638fc95c7cfa02e87","3de8718fb3ca9b15212e8bd84fba205995d24636087090a61c63c28a96a745b1","3df4f31fda99ad137c651322ad29809e36380400516399274870b4a4332b4a92","3f09ee199e3c2e808e0f6e74f197f2fdd8158ae099a7195c498ce9466bb78b03","44bda82d6f9a9625a83283bf56a15a1831f287037214dc134eeeae87f1faa869","6c5b38ee260d1f15f8029d699ec1cebceafb5e1407a6341dc7a4b96f4d9d3521","72742cbaa561237f10251e94aa5c61153ab5c7f14fc5771b7a5ebdece1e1cb11","87d6de6f3730cecd75d9a4411bf4dbac4e058127a3ce9f46b07f6de110bc26de","8b1cf51c5f03c0ae19c46ca3ea4a1158acbb6e47bf109ca8c506c5417b51cf9f","95115e1052b5ea4fcd393f5c9b9c6f0298657f0028eee84e16215ede97576cfa","a38737476856236f33e0aef1b97e2b900677cf99f1dbcfd381c708ceeca8b7f3","ab4502eff76606ac8e58b623878f3d76e1e0b18f30796aec7c446e2aab8b57c8","c01c2c98f13a65b49113916a2f295e46a03fc4c185ece880267dd86c3f3dee8b","d557525e3ebfad227c8d6db9bb6350d42506fb02b1de8058cb443f4f008c0f67"],"schema":"fsgg.atlas/1"} diff --git a/docs/atlas/records/a38737476856236f33e0aef1b97e2b900677cf99f1dbcfd381c708ceeca8b7f3.json b/docs/atlas/records/a38737476856236f33e0aef1b97e2b900677cf99f1dbcfd381c708ceeca8b7f3.json new file mode 100644 index 00000000..cb27ba55 --- /dev/null +++ b/docs/atlas/records/a38737476856236f33e0aef1b97e2b900677cf99f1dbcfd381c708ceeca8b7f3.json @@ -0,0 +1 @@ +{"citations":[{"path":"docs/roadmaps/wasm-shared-01.md","repository":"FS-GG/FS.GG.Game","revision":"bcc6e53105f8b580c422c71ea8b61ddd05f6171e","sha256":"56cde35c8b289d43d11b5db15efeaf27bdb5381f97e80dde33344087748b1f3e"},{"path":".github/workflows/wasm-installed-org.yml","repository":"FS-GG/FS.GG.Game","revision":"20c94478f774cd58d8e9c1aaef1b573449570309","sha256":"5d9a89a860e6af539ce4c5e99add2a2d5cc50e217ae36b720a2b8f90a9434221"},{"path":"scripts/wasm-release/bind-installed-release.py","repository":"FS-GG/FS.GG.Game","revision":"20c94478f774cd58d8e9c1aaef1b573449570309","sha256":"9e9ead915e50dac72d8440277ba76ac7c6bb7e576c725990bf16a9d744cc7c05"},{"path":"scripts/wasm-release/installed-evidence.py","repository":"FS-GG/FS.GG.Game","revision":"20c94478f774cd58d8e9c1aaef1b573449570309","sha256":"d7f74acf8a6b1502e7537055e021c5c998f87e700562bd0805c7248bddc82709"},{"path":"scripts/wasm-release/promotion.py","repository":"FS-GG/FS.GG.Game","revision":"20c94478f774cd58d8e9c1aaef1b573449570309","sha256":"04daa5cadd0e38c7356283bc69d6ebaefc6beca09689f59b0e9006579beee6cf"},{"path":"src/Wasm.Browser/RuntimeProtocol.fsi","repository":"FS-GG/FS.GG.Game","revision":"20c94478f774cd58d8e9c1aaef1b573449570309","sha256":"914e2d3fa1992ba499999671fd1b7254352dab3c5bc66326d3f4e55a6e02098f"},{"path":"tests/Wasm.PackageConsumer/browser/package-consumer.spec.mjs","repository":"FS-GG/FS.GG.Game","revision":"20c94478f774cd58d8e9c1aaef1b573449570309","sha256":"f741ce7d1aca966f3fc434a85943c2abff380bc23a52bdd8aa67e5b4848fd0de"},{"path":"tests/Wasm.Supervisor.Compatibility/browser/compatible-consumer.spec.mjs","repository":"FS-GG/FS.GG.Game","revision":"20c94478f774cd58d8e9c1aaef1b573449570309","sha256":"22499097f2c9971d788a56248a6e4c7cc4810ec621b17580220df7a393983e09"}],"conflictsWith":[],"id":"game/current-wasm-custody-source-boundary","kind":"boundary","recordedAt":"2026-10-17T10:21:34Z","repository":"FS-GG/FS.GG.Game","schema":"fsgg.atlas/1","status":"recorded","summary":"Published Contracts/Browser and SDK 0.4.0 remain immutable producer/publisher P=6732d2371d142d5ccc5d2d127f20e4f179800892, tree cc71e7cfe73449919376acf775940ff9e8bdab56. Original protected qualifier 39013804889/attempt1 and original publication 39015233527/attempt1 retain their accepted custody and transaction. Literal wasm/v0.4.0 tag, published release, original org pair, genuine signed public pair, SDK and manifest retain P. Later qualifier source never rewrites that publisher identity or repacks its originals.\nPR716 delivered reviewed qualifier/executor Q=20c94478f774cd58d8e9c1aaef1b573449570309, tree 382119d7cc95d25eac7558ab4f1645d8dd69844e. Full PR qualifier 39021707772/attempt1 and protected-main 39023124943/attempt1 passed all maintained gates. Native tested checkout/tree joins bind the reviewed and delivered tree; the protected job names exact Q. Trace generation was skipped, preserving all seven authentic generation inputs and 71 accepted outputs. The complete P-to-Q audit has thirteen explicit path/blob/content-hash rows; package/runtime/Worker/model/project/lock/tool/semantic-harness inputs outside the finite binding/courier/tests/documentation closure remain unchanged.\nFresh original installed 39023332496/attempt1 passed both independently guarded serial feeds at this exact historical P/Q. Org job117369338112 and public job117369337953 both succeeded in qualification, collection and upload. Independent original data review accepted complete actual archives, raw locks/configs, sidecars, hidden metadata, genuine signature/member logs, official/reference/compiler/Fable/runtime Core and restored Worker proof. Each feed passed 53 default plus 16 selected CLR/Fable correspondence cases, both facades and terminal/profile controls, 32 package browser cases, 10 selected browser cases and SDK Rust2/C4 checks. Four consumer contexts each join all 76 restored Browser static/Worker members. Each feed retains 425 Fable dependency files across five populated contexts: copied package source/library runtime joins original member bytes; generated code and transformed projects join original inputs without a byte-identity claim. This supplies the actual source/support bytes absent from earlier failed diagnostics.\nEach portable archive contains 571 safe regular inner members, 65,279,527 bytes org and 65,347,827 bytes public. Actual joint archive/sidecar, extracted proof, metadata including both manifests, logs and census fit their 512 MiB/256 MiB per-file/32 MiB logs/1 MiB metadata/1024-member refusal limits. Both downloads total 65,654,859 bytes; combined outer-plus-inner expanded proof is 196,782,881 bytes and 1146 regular copies, within selected local acquisition bounds. These are measured evidence sizes, not OS disk quotas, process RSS limits or generic cold-run guarantees. Runtime/log-copy/collection/direct cleanup all returned zero, with native upload independently successful; global descendant settlement remains unproved.\nNuGet unsigned content and signed envelope identities remain distinct. Public repository signing adds .signature.p7s; raw signed SHA256 and .nupkg.sha512 sidecar address the whole signed archive. Raw lock and hidden metadata contentHash address unsigned package content. Exact original-member correspondence and genuine native repository-signature logs establish the join. Comparing those two SHA512 roles directly would invent a mismatch.\nEarlier original installed 39016307973 remains failed with org runtime success, lost upload proof and public unexecuted. Original 39020851715 remains failed after both general runtimes passed but evidence projection refused 21 support paths, leaving selected suites unreached; its ineligible diagnostic uploads remain valid failure evidence. Neither is retroactively passing. Original publication absence-response, atomicity, moderation and descendant evidence gaps retain their scopes. This owning capture records the accepted immutable historical qualifier; it admits no later qualifier, overlay, replay, new operation or publication. Producer terminal/reset evidence feeding WASM-SHARED-01/.5-P2 to S1 is complete; product adoption/native journeys and later shared WASM stages, including .7, remain separately owned and are not closed here.","supersedes":["2056fa8b653c2240afdad2a16f572a07019109254847829610a9468bb2f95248"],"tags":["wasm","installed","publication","qualification","source","evidence","fable","nuget"],"title":"Published 0.4 terminal producer and exact both-feed installed qualification are accepted"} diff --git a/docs/roadmaps/wasm-shared-01.md b/docs/roadmaps/wasm-shared-01.md index 40540171..7fa87a8e 100644 --- a/docs/roadmaps/wasm-shared-01.md +++ b/docs/roadmaps/wasm-shared-01.md @@ -1,37 +1,55 @@ # WASM-SHARED-01 — producer qualification successor -## Current 0.4 publication and installed follow-up +## Current 0.4 producer supplier acceptance -PR714 delivered the current reader to protected producer/publisher +Published producer and original publisher P remains `6732d2371d142d5ccc5d2d127f20e4f179800892`, tree -`cc71e7cfe73449919376acf775940ff9e8bdab56`. Complete protected qualification +`cc71e7cfe73449919376acf775940ff9e8bdab56`. Its original protected qualifier [39013804889](https://github.com/FS-GG/FS.GG.Game/actions/runs/39013804889), -attempt 1, passed all eleven maintained gates and retained the independently -accepted 39-file original custody. Original publication +attempt 1, passed all eleven maintained gates and retained the accepted 39-file +custody. Original publication [39015233527](https://github.com/FS-GG/FS.GG.Game/actions/runs/39015233527), -attempt 1, completed and was independently accepted: immutable tag, published -release, original org pair, genuinely signed public pair, SDK, manifest, checksums -and durable transaction retain that producer identity. - -Fresh installed operation -[39016307973](https://github.com/FS-GG/FS.GG.Game/actions/runs/39016307973), -attempt 1, remains failed. Org's actual consumer qualification passed, then evidence -upload failed on NuGet HTTP-cache filenames and produced zero artifacts. Public -was cancelled before execution. PR715 delivered the reviewed P/Q binding and -bounded evidence collector at qualifier -`5104205393d45fcc1ce5eacbb40f9a237403634d`, with complete same-tree PR qualification. -Its fresh both-feed installed operation -[39020851715](https://github.com/FS-GG/FS.GG.Game/actions/runs/39020851715), attempt 1, -also remains failed: each feed passed the general consumer's 32 browser tests and -Rust2/C4 checks, then its first evidence projection refused Fable dependency -source/support files. Both selected-supervisor phases were unreached. Independent -review verified both bounded diagnostic archives; final collectors failed as -ineligible while both uploads succeeded. No both-feed acceptance follows. -The current correction classifies those dependency roles against original package -members across the general and selected Fable contexts. Complete new coherent -qualification and a separately selected installed operation remain required. -Publication remains accepted at P; consumer adoption remains open. Earlier source -and operation frontiers below retain their historical scopes. +attempt 1, published the exact original pair, SDK, manifest and checksums. The tag +and release retain P; later qualifier source does not replace the publisher. + +PR716 delivered reviewed qualifier Q +`20c94478f774cd58d8e9c1aaef1b573449570309`, tree +`382119d7cc95d25eac7558ab4f1645d8dd69844e`. Complete PR qualification +[39021707772](https://github.com/FS-GG/FS.GG.Game/actions/runs/39021707772), +attempt 1, passed all maintained gates, with native tested checkout/tree equal to +the reviewed and delivered tree. Protected-main qualifier +[39023124943](https://github.com/FS-GG/FS.GG.Game/actions/runs/39023124943), attempt 1, +also passed all maintained gates at exact Q. Trace generation was skipped in both +qualifiers; the seven accepted generation inputs and 71 authentic outputs remain +unchanged. The protected job ran 21m28s within its 35-minute limit, without a claim +about process RSS or general cold-run fit. + +Fresh both-feed installed operation +[39023332496](https://github.com/FS-GG/FS.GG.Game/actions/runs/39023332496), attempt 1, +passed org and public qualification, collection and upload. Independent original +data review accepted both complete raw package/lock/metadata/signature/Core/Worker +and runtime closures. Each feed executed 53 default and 16 selected CLR/Fable +correspondence cases, both facades and terminal/profile controls, 32 package and +10 selected browser cases, and SDK Rust2/C4 checks. Each retained 571 regular +inner members: 65,279,527 bytes org and 65,347,827 bytes public. Actual archive, +metadata, log, member and local acquisition bounds fit; these measurements do not +establish process RSS or global descendant settlement. + +The earlier installed originals remain failed: +[39016307973](https://github.com/FS-GG/FS.GG.Game/actions/runs/39016307973) lost org +upload evidence and never ran public; +[39020851715](https://github.com/FS-GG/FS.GG.Game/actions/runs/39020851715) passed both +general consumers but refused Fable support-file projection before selected +qualification. Its valid ineligible diagnostics remain distinct from the accepted +fresh original. Historical sections below preserve their original scopes. + +These results complete the producer terminal/reset correction feeding +WASM-SHARED-01/.5-P2 and S1. Product adapter +adoption, native journeys and later shared WASM stages remain separately owned; +this producer result does not close overall WASM-SHARED-01 or its .7 outcome. +Installed acceptance names immutable P/Q and original run identities. A later +owning-documentation capture does not admit a new qualifier or replay that run. +No package, tag, release or registry mutation follows from this reconciliation. ## Protected qualification and checkout-reader correction (completed source delivery) @@ -396,28 +414,30 @@ composite deadlines retain their existing behavior. BAR normal invocation/shutdo and SC2 normal ordinary/ordered/snapshot/replacement paths retain their selected behavior. Product F# still owns closing/reset state and queue-overflow result mapping. -- [ ] Independently review the exact producer correction, canonical model and +- [x] Independently review the exact producer correction, canonical model and prepared focused reducer/facade/installed-browser qualification sources. -- [ ] Under separately admitted resources, typecheck/run the canonical model and +- [x] Under separately admitted resources, typecheck/run the canonical model and existing boundary/expiry/compatible witnesses, regenerate authentic traces, and execute source .NET/Fable correspondence plus both facades and causal mutations. -- [ ] Execute real installed Worker qualification for terminal success/rejection, +- [x] Execute real installed Worker qualification for terminal success/rejection, traps/cleanup/timeouts, repeated terminal followers, held snapshots and candidate retirement; preserve exact ABI evidence and retirement-before-result ordering. -- [ ] Deliver reviewed source with relevant checks and required coherent CI through +- [x] Deliver reviewed source with relevant checks and required coherent CI through the existing canonical owner route, which programme ownership must reconcile. -- [ ] Select and qualify an unused coherent successor version, then separately +- [x] Select and qualify an unused coherent successor version, then separately authorize publication and verify fresh both-feed installed readback before an S1 consumer pin. Published 0.3.0 does not expose this new capability. -Current boundary: source preparation only. Model execution, trace regeneration, -CLR/Fable/browser/Worker execution, SDK restore/build/pack, remote source delivery, -publication and installed acceptance have not run for this correction. Committed -pre-existing generated traces remain historical until the maintained generators run; -new required mutation checks intentionally depend on those regenerated fixtures. -The owning shared foundation S1/final .5-P2 contract remains the integration authority. -No runtime shim, JavaScript queue, transport freeze hook or new guest ABI is selected. - +Current producer boundary: authentic trace preparation, source/model/CLR/Fable, +real Worker/browser qualification, protected source delivery, coherent 0.4.0 +publication and fresh both-feed installed data acceptance have run with the exact +identities above. The exact protected-main coherent obligation also passed. +The original source-only preparation boundary and subsequent +failed operations retain their historical evidence; they do not become passing +runs. The owning shared foundation S1/final .5-P2 contract remains the integration +authority. Product integration and native acceptance are outside this producer +closure. No runtime shim, JavaScript queue, transport freeze hook or new guest ABI +was introduced. ## Event boundary model correction @@ -733,10 +753,11 @@ metadata or 1024 regular members (including its own manifest). Actual archive, Core, Worker and compiled-output inventories/hashes must be read back; the caps are refusal limits, not measured cold-run guarantees or process RSS limits. Inert controls exercise the actual source audit, collector and shell first-cause -paths. Complete coherent CI and a separately selected new both-feed installed run -remain required; neither local source controls nor the original org-only runtime -success authorize consumer adoption. Publication bytes and both failed/successful -original identities remain unchanged. +paths. The original source boundary required complete coherent CI and a separately +selected fresh both-feed installed run. Current acceptance above records those +actual results; local source controls and the earlier org-only runtime never +substitute for them. Publication bytes and every failed/successful original +identity remain unchanged. ### Fable dependency projection after original installed refusal @@ -760,5 +781,38 @@ Fable bookkeeping remain bounded data, not runtime or provenance substitutes. Foreign modules/members, unexpected executable files, paths, links, changed copied sources or library runtime refuse; missing Core, lock and Worker proof still refuses. Producer caps and feed isolation do not change. Inert controls cover all -caller contexts and actual merge provenance, while repaired native execution and -complete projection fit remain unproved until a separately selected original run. +caller contexts and actual merge provenance. The later selected original +39023332496 supplies actual repaired native execution and complete bounded +projection fit on both feeds; it does not retrospectively complete either failed +original or establish product adoption. + + +### Accepted installed identity and reusable evidence lessons + +Accepted publication remains producer/publisher P at 6732d237; accepted installed +qualification remains the exact Q20c9447 original above. The complete reviewed +P-to-Q audit has 13 explicit path/blob/content-hash rows. Its current-only read-only +subject does not modify the original publisher executor, writer constraints or +transaction. This later owning capture records that historical accepted subject; +it grants no later qualifier, historical overlay, replay or additional operation. + +The org and public archives preserve different physical identities. Public +repository signing adds `.signature.p7s`; its full archive SHA-256 and `.nupkg.sha512` +sidecar address the signed envelope. Raw lock and hidden metadata content hashes +address NuGet's unsigned package content. Exact payload comparison and genuine +native repository-signature verification establish their correspondence. Treating +those two SHA-512 roles as interchangeable would invent a mismatch. + +Actual proof includes the original archives, sidecars and hidden metadata, raw +locks/configs, official reference/compiler/Fable/runtime Core, compiled runtime, +restored Worker bytes and browser logs. The portable closed projection retained +425 Fable dependency files per feed across five populated compiler/Worker contexts; +package source/library copies join exact original members, while generated code +and transformed projects join their original inputs. Ancillary source/support is +bounded evidence data. Source predicates alone never establish the runtime result. + +Runtime, log-copy, collection, direct cleanup and native upload retain separate +statuses. Both accepted consumers recorded zero for all direct statuses; global +descendant settlement remains unproved. Prior failures and original publication +absence-response, atomicity and moderation evidence gaps remain unchanged. No local +CLR, Fable, model, browser or package-restore workload was used for this closure.