From 2312e49484f4f8f2b572420d9f2a8d809cb89a9e Mon Sep 17 00:00:00 2001 From: midiakiasat Date: Fri, 10 Jul 2026 22:59:45 +0200 Subject: [PATCH] Bind CONTROL v0.2.48 backlink to Org profile --- README.md | 16 +++++ package.json | 6 +- ...ROFILE_MOVE101_CONTROL_V0248_BACKLINK.json | 36 ++++++++++ ...profile-move101-control-v0248-backlink.mjs | 68 +++++++++++++++++++ ...le-move101-control-v0248-backlink.test.mjs | 10 +++ 5 files changed, 134 insertions(+), 2 deletions(-) create mode 100644 public/receipts/ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK.json create mode 100755 scripts/verify-org-profile-move101-control-v0248-backlink.mjs create mode 100644 tests/org-profile-move101-control-v0248-backlink.test.mjs diff --git a/README.md b/README.md index cb12a63..448613a 100644 --- a/README.md +++ b/README.md @@ -719,3 +719,19 @@ Org profile binds CONTROL v0.2.47 as a public backlink. - No current production claim: true - No starship claim: true - No physical production instructions: true + + +## Move 101 — Org profile CONTROL v0.2.48 backlink + +Org profile binds CONTROL v0.2.48 as a public surface backlink. + +- CONTROL release: https://github.com/ANTIMATTERIUM/CONTROL/releases/tag/v0.2.48-antimatterium-control-move99-surface-closure +- CONTROL CI: https://github.com/ANTIMATTERIUM/CONTROL/actions/runs/29122920642 +- CONTROL closure ID: 5b65cc86664000ddedcd539e13ad893e6c88e8912f5785a0163c408bb1624132 +- Org profile package: @antimatterium/org-profile@0.0.57 +- Move 101 backlink ID: 29e68dcf4d7f831822f5313b6d5b3aebd803dd00b90563b06006363928db4187 +- Short public tag required: true +- No local root required: true +- No current production claim: true +- No starship claim: true +- No physical production instructions: true diff --git a/package.json b/package.json index a328aef..10e2403 100644 --- a/package.json +++ b/package.json @@ -89,8 +89,10 @@ "verify:move97-control-v0246-backlink": "node scripts/verify-org-profile-move97-control-v0246-backlink.mjs", "test:move97-control-v0246-backlink": "node --test tests/org-profile-move97-control-v0246-backlink.test.mjs", "verify:move99-control-v0247-backlink": "node scripts/verify-org-profile-move99-control-v0247-backlink.mjs", - "test:move99-control-v0247-backlink": "node --test tests/org-profile-move99-control-v0247-backlink.test.mjs" + "test:move99-control-v0247-backlink": "node --test tests/org-profile-move99-control-v0247-backlink.test.mjs", + "verify:move101-control-v0248-backlink": "node scripts/verify-org-profile-move101-control-v0248-backlink.mjs", + "test:move101-control-v0248-backlink": "node --test tests/org-profile-move101-control-v0248-backlink.test.mjs" }, "type": "module", - "version": "0.0.56" + "version": "0.0.57" } diff --git a/public/receipts/ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK.json b/public/receipts/ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK.json new file mode 100644 index 0000000..f741db3 --- /dev/null +++ b/public/receipts/ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK.json @@ -0,0 +1,36 @@ +{ + "protocol": "ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK", + "move": 101, + "surface": { + "name": "Org profile", + "repository": "ANTIMATTERIUM/.github", + "package": "@antimatterium/org-profile", + "version": "0.0.57", + "receipt_path": "public/receipts/ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK.json", + "verifier": "scripts/verify-org-profile-move101-control-v0248-backlink.mjs", + "test": "tests/org-profile-move101-control-v0248-backlink.test.mjs" + }, + "source_control": { + "package": "@antimatterium/control", + "version": "0.2.48", + "release": "https://github.com/ANTIMATTERIUM/CONTROL/releases/tag/v0.2.48-antimatterium-control-move99-surface-closure", + "release_tag": "v0.2.48-antimatterium-control-move99-surface-closure", + "ci_run": "https://github.com/ANTIMATTERIUM/CONTROL/actions/runs/29122920642", + "closure_id": "5b65cc86664000ddedcd539e13ad893e6c88e8912f5785a0163c408bb1624132", + "main_sha": "ee9f30cd0b9378a8bf34d0e0ac285c282e310901", + "closure_kind": "move100_control_public_surface_backlink_fanout_closure" + }, + "constraints": { + "short_public_tag_required": true, + "no_local_root_required": true, + "no_current_production_claim": true, + "no_starship_claim": true, + "no_physical_production_instructions": true + }, + "backlink": { + "id": "29e68dcf4d7f831822f5313b6d5b3aebd803dd00b90563b06006363928db4187", + "kind": "move101_surface_control_v0248_backlink", + "binds_control_release": "https://github.com/ANTIMATTERIUM/CONTROL/releases/tag/v0.2.48-antimatterium-control-move99-surface-closure", + "binds_control_closure_id": "5b65cc86664000ddedcd539e13ad893e6c88e8912f5785a0163c408bb1624132" + } +} diff --git a/scripts/verify-org-profile-move101-control-v0248-backlink.mjs b/scripts/verify-org-profile-move101-control-v0248-backlink.mjs new file mode 100755 index 0000000..da628f9 --- /dev/null +++ b/scripts/verify-org-profile-move101-control-v0248-backlink.mjs @@ -0,0 +1,68 @@ +#!/usr/bin/env node +import fs from "node:fs"; +import crypto from "node:crypto"; +import assert from "node:assert/strict"; + +const receiptPath = "public/receipts/ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK.json"; +const expected = { + "protocol": "ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK", + "move": 101, + "surface": { + "name": "Org profile", + "repository": "ANTIMATTERIUM/.github", + "package": "@antimatterium/org-profile", + "version": "0.0.57", + "receipt_path": "public/receipts/ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK.json", + "verifier": "scripts/verify-org-profile-move101-control-v0248-backlink.mjs", + "test": "tests/org-profile-move101-control-v0248-backlink.test.mjs" + }, + "source_control": { + "package": "@antimatterium/control", + "version": "0.2.48", + "release": "https://github.com/ANTIMATTERIUM/CONTROL/releases/tag/v0.2.48-antimatterium-control-move99-surface-closure", + "release_tag": "v0.2.48-antimatterium-control-move99-surface-closure", + "ci_run": "https://github.com/ANTIMATTERIUM/CONTROL/actions/runs/29122920642", + "closure_id": "5b65cc86664000ddedcd539e13ad893e6c88e8912f5785a0163c408bb1624132", + "main_sha": "ee9f30cd0b9378a8bf34d0e0ac285c282e310901", + "closure_kind": "move100_control_public_surface_backlink_fanout_closure" + }, + "constraints": { + "short_public_tag_required": true, + "no_local_root_required": true, + "no_current_production_claim": true, + "no_starship_claim": true, + "no_physical_production_instructions": true + }, + "backlinkId": "29e68dcf4d7f831822f5313b6d5b3aebd803dd00b90563b06006363928db4187" +}; +const receipt = JSON.parse(fs.readFileSync(receiptPath, "utf8")); + +assert.equal(receipt.protocol, expected.protocol); +assert.equal(receipt.move, expected.move); +assert.deepEqual(receipt.surface, expected.surface); +assert.deepEqual(receipt.source_control, expected.source_control); +assert.deepEqual(receipt.constraints, expected.constraints); +assert.equal(receipt.backlink.kind, "move101_surface_control_v0248_backlink"); +assert.equal(receipt.backlink.binds_control_release, expected.source_control.release); +assert.equal(receipt.backlink.binds_control_closure_id, expected.source_control.closure_id); + +const { backlink, ...canonical } = receipt; +const computed = crypto.createHash("sha256").update(JSON.stringify(canonical)).digest("hex"); +assert.equal(backlink.id, computed); +assert.equal(backlink.id, expected.backlinkId); + +const serialized = JSON.stringify(receipt); +const localUserRootToken = ["/", "Users", "/"].join(""); +const localDownloadsAppsToken = ["Downloads", "Apps"].join("/"); +assert.equal(serialized.includes(localUserRootToken), false); +assert.equal(serialized.includes(localDownloadsAppsToken), false); + +console.log("ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK_VERIFY_PASS=true"); +console.log("ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK_CONTROL_V0248_RELEASE_BOUND=true"); +console.log("ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK_CONTROL_V0248_MEMBER=true"); +console.log("ANTIMATTERIUM_SHORT_PUBLIC_TAG_REQUIRED=true"); +console.log("ANTIMATTERIUM_NO_LOCAL_ROOT_REQUIRED=true"); +console.log("ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK_ID=" + backlink.id); +console.log("NO_CURRENT_PRODUCTION_CLAIM=true"); +console.log("NO_STARSHIP_CLAIM=true"); +console.log("NO_PHYSICAL_PRODUCTION_INSTRUCTIONS=true"); diff --git a/tests/org-profile-move101-control-v0248-backlink.test.mjs b/tests/org-profile-move101-control-v0248-backlink.test.mjs new file mode 100644 index 0000000..52a3843 --- /dev/null +++ b/tests/org-profile-move101-control-v0248-backlink.test.mjs @@ -0,0 +1,10 @@ +import test from "node:test"; +import assert from "node:assert/strict"; +import { spawnSync } from "node:child_process"; + +test("Org profile Move 101 verifier receipt is stable", () => { + const result = spawnSync(process.execPath, ["scripts/verify-org-profile-move101-control-v0248-backlink.mjs"], { encoding: "utf8" }); + assert.equal(result.status, 0, result.stderr || result.stdout); + assert.match(result.stdout, /ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK_VERIFY_PASS=true/); + assert.match(result.stdout, /ANTIMATTERIUM_ORG_PROFILE_MOVE101_CONTROL_V0248_BACKLINK_ID=29e68dcf4d7f831822f5313b6d5b3aebd803dd00b90563b06006363928db4187/); +});