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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,5 +55,5 @@ Las evidencias HTML exactas de inscripción permanecen en `legal/terms/registrat
`legal/terms/registration-v4.html`; `/politica/` refleja la versión vigente y cada URL/hash
inmutable se coordina con el Bot antes del cutover.
La autorización vigente del bot de Harmonic Myth Projection está en
`legal/terms/bot-v9.pdf`; `bot-v6.pdf`, `bot-v7.pdf` y `bot-v8.pdf` permanecen como evidencia
histórica y no se sobrescriben.
`legal/terms/bot-v10.pdf`; `bot-v6.pdf`, `bot-v7.pdf`, `bot-v8.pdf` y `bot-v9.pdf` permanecen como
evidencia histórica y no se sobrescriben.
Binary file added legal/terms/bot-v10.pdf
Binary file not shown.
11 changes: 10 additions & 1 deletion tests/registration-pages.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -253,11 +253,20 @@ test('registration-v4 discloses the three consent-gated Meta events without PII'
assert.match(policy, /an invitation, a complimentary place or free access is not enough/);
});

test('bot-v9 PDF remains byte-exact as the active Myth Bot authorization', () => {
test('bot-v9 PDF remains byte-exact as historical Myth Bot authorization', () => {
const bytes = fs.readFileSync(path.join(root, 'legal/terms/bot-v9.pdf'));
assert.equal(
crypto.createHash('sha256').update(bytes).digest('hex'),
'aae264d8f1e2e5cdf398cd1496a64323440c70e57575d4461ae40ee7aebe04d0'
);
assert.match(bytes.subarray(0, 5).toString('ascii'), /^%PDF-/);
});

test('bot-v10 PDF remains byte-exact as the active email-only Myth Bot authorization', () => {
const bytes = fs.readFileSync(path.join(root, 'legal/terms/bot-v10.pdf'));
assert.equal(
crypto.createHash('sha256').update(bytes).digest('hex'),
'b7625a57c53f8d1bfbc4f8014d2e0cd0bc97c2414b62383c1f2e8b3217b3e8f6'
);
assert.match(bytes.subarray(0, 5).toString('ascii'), /^%PDF-/);
});
Loading