mirror of
https://github.com/stablyai/orca.git
synced 2026-10-05 00:02:33 +00:00
* ci(daemon): gate PRs on daemon protocol crossing from the newest release Lands daemon-protocol-facts.mjs from the Windows update diagnostic branch with a stricter parser, and adds check-daemon-protocol-crossing.mjs (rule R1): the working tree must attach the newest release tag's daemon. Rollback crossing is reported only. Runs in the cross-version-wire job, which already has full tags; tag selection moves to config/scripts/stable-release-tags.mjs so both use one rule. * feat(persistence): run profile backups in the worker whenever its entry is bundled * refactor(orcad): make profile and native preflight runtime-neutral The profile preflight parser now takes the expected runtime identity from the caller (shipped callers pass the pinned Bun identity), and the native preflight is renamed to orcad-runtime-native-preflight with neutral wording. * feat(runtime): pin the Node 24.21.0 server runtime with an offline CI check Add src/shared/node-runtime-pin.ts (NODE_RUNTIME_PIN, SERVER_TARGETS, NODE_RUNTIME_ASSETS for all 8 server targets plus the headers tarball), generated by config/scripts/update-node-runtime-pin.mjs from the nodejs.org and unofficial-builds SHASUMS. check-node-runtime-pin.mjs verifies, with no network, that the pin tracks the locked Electron, matches engines.node's major, and covers exactly SERVER_TARGETS; it runs in the static analysis job. ORCAD_BUN_TARGETS consumers now read SERVER_TARGETS so there is one target list; orcad's Bun runtime and build output are unchanged. * test(persistence): skip plain-Node backup selection tests in the Bun profile suite * fix(runtime): reject a pinned archive that belongs to another target * ci(daemon): fail PRs that swap a runtime launcher and bump the daemon protocol D7.1 R3: hosting orcad or the daemon on another runtime is not a protocol change, so one PR must not do both. The launcher file list lives in the check script; the allow-runtime-launcher-protocol-bump label overrides it. * feat(orcad): select pinned-Node slots by a .runtime-node marker D7.1 R5: a Node slot names its shared runtimes/node-<sha256>/node through .runtime-node instead of .build-target, so Bun-era clients read it as a legacy slot rather than exiting 78 on a missing bun-runtime. Nothing builds the marker yet. * fix(runtime): load the Node pin without the typeless-module warning check-node-runtime-pin.mjs now requires the pin and takes nodeDistArchiveName from its own module, so it no longer loads the update script's build graph. * fix(orcad): resolve Node slots to the design's runtimes/node-<sha>/bin/node layout --------- Co-authored-by: m4air <m4air@m4airs-Air.localdomain>
20 lines
794 B
JavaScript
20 lines
794 B
JavaScript
// Kept apart from update-node-runtime-pin.mjs so the offline check does not load its build graph.
|
|
|
|
/** Node's platform suffix for each server target; nodejs.org names Windows `win`, not `win32`. */
|
|
export const NODE_DIST_PLATFORMS = {
|
|
'darwin-arm64': 'darwin-arm64',
|
|
'darwin-x64': 'darwin-x64',
|
|
'linux-arm64-glibc': 'linux-arm64',
|
|
'linux-x64-glibc': 'linux-x64',
|
|
'linux-arm64-musl': 'linux-arm64-musl',
|
|
'linux-x64-musl': 'linux-x64-musl',
|
|
'win32-arm64': 'win-arm64',
|
|
'win32-x64': 'win-x64'
|
|
}
|
|
|
|
export function nodeDistArchiveName(version, target) {
|
|
// Why .tar.gz over .tar.xz: every POSIX host can extract gzip; xz is not guaranteed.
|
|
const extension = target.startsWith('win32-') ? 'zip' : 'tar.gz'
|
|
return `node-v${version}-${NODE_DIST_PLATFORMS[target]}.${extension}`
|
|
}
|