diff --git a/conformance/independent/20260913-public-candidate-seal/HEADS.json b/conformance/independent/20260913-public-candidate-seal/HEADS.json new file mode 100644 index 0000000..c099419 --- /dev/null +++ b/conformance/independent/20260913-public-candidate-seal/HEADS.json @@ -0,0 +1,27 @@ +{ + "receipt": "20260913-public-candidate-seal", + "purpose": "Exact-head software closure on the final Public Candidate heads. Supersedes 20260912-private-final as the evidence for release gate rows 31, 32 and 33.", + "release_repositories": { + "mcl-core": "36d6cbeb1224ca0c6e352a0b3d9de67deecd984a", + "mcl-wire": "01168748425546627a7245ee31d0fc3473237f06", + "mcl-link": "57096d964a261b34b77d2f6860fc89c9b12d2dff", + "mcl-sdk": "125461325d99924d735c9ae1057151f68fd0b3df", + "mcl-ap": "07bd494f83fbc2567ee377c4b4563c429551f5f1", + "mcl-ip": "26f37a79fa24af0ea8e8cf5d86ac2794c4076047", + "mcl-ble": "33d6a8a43d40ce0513e1924fbe8d5679b1302d23", + "mcl-uwb": "a56a86b9ea919cdbb6062cab02cdd60a4bb55609" + }, + "gated_mcl_core_tree": "ff30cd685a2ac585b5ae6d7e77c347bbf12515b6", + "mcl_core_note": "mcl-core above is main before this record; the gates ran on it with the rebuilt bundle on top (gated_mcl_core_tree). The Public Candidate mcl-core revision is the merge commit of the pull request that adds this directory. It cannot be written here, because writing it changes it; it is recorded in the row 36 external-review issue.", + "organization_infrastructure": { + ".github": "954d34e677583e12c61c89daec3e68494340593e" + }, + "infrastructure_note": ".github is recorded for operations only. It is not a release component and is not in commits.txt, the manifest or any release tag.", + "results": { + "posix_rehearsal_checks_passed": 22, + "posix_rehearsal_checks_failed": 0, + "msvc_test_targets_passed": 44, + "go_no_go_fatal_findings": 0, + "reconstruction": "VERIFIED" + } +} diff --git a/conformance/independent/20260913-public-candidate-seal/README.md b/conformance/independent/20260913-public-candidate-seal/README.md new file mode 100644 index 0000000..368ce74 --- /dev/null +++ b/conformance/independent/20260913-public-candidate-seal/README.md @@ -0,0 +1,37 @@ +# Public Candidate seal receipts + +The exact-head software closure on the final Public Candidate heads, taken on +2026-09-13 after the release-integrity fixes, the rows 27/37 closure and the +adoption READMEs merged. These are the receipts release gate rows 31, 32 and +33 now cite. The 2026-09-10 and 2026-09-12 receipts are retained unedited; each +stopped being final when the tree it qualified moved. + +| receipt | result | +| --- | --- | +| `posix-rehearsal.log` | 22 checks, 22 passed, exit 0 | +| `msvc-gates.log` | 44 test targets, all passed, exit 0 | +| `go-no-go.log` | no fatal findings, exit 0 | +| `reconstruction.log` | RECONSTRUCTION VERIFIED, exit 0 | +| `HEADS.json` | the eight release revisions, and `.github` separately | + +No hardware ran. Every check here was written by this project, so passing them +says the tree is self-consistent, not that it is correct. That is what row 36, +public external review, is for. + +## Order, and why + +The POSIX rehearsal, go/no-go and reconstruction ran on `mcl-core` with the +bundle rebuilt onto the final heads. MSVC ran on the same final heads just +before that bundle commit, which changes no C source. The transcripts were then +scrubbed and digested, and rows 31 to 33 were updated from them. Because the +ledger is an inventoried release artifact, the bundle was rebuilt once more +after that update and the rehearsal was re-run to confirm it still passes. The +transcripts here are the first run; the confirmation is recorded in the pull +request that merges this directory. + +## One edit to the captured logs + +Local identity was replaced before digesting: the repository root, home +directories, the account name and the workstation name became ``, +``, `` and ``. No gate name, result, count or +exit status was touched. diff --git a/conformance/independent/20260913-public-candidate-seal/SHA256SUMS.txt b/conformance/independent/20260913-public-candidate-seal/SHA256SUMS.txt new file mode 100644 index 0000000..1b9a1dc --- /dev/null +++ b/conformance/independent/20260913-public-candidate-seal/SHA256SUMS.txt @@ -0,0 +1,6 @@ +bb147626a824bb34ea47026a36c2de2e823f1e22613f82fdb68cf6aae0969085 HEADS.json +5bf0b47f639729e765860d6d582a5aaf8a1baa3fda75aae0d8d9d09eed0d5cf5 README.md +e9b5973e73ae0e9adad916f6d4f01a9ba0ba54056f2b7f167f34a67272883249 go-no-go.log +f5c823e04e715bcbbfc1526f5f77b2bb11d106dbc30db5fe8aea152c8d796a07 msvc-gates.log +17f9752611e34bd9f136a4be77ded8bbfae23c4ebad3825751d9baa72f46b5e9 posix-rehearsal.log +1d0f9b7e6df3023cf27d3becf7ff202515b6a596ea74237c280d925fa52fdd5d reconstruction.log diff --git a/conformance/independent/20260913-public-candidate-seal/go-no-go.log b/conformance/independent/20260913-public-candidate-seal/go-no-go.log new file mode 100644 index 0000000..de1e3f9 --- /dev/null +++ b/conformance/independent/20260913-public-candidate-seal/go-no-go.log @@ -0,0 +1,99 @@ +=== MCL final go/no-go audit +=== date 2026-09-13T03:23:53Z user + +=== MCL go/no-go audit === +Tracked files only. Evidence directories are excluded: they record what +was true on a date and are never edited. + +-- unfinished-work markers (FATAL: none may ship) + ok no TODO/FIXME/XXX/HACK/TBD + +-- placeholder text (FATAL) + ok no placeholders + +-- GitHub Actions policy (FATAL: least privilege, no secrets to forks) + ok workflow policy satisfied + +-- hardcoded Tier-0 field counts (FATAL: stale four times already) + ok no hardcoded field counts + +-- hand-copied derived counts in release prose (FATAL) + ok no hand-copied API symbol counts + ok no hand-copied artifact counts + +-- status: draft, in tracked specifications + 17 occurrence(s) of draft status lines -- review each: + mcl-core/schema/core-v0.yaml:2:status: research-draft + mcl-core/spec/core-v0.md:3:Status: **Research Draft** + mcl-core/spec/shared-primitives-v0.1.md:3:Status: **Research Draft** + mcl-wire/spec/tier0-extensions-v0.1.md:3:**Status:** Research Draft + mcl-link/research/mcl-s1-benchmark-design.md:3:Status: **Research Draft.** Selects nothing, assigns nothing, and contains no + mcl-link/research/mcl-s1-benchmark-round1.md:3:Status: **Research Draft.** Selects nothing. Round 1 measures the dimensions + mcl-link/research/security-carrier-design.md:3:Status: **Research Draft.** Decides no cryptography and selects no suite. It + mcl-link/spec/link-frame-classes-v0.1.md:3:**Status:** Research Draft + mcl-link/spec/machine-card.md:3:Status: **Research Draft** + mcl-link/spec/version-context-negotiation-v0.1.md:3:Status: **Research Draft** + mcl-ap/spec/ap-bootstrap-requirements-v0.1.md:3:Status: **Research Draft** + mcl-ap/spec/ap-v0.md:3:Status: **Research Draft** + mcl-ap/spec/bootstrap-link-convergence.md:3:Status: **Research Draft** + mcl-ip/spec/binding-v0.md:3:Status: **Research Draft** + mcl-ble/spec/binding-v0.md:3:Status: **Research Draft** + mcl-uwb/README.md:71:**Status: Research Draft.** Nothing here is frozen. Assigned transport id + mcl-uwb/spec/binding-v0.md:3:Status: **Research Draft** + +-- provisional registry entries + 41 occurrence(s) of provisional entries -- review each: + mcl-core/conformance/header-v0.2-vectors.json:2: "status": "provisional", + mcl-core/registries/semantic-codes-v0.2.json:38: "status": "provisional", + mcl-core/registries/semantic-codes-v0.2.json:44: "status": "provisional" + mcl-core/registries/semantic-codes-v0.2.json:50: "status": "provisional" + mcl-core/registries/semantic-codes-v0.2.json:57: "status": "provisional", + mcl-core/registries/semantic-codes-v0.2.json:63: "status": "provisional" + mcl-core/registries/semantic-codes-v0.2.json:69: "status": "provisional" + mcl-core/registries/semantic-codes-v0.2.json:76: "status": "provisional", + mcl-core/registries/semantic-codes-v0.2.json:82: "status": "provisional" + mcl-core/registries/semantic-codes-v0.2.json:88: "status": "provisional" + mcl-core/registries/semantic-codes-v0.2.json:95: "status": "provisional", + mcl-core/registries/semantic-codes-v0.2.json:101: "status": "provisional" + mcl-core/registries/semantic-codes-v0.2.json:107: "status": "provisional" + mcl-core/registries/semantic-codes-v0.2.json:114: "status": "provisional", + mcl-core/registries/semantic-codes-v0.2.json:120: "status": "provisional" + mcl-core/registries/semantic-codes-v0.2.json:126: "status": "provisional" + mcl-core/registries/semantic-codes-v0.2.json:132: "status": "provisional" + mcl-core/registries/semantic-codes-v0.2.json:138: "status": "provisional" + mcl-core/registries/semantic-codes-v0.2.json:144: "status": "provisional" + mcl-core/registries/semantic-codes-v0.2.json:151: "status": "provisional", + ... and 21 more + +-- experimental profile values appearing in examples + 2 occurrence(s) of experimental profile uses -- review each: + mcl-ip/README.md:92:| `profile_id = 192` | **Experimental Use, permanently.** It was never relabelled: profile 1 is a separate assignment. Evidence gathered under 192 stays evidence about 192. | + mcl-ble/README.md:85:| `profile_id = 192` | **Experimental Use, permanently.** It was never relabelled: profile 1 is a separate assignment. Evidence gathered under 192 stays evidence about 192. | + +-- old API signatures that were replaced + ok no obsolete signatures + +-- the other gate checks still pass + ok check-registry-governance.sh + ok check-traceability.sh + ok check-provenance.sh + ok api-baseline.sh + ok check-publication-readiness.sh + ok build-spec-index.sh --check + +=== SUMMARY === +fatal findings: 0 +informational findings: 60 + +An informational finding is not automatically a problem. 'Research Draft' +on a document v1.0 does not make Stable is correct. A provisional registry +entry for a Candidate object is correct. Experimental profile 192 in a +test is correct -- that is the value C4/C5 run against. Each still has to +be LOOKED AT, which is why they are listed rather than counted. + +GO/NO-GO: no fatal findings. + +This is NOT a release authorization. It says nothing about whether the +RELEASE_GATE_V1.md rows are DONE. A tree with no TODOs and a complete +specification index can still be missing independent review. +=== exit 0 diff --git a/conformance/independent/20260913-public-candidate-seal/msvc-gates.log b/conformance/independent/20260913-public-candidate-seal/msvc-gates.log new file mode 100644 index 0000000..2eb9cb4 --- /dev/null +++ b/conformance/independent/20260913-public-candidate-seal/msvc-gates.log @@ -0,0 +1,40 @@ +=== MCL Public Candidate seal: MSVC gates +=== date 2026-09-13T03:13:27Z + + +=== MSVC /W4 /WX, all eight repositories === +root: + +-- mcl-core + OK + +-- mcl-wire + OK + +-- mcl-link + OK + +-- mcl-sdk + OK + +-- mcl-ap + OK + +-- mcl-ip + OK + +-- mcl-ble + OK + +-- mcl-uwb + OK + +=== SUMMARY === +test targets run: 44 +MSVC GATES PASSED + +This is one half. Run local-gates.sh for GCC, Clang, ASan/UBSan, +the ARM and RISC-V freestanding cross-compiles and the C++ header +compiles. Neither run alone is "the gates". + +=== msvc gates exit 0 diff --git a/conformance/independent/20260913-public-candidate-seal/posix-rehearsal.log b/conformance/independent/20260913-public-candidate-seal/posix-rehearsal.log new file mode 100644 index 0000000..ff29369 --- /dev/null +++ b/conformance/independent/20260913-public-candidate-seal/posix-rehearsal.log @@ -0,0 +1,64 @@ +=== MCL final private-closure POSIX rehearsal +=== date 2026-09-13T03:15:37Z +=== user uid=1000 +=== tmpdir /.mcl-final-tmp (private, empty at start) +=== gcc gcc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0 +=== clang Ubuntu clang version 18.1.3 (1ubuntu1) + +=== MCL release rehearsal === +root: + +-- the eight repositories are at their release commits + mcl-core ff30cd6 + mcl-wire 0116874 + mcl-link 57096d9 + mcl-sdk 1254613 + mcl-ap 07bd494 + mcl-ip 26f37a7 + mcl-ble 33d6a8a + mcl-uwb a56a86b + +local gates (GCC/Clang/sanitizers/cross) PASS +test harnesses cannot run a stale binary PASS +Row 35 sealed physical receipt PASS +C4 cross-implementation PASS +C5 profile interoperability PASS +BLE probe verdict regressions PASS +installable package + external consumer PASS +public API surface PASS +registry governance PASS +specification index PASS +specification maturity PASS +AP-BOOTSTRAP-1 vectors, both receivers PASS +feature traceability PASS +deployment profiles PASS +reference deployment: document vs SDK PASS +base deployment: document vs SDK PASS +evidence digests PASS +clean-checkout adoption path PASS +provenance and licensing PASS +go/no-go audit PASS +publication readiness PASS +release bundle reconstruction PASS + +=== SUMMARY === +22 passed + +REHEARSAL PASSED + +WHAT THIS DOES NOT COVER: + - MSVC. Run mcl-core/tools/local-gates-msvc.ps1 on the Windows side. + A claim of 'all compilers' needs both halves. + - Hardware. No experiment runs here. The E3/E4 evidence stands on the + rigs its READMEs name and is not re-measured by a software pass. + - Independent review. EVERY CHECK HERE WAS WRITTEN BY THIS PROJECT, + including the one that checks the others. Passing them all says + the tree is self-consistent, not that it is right. + v1.0.0 does not claim that two organisations have interoperated, + that anyone outside this project has implemented these + specifications, or that anyone outside has reviewed them. + V1_SCOPE.md section 5.9. Public external review is required + before the Stable v1.0.0 tag; later external implementation + reports may inform v1.1. + +=== rehearsal exit 0 diff --git a/conformance/independent/20260913-public-candidate-seal/reconstruction.log b/conformance/independent/20260913-public-candidate-seal/reconstruction.log new file mode 100644 index 0000000..b22f4a6 --- /dev/null +++ b/conformance/independent/20260913-public-candidate-seal/reconstruction.log @@ -0,0 +1,88 @@ +=== MCL final release bundle reconstruction (--verify v1.0.0) +=== date 2026-09-13T03:24:58Z user + +=== reconstructing v1.0.0 from its bundle alone === + +-- every named commit exists and is what the manifest says + ok mcl-core 36d6cbeb1224 + ok mcl-wire 011687484255 + ok mcl-link 57096d964a26 + ok mcl-sdk 125461325d99 + ok mcl-ap 07bd494f83fb + ok mcl-ip 26f37a79fa24 + ok mcl-ble 33d6a8a43d40 + ok mcl-uwb a56a86b9ea91 + +-- checksums match the artifacts they name + ok 51 artifact(s) verified against the working tree + +-- every artifact the manifest names is present + ok mcl-core/SPECIFICATION_INDEX.md + ok mcl-core/SECURITY.md + ok mcl-core/REPORTING.md + ok mcl-core/errata/README.md + ok mcl-core/governance/PUBLISHING.md + ok mcl-core/LICENSING.md + ok mcl-core/CONTRIBUTING.md + ok mcl-core/governance/V1_SCOPE.md + ok mcl-core/governance/RELEASE_GATE_V1.md + ok mcl-core/governance/GOVERNANCE.md + ok mcl-core/governance/ARCHITECTURE_CHARTER.md + ok mcl-core/governance/REGISTRY_POLICY.md + ok mcl-core/governance/MACHINE_CLASS_AUDIT.md + ok mcl-core/conformance/ICS.md + ok mcl-core/conformance/api-baseline-v1.txt + ok mcl-core/conformance/independent/SPEC_GAPS.md + ok mcl-core/registries/semantic-codes-v0.2.json + ok mcl-core/registries/tier0-fields-v0.1.json + ok mcl-wire/spec/common-header-v0.2.md + ok mcl-wire/spec/tier0-layout-v0.2.md + ok mcl-wire/spec/duration-v0.1.md + ok mcl-wire/spec/tier0-extensions-v0.1.md + ok mcl-wire/registries/extension-ids-v0.1.json + ok mcl-wire/conformance/vectors/tier0-major1-v1.0.json + ok mcl-link/spec/link-v0.md + ok mcl-link/spec/link-class-disposition-v1.md + ok mcl-link/spec/link-negotiation-v1.md + ok mcl-link/spec/link-handoff-control-v0.1.md + ok mcl-link/spec/link-contact-ownership-v0.1.md + ok mcl-link/registries/transport-ids-v0.1.json + ok mcl-link/registries/handoff-ops-v0.1.json + ok mcl-ip/spec/ip-datagram-profile-v1.md + ok mcl-ip/registries/ip-profiles-v0.1.json + ok mcl-ble/spec/ble-gatt-profile-v1.md + ok mcl-ble/registries/ble-profiles-v0.1.json + ok mcl-core/spec/conformance-profiles-v1.md + ok mcl-core/spec/deployment-profile-v1.md + ok mcl-ap/spec/ap-bootstrap-1.md + ok mcl-ap/conformance/vectors/VECTORS.md + ok mcl-ap/conformance/vectors/01-presence-10b.wav + ok mcl-ap/conformance/vectors/02-transport-accept-16b.wav + ok mcl-ap/conformance/vectors/03-transport-offer-17b.wav + ok mcl-ap/conformance/vectors/04-refuse-bad-crc.wav + ok mcl-ap/conformance/vectors/05-refuse-zero-length.wav + ok mcl-ap/conformance/vectors/06-refuse-length-over-cap.wav + ok mcl-ap/conformance/vectors/07-refuse-truncated.wav + ok mcl-ap/conformance/vectors/08-refuse-no-preamble.wav + ok mcl-ap/conformance/vectors/09-refuse-silence.wav + ok mcl-core/releases/v1.0.0/mcl-developer-sdk.tar.gz + ok mcl-core/releases/v1.0.0/EVIDENCE_INDEX.json + ok mcl-core/releases/v1.0.0/REPRODUCIBILITY.md + +-- bundled developer SDK builds and runs its contract test +Internal ctest changing into directory: /.mcl-final-tmp2/tmp.3RqMLh5Yen/build +Test project /.mcl-final-tmp2/tmp.3RqMLh5Yen/build + Start 1: mcl_machine_contract +1/1 Test #1: mcl_machine_contract ............. Passed 0.00 sec + +100% tests passed, 0 tests failed out of 1 + +Total Test time (real) = 0.00 sec + ok self-contained SDK checksum, build and contract test + +RECONSTRUCTION VERIFIED + +What this does NOT establish: that the release is correct, or that a +clean checkout on another machine builds. It establishes that the +bundle names real commits, real artifacts, and correct checksums. +=== exit 0 diff --git a/governance/RELEASE_GATE_V1.md b/governance/RELEASE_GATE_V1.md index f796b91..8a7db2a 100644 --- a/governance/RELEASE_GATE_V1.md +++ b/governance/RELEASE_GATE_V1.md @@ -62,9 +62,9 @@ and non-overclaiming* is itself the requirement. | 28 | Interoperability gate | `DONE` | `V1_SCOPE.md` §5.9 defines what v1.0 requires, in three mandatory parts, and all three are met: (a) two implementations independent of each other's code cross-decoding, C4 803 + C5 108; (b) over-air between distinct devices on IP, BLE and acoustic; (c) the stack compiled by a different toolchain for a different architecture, running on an ESP32-S3 and interoperating over air — `mcl-ap/experiments/008-embedded-node/`. **See the note below: this row was narrowed by an explicit scope decision, and what it no longer covers is stated in the release.** | | 29 | Errata and defect-report process | `DONE` | `REPORTING.md` (what a useful report is, and what happens to it) and `errata/README.md` (the list, empty at v1.0.0 by design, with the format and the never-silently-rewrite rule). `GOVERNANCE.md` §6 defines the process; these make it usable by someone who has just found a defect. | | 30 | Final release bundle | `DONE` | Frozen developer archive built from the eight revisions in `releases/v1.0.0/commits.txt`; the artifact inventory is the source of truth. Release-candidate only until public review and Stable promotion. Final audit metadata is sealed after execution without rebuilding the SDK archive. | -| 31 | Reconstructability check | `DONE` | Bundle reconstruction passed in the 2026-09-12 final rehearsal, including extracted SDK build and contract test: `RECONSTRUCTION VERIFIED`, exit 0. See `conformance/independent/20260912-private-final/reconstruction.log`. **This row previously cited the 2026-09-10 rehearsal.** That receipt was not withdrawn and is not edited -- it stopped being the *final* evidence when executable source changed after it (the Base 1 send path and the arranged-bearer deployment), and a row citing a rehearsal that predates the code it qualifies is a ledger disagreeing with the tree. | -| 32 | Final clean-room release rehearsal | `DONE` | 2026-09-12 POSIX rehearsal: **22 checks passed, 0 failed**, exit 0; MSVC: **44 test targets passed**, exit 0. Receipts in `conformance/independent/20260912-private-final/`, with the eight revisions they ran against in `HEADS.json` and all eight working trees clean before and after. The count moved from 20/43 because `check-base-deployment.sh`, `check-evidence-digests.sh` and the `test_base1` target were added after the earlier rehearsal. **The first attempt failed seven checks and the tree was not at fault**: the 2026-09-10 rehearsal had run as root and left root-owned working directories in `/tmp`, so an unprivileged re-run could not rebuild them and the go/no-go audit inherited two FATALs from the two it could not regenerate -- read quickly, an API baseline break and a stale specification index; in fact one-to-one with the leftovers. These receipts were taken after clearing them, unprivileged, with a private empty `TMPDIR`, which is a stronger configuration than the run it replaces. Source revisions are frozen in the bundle; later closure metadata changes no executable source. | -| 33 | Final go/no-go audit | `DONE` | 2026-09-12 go/no-go: **no fatal findings**, exit 0; retained informational hits reviewed as historical evidence, reserved vocabulary and Experimental Use identifiers. See `conformance/independent/20260912-private-final/go-no-go.log`. Public visibility and external review remain open. | +| 31 | Reconstructability check | `DONE` | Bundle reconstruction passed on the final Public Candidate heads, 2026-09-13, including extracted SDK build and contract test: `RECONSTRUCTION VERIFIED`, exit 0. See `conformance/independent/20260913-public-candidate-seal/reconstruction.log`. The 2026-09-10 and 2026-09-12 receipts are retained unedited; each stopped being final evidence when the tree it qualified moved, most recently through the release-integrity fixes, the rows 27/37 closure and the adoption READMEs. | +| 32 | Final clean-room release rehearsal | `DONE` | 2026-09-13, on the final Public Candidate heads recorded in `HEADS.json`: POSIX rehearsal **22 checks passed, 0 failed**, exit 0; MSVC **44 test targets passed**, exit 0. Receipts in `conformance/independent/20260913-public-candidate-seal/`. Run unprivileged with a private empty `TMPDIR`. These gates include the hardened evidence-digest check, which requires each covered file's working tree to equal its committed blob before verifying a digest. Public CI on the final heads runs after this record merges, because the record itself moves `mcl-core`. | +| 33 | Final go/no-go audit | `DONE` | 2026-09-13 go/no-go on the final Public Candidate heads: **no fatal findings**, exit 0. See `conformance/independent/20260913-public-candidate-seal/go-no-go.log`. Row 36, public external review, remains open. | | 34 | Create `v1.0.0` | `WAIT_DEP` 35, 30, 31, 32, 33, 27, 36 | Row 34a closed 2026-09-04 and the closeout pass (API baseline, ledger repair, both gate halves, rebuilt bundle) closed 2026-09-05, but that pass is no longer the release state: row 35 reopened the scope. **Rows 30-33 were returned to `WAIT_DEP` on 2026-09-07.** They had been left reading `DONE` while this row's own text said they had been returned and while the rehearsal reported the bundle failing — a ledger disagreeing with itself and with its own gate, which is the exact failure this file exists to prevent. The tag waits on the scope work, then on one rebuild-and-reverify pass, then on publication, **then on row 36**: `ARCHITECTURE_CHARTER.md` §6 requires public review for Stable, and making a repository readable is not review. | | 34a | Android peer verification | `DONE` | `mcl-ip/evidence/e4-android-udp-20260904/` — an iQOO 9 on Android 14 (arm64-v8a) as a third IP peer over its own 2.4 GHz SoftAP. Four cells (both directions × both majors), 142 checks, 0 failed, 400 sustained frames, 0 lost, 0 retries. The Stable path — major-1 Link frames carrying major-1 `PRESENCE` and `TRANSPORT_OFFER` on profile 1 — was exercised in both directions, including refusal of reserved `profile_id` 0, reserved `transport_id` 0, and a Candidate object at the Stable major. Harness in `mcl-ip/hardware/android-udp-peer/`. | | 35 | Builder-interoperability floor | `DONE` | Original `V1_SCOPE.md` section 5.10, restored by owner review on 2026-09-10. Both-role zero-prior DFR/Android migration and physical three-party AP contention session `E0585224` are verified by `conformance/independent/20260910-private-rc/verify_row35.py`. All three transmit and receive; both devices receive Windows; the first selected session survives a competing ACCEPT and migrates with explicit policy. Windows is an AP contention participant only. Later stress cells remain informative, including the failed 120-second recheck. Candidate-profile caveats and public review remain separate. | diff --git a/releases/v1.0.0/EVIDENCE_INDEX.json b/releases/v1.0.0/EVIDENCE_INDEX.json index 98bfda8..6337245 100644 --- a/releases/v1.0.0/EVIDENCE_INDEX.json +++ b/releases/v1.0.0/EVIDENCE_INDEX.json @@ -2,57 +2,57 @@ "generated_by": "mcl-core/tools/build-release-bundle.sh", "version": "v1.0.0", "source_commits": { - "mcl-core": "7e75f279c9ae298d16f7185d9bee3f78f678e33b", - "mcl-wire": "415f110e55ed00ddd9c7e4c2c6a241dcdfb17a6e", - "mcl-link": "59214bc1c65295a1cbd0940af3ba223cef4f1b7c", - "mcl-sdk": "3fd3b931d66ab9f3d487091b8fb60b8df4155f54", - "mcl-ap": "686908093cc4f0ca04a295492e81b9c8d5c2945e", - "mcl-ip": "adbe2e64db7ffb7c0b7419ea77cc552d8154913c", - "mcl-ble": "9d35ff05e3ffa83292f71e59f22cd45214ae93fd", - "mcl-uwb": "4ddd18bcf39f1e6778f76ea4572ef53c3e30fe3c" + "mcl-core": "03ffbf21e6106422f649e98a2e7aa0b00564cd93", + "mcl-wire": "01168748425546627a7245ee31d0fc3473237f06", + "mcl-link": "57096d964a261b34b77d2f6860fc89c9b12d2dff", + "mcl-sdk": "125461325d99924d735c9ae1057151f68fd0b3df", + "mcl-ap": "07bd494f83fbc2567ee377c4b4563c429551f5f1", + "mcl-ip": "26f37a79fa24af0ea8e8cf5d86ac2794c4076047", + "mcl-ble": "33d6a8a43d40ce0513e1924fbe8d5679b1302d23", + "mcl-uwb": "a56a86b9ea919cdbb6062cab02cdd60a4bb55609" }, "claims": [ { "claim": "continuity_104_migrations", "path": "mcl-sdk/evidence/e4-dual-transport-migration-20260903/README.md", "sha256": "7e9103ff53a9afb1391daf4455385f73e4932ebdf87347b7807b98c2894f0ace", - "repository_commit": "3fd3b931d66ab9f3d487091b8fb60b8df4155f54" + "repository_commit": "125461325d99924d735c9ae1057151f68fd0b3df" }, { "claim": "continuity_raw", "path": "mcl-sdk/evidence/e4-dual-transport-migration-20260903/host-output.txt", "sha256": "d6c0216499824cc2ca591adcfbaa0c38d56a298209be29a748a02dbb6bcbd194", - "repository_commit": "3fd3b931d66ab9f3d487091b8fb60b8df4155f54" + "repository_commit": "125461325d99924d735c9ae1057151f68fd0b3df" }, { "claim": "embedded_wire1_link1_physical", "path": "mcl-ap/experiments/008-embedded-node/README.md", "sha256": "57a635a92f11a96d8d7dadda3671a6f2010470c1ef3e41b8407f490ae7a0644f", - "repository_commit": "686908093cc4f0ca04a295492e81b9c8d5c2945e" + "repository_commit": "07bd494f83fbc2567ee377c4b4563c429551f5f1" }, { "claim": "embedded_wire1_link1_digests", "path": "mcl-ap/experiments/008-embedded-node/evidence/e4-node-board-to-host-frame-20260904/SHA256SUMS.txt", "sha256": "233c79864974e39f7d8118ed67e190948f5fa182eeac16499ce12daf8152432b", - "repository_commit": "686908093cc4f0ca04a295492e81b9c8d5c2945e" + "repository_commit": "07bd494f83fbc2567ee377c4b4563c429551f5f1" }, { "claim": "physical_campaign_digests", "path": "mcl-sdk/hardware/dfr1154-autonomous-node/runs/20260909-contention-closure/SHA256SUMS.txt", "sha256": "2fb91363516c26bfdba703b8eb7d200292c22d908e228e6e6333d2c204bc1923", - "repository_commit": "3fd3b931d66ab9f3d487091b8fb60b8df4155f54" + "repository_commit": "125461325d99924d735c9ae1057151f68fd0b3df" }, { "claim": "row35", "path": "mcl-core/conformance/independent/20260910-private-rc/ROW35.json", "sha256": "15a86cd97d3a27a9bb8d1042c01fa34c782e8fd2a610b3dce555738a6fcd88fd", - "repository_commit": "7e75f279c9ae298d16f7185d9bee3f78f678e33b" + "repository_commit": "03ffbf21e6106422f649e98a2e7aa0b00564cd93" }, { "claim": "row35_verifier", "path": "mcl-core/conformance/independent/20260910-private-rc/verify_row35.py", "sha256": "e9ec451f4cf3262ada27db0f054ebd6300fe923ead0e1b95e13d7acbedf62923", - "repository_commit": "7e75f279c9ae298d16f7185d9bee3f78f678e33b" + "repository_commit": "03ffbf21e6106422f649e98a2e7aa0b00564cd93" } ], "wire_major_qualification": { diff --git a/releases/v1.0.0/SHA256SUMS.txt b/releases/v1.0.0/SHA256SUMS.txt index bd0045b..b2ef403 100644 --- a/releases/v1.0.0/SHA256SUMS.txt +++ b/releases/v1.0.0/SHA256SUMS.txt @@ -6,7 +6,7 @@ 207eed90edb52ea1b81bafdae5a7c9e7a0a319a63939dd821888e54fb8fb4ec0 *mcl-core/LICENSING.md b2ed5e4adcaa336400cc8cb9c2ee18358682a26a58ca0ff012ed3f637ea8d40f *mcl-core/CONTRIBUTING.md dfe844e21b6db6673139254355a9ec3c41e2f412a4df1a79578b046ef45b3deb *mcl-core/governance/V1_SCOPE.md -c78de63e27e7a752ff173a0036623b39b7155107219b9b42491934260136cd6f *mcl-core/governance/RELEASE_GATE_V1.md +413e26e48b5bfa2fce9a2c587b4c7969fb3a2d443a389dc87d60547c54401624 *mcl-core/governance/RELEASE_GATE_V1.md 24e4369b13bf3b2c635f352cf2fb4ee7dd0270dfe6e475b12feb8ca680d70897 *mcl-core/governance/GOVERNANCE.md 696369d8bc76c3f1b00f3e66622f0e5b404641e008fde80c9bad8635413e0ee2 *mcl-core/governance/ARCHITECTURE_CHARTER.md 3cf85cb41a1efe1e7c75c65a420653cdb0bad0a10324b368604e26db3163b396 *mcl-core/governance/REGISTRY_POLICY.md @@ -46,6 +46,6 @@ dae8bf448dd691c703ec6b6f531614242d31e35b81834c1d0d500e30e1b8d465 *mcl-ap/conform 5a2d3a81f168bbbf8b3c57e925dd25f606a78566927a0a791faf7bc4c274598e *mcl-ap/conformance/vectors/07-refuse-truncated.wav 096eac6b0d63663629dbdf5b130f46a50b2577b6e11779f2fb64c8bdfe69f8a4 *mcl-ap/conformance/vectors/08-refuse-no-preamble.wav e294409b36a8ac1893b23336eeab5202d3e84ce4f66c7572aa1589c43d43c1ff *mcl-ap/conformance/vectors/09-refuse-silence.wav -13f89b36134219a6afa606565f86d51c08847c18117959c9201aaf530bf3ba59 *mcl-core/releases/v1.0.0/mcl-developer-sdk.tar.gz -4c30afada6a04d695f53f5053504b4d0b8d512c332bb4222545a979efafef0af *mcl-core/releases/v1.0.0/EVIDENCE_INDEX.json +0689df6132d9054caa0daf9a823ad0e709783c1956e6e605444f1927bed058b6 *mcl-core/releases/v1.0.0/mcl-developer-sdk.tar.gz +8aa8dab6464353e8e257f9742c224d7e31b532852a89c06c09e153b1e6fec692 *mcl-core/releases/v1.0.0/EVIDENCE_INDEX.json 61ac838002640c6e5055fb057b14480e8590af9c78ac1c265d3b4d71c09cf3c2 *mcl-core/releases/v1.0.0/REPRODUCIBILITY.md diff --git a/releases/v1.0.0/commits.txt b/releases/v1.0.0/commits.txt index 5e2c728..1893a05 100644 --- a/releases/v1.0.0/commits.txt +++ b/releases/v1.0.0/commits.txt @@ -1,8 +1,8 @@ -mcl-core 7e75f279c9ae298d16f7185d9bee3f78f678e33b -mcl-wire 415f110e55ed00ddd9c7e4c2c6a241dcdfb17a6e -mcl-link 59214bc1c65295a1cbd0940af3ba223cef4f1b7c -mcl-sdk 3fd3b931d66ab9f3d487091b8fb60b8df4155f54 -mcl-ap 686908093cc4f0ca04a295492e81b9c8d5c2945e -mcl-ip adbe2e64db7ffb7c0b7419ea77cc552d8154913c -mcl-ble 9d35ff05e3ffa83292f71e59f22cd45214ae93fd -mcl-uwb 4ddd18bcf39f1e6778f76ea4572ef53c3e30fe3c +mcl-core 03ffbf21e6106422f649e98a2e7aa0b00564cd93 +mcl-wire 01168748425546627a7245ee31d0fc3473237f06 +mcl-link 57096d964a261b34b77d2f6860fc89c9b12d2dff +mcl-sdk 125461325d99924d735c9ae1057151f68fd0b3df +mcl-ap 07bd494f83fbc2567ee377c4b4563c429551f5f1 +mcl-ip 26f37a79fa24af0ea8e8cf5d86ac2794c4076047 +mcl-ble 33d6a8a43d40ce0513e1924fbe8d5679b1302d23 +mcl-uwb a56a86b9ea919cdbb6062cab02cdd60a4bb55609 diff --git a/releases/v1.0.0/manifest.txt b/releases/v1.0.0/manifest.txt index b170206..2cebe65 100644 --- a/releases/v1.0.0/manifest.txt +++ b/releases/v1.0.0/manifest.txt @@ -1,5 +1,5 @@ MCL v1.0.0 release manifest -built: 2026-09-13T02:30:21Z +built: 2026-09-13T03:27:26Z COMMITS @@ -12,14 +12,14 @@ COMMITS exactly this and recorded a stale mcl-core hash. Stating which entry is which is the honest fix; claiming to know it is not. - mcl-core 7e75f279c9ae298d16f7185d9bee3f78f678e33b - mcl-wire 415f110e55ed00ddd9c7e4c2c6a241dcdfb17a6e - mcl-link 59214bc1c65295a1cbd0940af3ba223cef4f1b7c - mcl-sdk 3fd3b931d66ab9f3d487091b8fb60b8df4155f54 - mcl-ap 686908093cc4f0ca04a295492e81b9c8d5c2945e - mcl-ip adbe2e64db7ffb7c0b7419ea77cc552d8154913c - mcl-ble 9d35ff05e3ffa83292f71e59f22cd45214ae93fd - mcl-uwb 4ddd18bcf39f1e6778f76ea4572ef53c3e30fe3c + mcl-core 03ffbf21e6106422f649e98a2e7aa0b00564cd93 + mcl-wire 01168748425546627a7245ee31d0fc3473237f06 + mcl-link 57096d964a261b34b77d2f6860fc89c9b12d2dff + mcl-sdk 125461325d99924d735c9ae1057151f68fd0b3df + mcl-ap 07bd494f83fbc2567ee377c4b4563c429551f5f1 + mcl-ip 26f37a79fa24af0ea8e8cf5d86ac2794c4076047 + mcl-ble 33d6a8a43d40ce0513e1924fbe8d5679b1302d23 + mcl-uwb a56a86b9ea919cdbb6062cab02cdd60a4bb55609 WHAT THIS RELEASE CONTAINS diff --git a/releases/v1.0.0/mcl-developer-sdk.tar.gz b/releases/v1.0.0/mcl-developer-sdk.tar.gz index d0b2ad8..5fc5882 100644 Binary files a/releases/v1.0.0/mcl-developer-sdk.tar.gz and b/releases/v1.0.0/mcl-developer-sdk.tar.gz differ