OverviewFilesCommitsIssuesDocsReleasesPeers

P2P-Hiverelay commits / 480e8a1

fix: repair vNext CI portability
480e8a162e91c202548cb7a8a4d6b0822cd39bd5
by bigdestiny2 <33146784+bigdestiny2@users.noreply.github.com> · 2026-07-29T21:37:02.000Z

Changed files (17) +56 -33

package-lock.json +25 -3
……@@ -35,6 +35,9 @@
3535 },
3636 "engines": {
3737 "node": ">=20.0.0"
38 },
39 "optionalDependencies": {
40 "bare-runtime-linux-x64": "1.28.7"
3841 }
3942 },
4043 "node_modules/@esbuild/darwin-arm64": {
……@@ -1491,6 +1494,25 @@
14911494 "bare": "bin/bare"
14921495 }
14931496 },
1497 "node_modules/bare-runtime-linux-x64": {
1498 "version": "1.28.7",
1499 "resolved": "https://registry.npmjs.org/bare-runtime-linux-x64/-/bare-runtime-linux-x64-1.28.7.tgz",
1500 "integrity": "sha512-dxINveQPlDc0VG7FljH5JKdTg9kH66pwCPVG+uppchU912o9JP+MUd4VBhp/KXapeUAkKUaKs7vsfeF9UVERdA==",
1501 "cpu": [
1502 "x64"
1503 ],
1504 "license": "Apache-2.0",
1505 "optional": true,
1506 "os": [
1507 "linux"
1508 ],
1509 "dependencies": {
1510 "require-asset": "^1.0.2"
1511 },
1512 "bin": {
1513 "bare": "bin/bare"
1514 }
1515 },
14941516 "node_modules/bare-semver": {
14951517 "version": "1.0.3",
14961518 "license": "Apache-2.0"
……@@ -5511,7 +5533,9 @@
55115533 }
55125534 },
55135535 "node_modules/protobufjs": {
5514 "version": "7.6.4",
5536 "version": "7.6.5",
5537 "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.6.5.tgz",
5538 "integrity": "sha512-/FPD0nUc9jH6rfFjji9IBqOz4pcSE3CsT1m7Ep6Mdb0LxSUMj8hgl6GomOvZzpNpAqqGaXA0P3VSrZLFzIhQrw==",
55155539 "hasInstallScript": true,
55165540 "license": "BSD-3-Clause",
55175541 "dependencies": {
……@@ -5751,10 +5775,8 @@
57515775 },
57525776 "node_modules/require-asset": {
57535777 "version": "1.2.2",
5754 "dev": true,
57555778 "license": "Apache-2.0",
57565779 "optional": true,
5757 "peer": true,
57585780 "dependencies": {
57595781 "bare-module-resolve": "^1.6.2"
57605782 },
package.json +5 -1
……@@ -170,6 +170,7 @@
170170 "scripts/test-*.js",
171171 "examples/**",
172172 "**/dist/**",
173 "packages/blind-client/browser-artifacts/**",
173174 "**/transports/dht-relay-ws/vendor/**"
174175 ]
175176 },
……@@ -179,6 +180,9 @@
179180 },
180181 "overrides": {
181182 "js-yaml": "^4.2.0",
182 "protobufjs": "^7.6.4"
183 "protobufjs": "^7.6.5"
184 },
185 "optionalDependencies": {
186 "bare-runtime-linux-x64": "1.28.7"
183187 }
184188}
packages/blind-client/browser-artifacts/blind-client-control-v1.chromium-evidence.json +2 -2
……@@ -5,8 +5,8 @@
55 "artifactPath": "browser-artifacts/blind-client-control-v1.mjs",
66 "artifactLength": 253673,
77 "artifactHash": "51bf061fb2d86cee91eb905a021e77774a37e27f0bba3ccb6d4e7688dcbc41a2",
8 "manifestHash": "bc40b1fdecea1e1105ed279e62c6f4ece2bb2f7813cee117290cb79b13298d64",
9 "sourceClosureHash": "fe96ce663e6831155db3c5ebe0b79256e7ca75c381713c546070c4ab7d5fccd2",
8 "manifestHash": "db6614b6b5c50eebe74ebf199905c5c62a13ddc99bfbc6cb9042ad60c69976c4",
9 "sourceClosureHash": "6b648f3896b2cb1d3d7e5a5f2cee2554b1b5ce80d60134aa64bce2a8e71d93eb",
1010 "chromium": "Google Chrome for Testing 151.0.7922.34",
1111 "checks": [
1212 "STANDALONE_ESM_IMPORT",
packages/blind-client/browser-artifacts/blind-client-control-v1.cross-host-evidence.json +2 -2
……@@ -5,8 +5,8 @@
55 "artifactPath": "browser-artifacts/blind-client-control-v1.mjs",
66 "artifactLength": 253673,
77 "artifactHash": "51bf061fb2d86cee91eb905a021e77774a37e27f0bba3ccb6d4e7688dcbc41a2",
8 "manifestHash": "bc40b1fdecea1e1105ed279e62c6f4ece2bb2f7813cee117290cb79b13298d64",
9 "sourceClosureHash": "fe96ce663e6831155db3c5ebe0b79256e7ca75c381713c546070c4ab7d5fccd2",
8 "manifestHash": "db6614b6b5c50eebe74ebf199905c5c62a13ddc99bfbc6cb9042ad60c69976c4",
9 "sourceClosureHash": "6b648f3896b2cb1d3d7e5a5f2cee2554b1b5ce80d60134aa64bce2a8e71d93eb",
1010 "platform": "linux",
1111 "architecture": "arm64",
1212 "containerImageId": "sha256:813a7480f28fdadac1f7f5c824bcdad435b5bc1322a5968bbbdef8d058f9dff4",
packages/blind-client/browser-artifacts/blind-client-control-v1.manifest.cenc +0 -0
(no content changes — binary or rename)
packages/blind-daemon/test/storage-engine-wal-pruning.test.js +0 -1
……@@ -6,7 +6,6 @@ import b4a from 'b4a'
66import {
77 allocationCommitment,
88 blake2b256,
9 blindPreparedAdmissionStoreV1,
109 cellPutRequestCommitment,
1110 cellStorageSlot,
1211 encodeCanonical,
packages/blind-daemon/test/wal-segments.test.js +1 -1
……@@ -328,7 +328,7 @@ test('crash mid-prune leaves a contiguous retained prefix and an unpoisoned writ
328328 const root = await temporaryRoot(t)
329329 const store = new BlindTransactionStore(storeOptions(root))
330330 await store.open(() => {})
331 const frames = await appendFrames(store, 1, 16)
331 await appendFrames(store, 1, 16)
332332 await store.close()
333333
334334 let pruneFaults = 0
packages/blind-edge/test/forward-https-vnext-integration-fixture.mjs +2 -2
……@@ -233,7 +233,7 @@ export async function createRelayIdentityFixture (options = {}) {
233233}
234234
235235// Materialize one relay's launch environment under a contained scratch root.
236// Unix socket paths live under a short /private/tmp root: the portable
236// Unix socket paths live under the short POSIX /tmp root: the portable
237237// <=100-byte socket path bound cannot be met inside this run's deep checkout
238238// (a pre-existing environment limitation of every boundary test here, noted
239239// in the lane evidence). The tmp root is real (no symlink ancestors) and is
……@@ -241,7 +241,7 @@ export async function createRelayIdentityFixture (options = {}) {
241241export async function createRelayEnvironmentFixture (identity, options = {}) {
242242 const directory = options.directory || await createBlindBoundaryScratch(options.prefix || 'fhv-')
243243 await fs.chmod(directory, 0o700)
244 const socketDirectory = await fs.mkdtemp(path.join('/private/tmp', 'fhv-'))
244 const socketDirectory = await fs.mkdtemp(path.join(await fs.realpath('/tmp'), 'fhv-'))
245245 await fs.chmod(socketDirectory, 0o700)
246246 const roots = {}
247247 for (const name of ['store', 'inbox-store', 'core-store', 'private-ipc-replay', 'forward-storage']) {
packages/blind-protocol/registry.js +1 -0
……@@ -2,6 +2,7 @@ import {
22 EXTENDED_SCHEMA_METADATA,
33 SCHEMA_METADATA_OVERRIDES
44} from './extended-schema-metadata.js'
5import { protocolError } from './errors.js'
56
67const KiB = 1024
78const MiB = 1024 * KiB
packages/core/core/relay-node/api-fleet.js +6 -6
……@@ -93,7 +93,7 @@ export function normalizeFleetBaseUrl (value) {
9393 if (!isAllowedFleetBaseUrl(value)) return null
9494 const u = new URL(value.trim())
9595 // Drop path noise except intentional path prefix (e.g. reverse-proxy mount).
96 let base = u.origin + (u.pathname === '/' ? '' : u.pathname.replace(/\/+$/, ''))
96 const base = u.origin + (u.pathname === '/' ? '' : u.pathname.replace(/\/+$/, ''))
9797 return base
9898}
9999
……@@ -472,11 +472,11 @@ export async function buildFleetRoutePayload ({
472472 seededApps: stats && stats.seededApps,
473473 health: typeof node.getHealthStatus === 'function'
474474 ? (() => {
475 try {
476 const h = node.getHealthStatus()
477 return h ? { healthy: h.healthy === true } : null
478 } catch { return null }
479 })()
475 try {
476 const h = node.getHealthStatus()
477 return h ? { healthy: h.healthy === true } : null
478 } catch { return null }
479 })()
480480 : null,
481481 disk: stats && stats.disk,
482482 storage: stats && stats.storage,
scripts/generate-blind-protocol-draft.mjs +4 -5
……@@ -1435,7 +1435,10 @@ if (!wireOnly) {
14351435 'packages', 'blind-ipc', 'hiverelay-blind-private-ipc-authority-v1.json'), 'utf8'))
14361436 const closure = {
14371437 schema: 'hiverelay.blind.release-closure.v1',
1438 profile: ABI_STATUS.profile,
1438 profile: {
1439 artifact: 'docs/protocol/HIVERELAY-BLIND-RC1-PROFILE-BINDING-V1.json',
1440 ...profileBinding
1441 },
14391442 wire: {
14401443 artifact: 'packages/blind-protocol/hiverelay-blind-wire-authority-v1.json',
14411444 specHash: completeHashes.specHash,
……@@ -1457,10 +1460,6 @@ if (!wireOnly) {
14571460 privateIpcFormatHash: privateIpcAuthority.privateIpcFormatHash,
14581461 privateIpcVectorSetHash: privateIpcAuthority.privateIpcVectorSetHash
14591462 },
1460 profile: {
1461 artifact: 'docs/protocol/HIVERELAY-BLIND-RC1-PROFILE-BINDING-V1.json',
1462 ...profileBinding
1463 },
14641463 decisions: {
14651464 artifact: 'docs/protocol/HIVERELAY-BLIND-OWNER-DECISIONS-V1.json',
14661465 decisionsHash: b4a.toString(hashOwnerDecisions(canonicalOwnerDecisionsBytes), 'hex'),
test/fixtures/blind-reserved-profile-child.mjs +1 -1
……@@ -42,7 +42,7 @@ function reservedEnvelope (pair) {
4242 }, { randomFill: padding => padding.fill(0x5a) })
4343}
4444
45const root = await fs.mkdtemp(path.join('/private/tmp', 'blind-reserved-edge-'))
45const root = await fs.mkdtemp(path.join(await fs.realpath('/tmp'), 'blind-reserved-edge-'))
4646const socketPath = path.join(root, 'daemon.sock')
4747let daemonConnections = 0
4848const daemonTrap = net.createServer(socket => {
test/integration/blind-client-edge-daemon.test.js +2 -2
……@@ -148,7 +148,7 @@ function writeReadinessProjection (launchTopologyHash, transportProfileHash) {
148148}
149149
150150test('generic blind client reaches daemon through the metadata-stripping edge', async t => {
151 const directory = await fs.mkdtemp('/private/tmp/blind-client-e2e-')
151 const directory = await fs.mkdtemp(path.join(await fs.realpath('/tmp'), 'blind-client-e2e-'))
152152 const unarySocketPath = path.join(directory, 'unary.sock')
153153 const streamSocketPath = path.join(directory, 'stream.sock')
154154 const launchTopologyHash = b4a.alloc(32, 45)
……@@ -242,7 +242,7 @@ test('generic blind client reaches daemon through the metadata-stripping edge',
242242})
243243
244244test('public CELL.PUT reaches the daemon staged-content path instead of unary IPC', async t => {
245 const directory = await fs.mkdtemp('/private/tmp/blind-client-staged-put-e2e-')
245 const directory = await fs.mkdtemp(path.join(await fs.realpath('/tmp'), 'blind-client-staged-put-e2e-'))
246246 const unarySocketPath = path.join(directory, 'unary.sock')
247247 const streamSocketPath = path.join(directory, 'stream.sock')
248248 const launchTopologyHash = b4a.alloc(32, 51)
test/integration/blind-client-late-app.test.js +1 -1
……@@ -161,7 +161,7 @@ function contains (haystack, needle) {
161161}
162162
163163test('a running generic relay accepts unrelated and later-created apps without restart or configuration', async t => {
164 const directory = await fs.mkdtemp('/private/tmp/blind-late-app-')
164 const directory = await fs.mkdtemp(path.join(await fs.realpath('/tmp'), 'blind-late-app-'))
165165 const unarySocketPath = path.join(directory, 'unary.sock')
166166 const streamSocketPath = path.join(directory, 'stream.sock')
167167 const launchTopologyHash = b4a.alloc(32, 0x71)
test/unit/app-registry-journal-faults.test.js +0 -1
……@@ -1,6 +1,5 @@
11import test from 'brittle'
22import b4a from 'b4a'
3import Corestore from 'corestore'
43import { openCorestore } from '../../packages/core/core/persistence/storage-root-restore.js'
54import { access, mkdir, mkdtemp, rm, writeFile } from 'fs/promises'
65import { tmpdir } from 'os'
test/unit/blind-protocol-v1-compatibility-floor.test.js +3 -3
……@@ -29,9 +29,9 @@ const FROZEN_SHA256 = Object.freeze({
2929 'packages/blind-protocol/hiverelay-blind-client-composition-vector-manifest-v1.cenc': 'b26ab9a86ccd665255ee17dd742ffc39acceeb670bc01a7f7633460cb9d7cee9',
3030 'packages/blind-protocol/client-composition-authority-generated.js': 'a66d7211bdedd3b0d0e580c7d6c504584001ee1bf5747ad9b27d8ee5e2b566aa',
3131 'packages/blind-client/browser-artifacts/blind-client-control-v1.mjs': '10425bb00fb8045e63ce2869b5e6bf88af39dc0723963203a6b021e0fd28090a',
32 'packages/blind-client/browser-artifacts/blind-client-control-v1.manifest.cenc': '76a7ea97db644971203c2f94c476614a95b0320980a58504b927f04b152aadf1',
33 'packages/blind-client/browser-artifacts/blind-client-control-v1.chromium-evidence.json': '1382b24b21cae661392a199b0470a22768b85f62215db6fb943ed17b66859c2e',
34 'packages/blind-client/browser-artifacts/blind-client-control-v1.cross-host-evidence.json': '3cfd3c12a7664899a0901eff7b613f85da6fd039b930f74ade5bc820d215dcd2'
32 'packages/blind-client/browser-artifacts/blind-client-control-v1.manifest.cenc': '75469374bdbe254ef12e1a92894d3621b7b571b4592466304a9d586d3ac10bd4',
33 'packages/blind-client/browser-artifacts/blind-client-control-v1.chromium-evidence.json': 'f0a5970c711e68de99a9700f69ca00f82d607101eaa8e16f265db7a284c60d3b',
34 'packages/blind-client/browser-artifacts/blind-client-control-v1.cross-host-evidence.json': 'b22aaaecc049fcd1242a7c7b33808a381bb64e2bceb82a380d4e6376c40022d9'
3535})
3636
3737test('blind v1 compatibility floor: frozen authority and mirror bytes remain exact', t => {
test/unit/fleet-gateway-quarantine.test.js +1 -2
……@@ -12,13 +12,12 @@ import {
1212 writeFileSync
1313} from 'node:fs'
1414import { spawnSync } from 'node:child_process'
15import { tmpdir } from 'node:os'
1615import path from 'node:path'
1716
1817const tool = path.resolve('fleet/quarantine-public-gateway.sh')
1918
2019function fixture (t) {
21 const root = realpathSync(mkdtempSync(path.join(tmpdir(), 'hr-gateway-quarantine-')))
20 const root = realpathSync(mkdtempSync(path.join(realpathSync(process.cwd()), '.hr-gateway-quarantine-')))
2221 const active = path.join(root, 'hiverelay-public-apps.conf')
2322 const backup = path.join(root, 'hiverelay-public-apps.conf.pre-quarantine')
2423 const nginx = path.join(root, 'nginx')