Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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"
}
}
Original file line number Diff line number Diff line change
@@ -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 `<repo-root>`,
`<user-home>`, `<builder>` and `<workstation>`. No gate name, result, count or
exit status was touched.
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
=== MCL final go/no-go audit
=== date 2026-09-13T03:23:53Z user <builder>

=== 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
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
=== MCL Public Candidate seal: MSVC gates
=== date 2026-09-13T03:13:27Z


=== MSVC /W4 /WX, all eight repositories ===
root: <repo-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
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
=== MCL final private-closure POSIX rehearsal
=== date 2026-09-13T03:15:37Z
=== user <builder> uid=1000
=== tmpdir <user-home>/.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: <repo-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
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
=== MCL final release bundle reconstruction (--verify v1.0.0)
=== date 2026-09-13T03:24:58Z user <builder>

=== 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: <user-home>/.mcl-final-tmp2/tmp.3RqMLh5Yen/build
Test project <user-home>/.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
Loading
Loading