openvibers/openvibe.network Commits
openvibe.link: the site says OpenVibe Link and installs openvibe-link (#661)
Changes
@@@ -36,7 +36,7 @@ const esc = (s) => String(s == null ? '' : s).replace(/[&<>"']/g, (c) => ({ '&':/** The install block per OS. The one-liner is for Linux and macOS; Windows gets the release asset and the pair step. */function installBlock(release) {const version = esc(release.version || '');-- const exe = `https://github.com/OpenVibers/OpenVibe.Node/releases/download/${release.version || 'latest'}/openvibe-node-windows-amd64.exe`;++ const exe = `https://github.com/OpenVibers/OpenVibe.Node/releases/download/${release.version || 'latest'}/openvibe-link-windows-amd64.exe`;return `<div class="np-installs"><div class="np-install"><h3>Linux and macOS</h3>@@@ -47,11 +47,11 @@ ${kit.snippet({ code: INSTALL_LINE, id: 'np-install-sh', label: 'Copy the instal<div class="np-install"><h3>Windows</h3><p class="np-fine">Download the binary, then in an Administrator prompt:</p>--${kit.snippet({ code: 'openvibe-node pair <CODE>', id: 'np-install-win', label: 'Copy the pair command' })}--<p class="np-fine"><a href="${esc(exe)}">openvibe-node-windows-amd64.exe</a> from the ${version ? esc(version) : 'latest'} release.</p>++${kit.snippet({ code: 'openvibe-link pair <CODE>', id: 'np-install-win', label: 'Copy the pair command' })}++<p class="np-fine"><a href="${esc(exe)}">openvibe-link-windows-amd64.exe</a> from the ${version ? esc(version) : 'latest'} release; the old <code>openvibe-node</code> name is the same program.</p></div></div>--<p class="np-fine">The program is still called openvibe-node; it becomes openvibe-link in a coming release, and the old name keeps working for a year.</p>`;++<p class="np-fine">The program is <code>openvibe-link</code>. <code>openvibe-node</code> is kept as an alias, so existing installs and scripts keep working.</p>`;}/** The release facts: the version, when it came out, the checksums and the release page. */@@@ -135,7 +135,7 @@ ${releaseBlock(release)}<li><a href="${DOCS}/install.md">Install</a> — every OS, every option, and what the installer does.</li><li><a href="${DOCS}/computer.md">Your computer for your agents</a> — the computer plugin, its levels and the live screen.</li><li><a href="${DOCS}/worker.md">A machine that runs your jobs</a> — the sandbox the job runner uses.</li>--<li><a href="${DOCS}/protocol.md">The protocol</a> — the wire format between the Node and OpenVibe.Bot.</li>++<li><a href="${DOCS}/protocol.md">The protocol</a> — the wire format between Link and OpenVibe.Bot.</li><li><a href="${DOCS}/memory.md">Your memory</a> — what the collectors read and how it is uploaded.</li></ul><p class="np-fine">The source is on <a href="https://github.com/OpenVibers/OpenVibe.Node">GitHub</a>. The installer also lives at <a href="https://openvibe.bot/install">openvibe.bot/install</a>, which keeps working.</p>@@@ -28,7 +28,7 @@ function llmsTxt() {return ['# OpenVibe Link','',-- '> OpenVibe Link is one program (openvibe-node) that runs on your computer, server, phone or robot. It connects out to OpenVibe, needs no open ports, keeps a local kill switch, and does nothing you did not turn on.',++ '> OpenVibe Link is one program (openvibe-link; openvibe-node is its alias) that runs on your computer, server, phone or robot. It connects out to OpenVibe, needs no open ports, keeps a local kill switch, and does nothing you did not turn on.','','## The page','',@@@ -65,12 +65,12 @@ const SHAPED = {assert.ok(html.includes('>Install Link<'), 'the primary button installs Link');assert.ok(html.includes('>The install guide<'), 'and the guide keeps its name');assert.ok(html.includes('curl -fsSL https://openvibe.link/install | sh'), 'the one-line installer uses the new home');-- assert.ok(html.includes('The program is still called openvibe-node; it becomes openvibe-link in a coming release, and the old name keeps working for a year.'), 'the rename is said plainly under the installer');++ assert.ok(html.includes('The program is <code>openvibe-link</code>. <code>openvibe-node</code> is kept as an alias, so existing installs and scripts keep working.'), 'the rename and the alias are said plainly under the installer');assert.ok(html.includes('v9.9.9'), 'the version is on the page');assert.ok(html.includes('2026-11-06'), 'the release date is on the page');assert.ok(html.includes('releases/download/v9.9.9/SHA256SUMS'), 'the checksums are on the page');assert.ok(html.includes('releases/tag/v9.9.9'), 'the release page is on the page');-- assert.ok(html.includes('openvibe-node-windows-amd64.exe'), 'Windows has its own way in');++ assert.ok(html.includes('openvibe-link-windows-amd64.exe'), 'Windows has its own way in');assert.ok(html.includes('openvibe.bot/install'), 'the installer also lives at openvibe.bot/install');assert.ok(html.includes('What it does today'), 'the honest heading stays');for (const [what, needle] of [
@@ -36,7 +36,7 @@ const esc = (s) => String(s == null ? '' : s).replace(/[&<>"']/g, (c) => ({ '&':
@@ -36,7 +36,7 @@ const esc = (s) => String(s == null ? '' : s).replace(/[&<>"']/g, (c) => ({ '&':
/** The install block per OS. The one-liner is for Linux and macOS; Windows gets the release asset and the pair step. */
/** The install block per OS. The one-liner is for Linux and macOS; Windows gets the release asset and the pair step. */
function installBlock(release) {
function installBlock(release) {
const version = esc(release.version || '');
const version = esc(release.version || '');
- const exe = `https://github.com/OpenVibers/OpenVibe.Node/releases/download/${release.version || 'latest'}/openvibe-node-windows-amd64.exe`;
+ const exe = `https://github.com/OpenVibers/OpenVibe.Node/releases/download/${release.version || 'latest'}/openvibe-link-windows-amd64.exe`;
return `<div class="np-installs">
return `<div class="np-installs">
<div class="np-install">
<div class="np-install">
<h3>Linux and macOS</h3>
<h3>Linux and macOS</h3>
@@ -47,11 +47,11 @@ ${kit.snippet({ code: INSTALL_LINE, id: 'np-install-sh', label: 'Copy the instal
@@ -47,11 +47,11 @@ ${kit.snippet({ code: INSTALL_LINE, id: 'np-install-sh', label: 'Copy the instal
<div class="np-install">
<div class="np-install">
<h3>Windows</h3>
<h3>Windows</h3>
<p class="np-fine">Download the binary, then in an Administrator prompt:</p>
<p class="np-fine">Download the binary, then in an Administrator prompt:</p>
-${kit.snippet({ code: 'openvibe-node pair <CODE>', id: 'np-install-win', label: 'Copy the pair command' })}
-<p class="np-fine"><a href="${esc(exe)}">openvibe-node-windows-amd64.exe</a> from the ${version ? esc(version) : 'latest'} release.</p>
+${kit.snippet({ code: 'openvibe-link pair <CODE>', id: 'np-install-win', label: 'Copy the pair command' })}
+<p class="np-fine"><a href="${esc(exe)}">openvibe-link-windows-amd64.exe</a> from the ${version ? esc(version) : 'latest'} release; the old <code>openvibe-node</code> name is the same program.</p>
</div>
</div>
</div>
</div>
-<p class="np-fine">The program is still called openvibe-node; it becomes openvibe-link in a coming release, and the old name keeps working for a year.</p>`;
+<p class="np-fine">The program is <code>openvibe-link</code>. <code>openvibe-node</code> is kept as an alias, so existing installs and scripts keep working.</p>`;
}
}
/** The release facts: the version, when it came out, the checksums and the release page. */
/** The release facts: the version, when it came out, the checksums and the release page. */
@@ -135,7 +135,7 @@ ${releaseBlock(release)}
@@ -135,7 +135,7 @@ ${releaseBlock(release)}
<li><a href="${DOCS}/install.md">Install</a> — every OS, every option, and what the installer does.</li>
<li><a href="${DOCS}/install.md">Install</a> — every OS, every option, and what the installer does.</li>
<li><a href="${DOCS}/computer.md">Your computer for your agents</a> — the computer plugin, its levels and the live screen.</li>
<li><a href="${DOCS}/computer.md">Your computer for your agents</a> — the computer plugin, its levels and the live screen.</li>
<li><a href="${DOCS}/worker.md">A machine that runs your jobs</a> — the sandbox the job runner uses.</li>
<li><a href="${DOCS}/worker.md">A machine that runs your jobs</a> — the sandbox the job runner uses.</li>
-<li><a href="${DOCS}/protocol.md">The protocol</a> — the wire format between the Node and OpenVibe.Bot.</li>
+<li><a href="${DOCS}/protocol.md">The protocol</a> — the wire format between Link and OpenVibe.Bot.</li>
<li><a href="${DOCS}/memory.md">Your memory</a> — what the collectors read and how it is uploaded.</li>
<li><a href="${DOCS}/memory.md">Your memory</a> — what the collectors read and how it is uploaded.</li>
</ul>
</ul>
<p class="np-fine">The source is on <a href="https://github.com/OpenVibers/OpenVibe.Node">GitHub</a>. The installer also lives at <a href="https://openvibe.bot/install">openvibe.bot/install</a>, which keeps working.</p>
<p class="np-fine">The source is on <a href="https://github.com/OpenVibers/OpenVibe.Node">GitHub</a>. The installer also lives at <a href="https://openvibe.bot/install">openvibe.bot/install</a>, which keeps working.</p>
@@ -28,7 +28,7 @@ function llmsTxt() {
@@ -28,7 +28,7 @@ function llmsTxt() {
return [
return [
'# OpenVibe Link',
'# OpenVibe Link',
'',
'',
- '> OpenVibe Link is one program (openvibe-node) that runs on your computer, server, phone or robot. It connects out to OpenVibe, needs no open ports, keeps a local kill switch, and does nothing you did not turn on.',
+ '> OpenVibe Link is one program (openvibe-link; openvibe-node is its alias) that runs on your computer, server, phone or robot. It connects out to OpenVibe, needs no open ports, keeps a local kill switch, and does nothing you did not turn on.',
'',
'',
'## The page',
'## The page',
'',
'',
@@ -65,12 +65,12 @@ const SHAPED = {
@@ -65,12 +65,12 @@ const SHAPED = {
assert.ok(html.includes('>Install Link<'), 'the primary button installs Link');
assert.ok(html.includes('>Install Link<'), 'the primary button installs Link');
assert.ok(html.includes('>The install guide<'), 'and the guide keeps its name');
assert.ok(html.includes('>The install guide<'), 'and the guide keeps its name');
assert.ok(html.includes('curl -fsSL https://openvibe.link/install | sh'), 'the one-line installer uses the new home');
assert.ok(html.includes('curl -fsSL https://openvibe.link/install | sh'), 'the one-line installer uses the new home');
- assert.ok(html.includes('The program is still called openvibe-node; it becomes openvibe-link in a coming release, and the old name keeps working for a year.'), 'the rename is said plainly under the installer');
+ assert.ok(html.includes('The program is <code>openvibe-link</code>. <code>openvibe-node</code> is kept as an alias, so existing installs and scripts keep working.'), 'the rename and the alias are said plainly under the installer');
assert.ok(html.includes('v9.9.9'), 'the version is on the page');
assert.ok(html.includes('v9.9.9'), 'the version is on the page');
assert.ok(html.includes('2026-11-06'), 'the release date is on the page');
assert.ok(html.includes('2026-11-06'), 'the release date is on the page');
assert.ok(html.includes('releases/download/v9.9.9/SHA256SUMS'), 'the checksums are on the page');
assert.ok(html.includes('releases/download/v9.9.9/SHA256SUMS'), 'the checksums are on the page');
assert.ok(html.includes('releases/tag/v9.9.9'), 'the release page is on the page');
assert.ok(html.includes('releases/tag/v9.9.9'), 'the release page is on the page');
- assert.ok(html.includes('openvibe-node-windows-amd64.exe'), 'Windows has its own way in');
+ assert.ok(html.includes('openvibe-link-windows-amd64.exe'), 'Windows has its own way in');
assert.ok(html.includes('openvibe.bot/install'), 'the installer also lives at openvibe.bot/install');
assert.ok(html.includes('openvibe.bot/install'), 'the installer also lives at openvibe.bot/install');
assert.ok(html.includes('What it does today'), 'the honest heading stays');
assert.ok(html.includes('What it does today'), 'the honest heading stays');
for (const [what, needle] of [
for (const [what, needle] of [