openvibers/openvibe.sites Commits

openvibe-contracts v0.112.0 (was v0.84.0) (#14)

OP OpenVibers committed 7 Oct 2026 · 1bfd0e766e · 6 files, +26 −20

* openvibe-contracts v0.112.0 (was v0.84.0)

Opened by scripts/pin-bump.js in OpenVibers/OpenVibe.Shared after the v0.112.0 release.

* openvibe-contracts v0.112.0 (was v0.84.0)

* openvibe-contracts v0.112.0 (was v0.84.0)

Changes

ddiff --git a/README.md b/README.md
iindex c956309..5d19895 100644
---- a/README.md
++++ b/README.md
@@@ -35,3 +35,8 @@ ov test test/deploy-wrapper.test.js
The pinned `openvibe-contracts` release supplies the catalog `sites.json` mirrors; the pinned `openvibe-shared` release supplies the Frame browser files under `dist/_shared/`. The deploy wrapper remains the existing OpenVibe.Host static build path. Sites has no server process, port, token, or environment file. The owner manages certificates and DNS.
Report security issues through [SECURITY.md](SECURITY.md).
++
++<!-- versions:start -->
++- openvibe-contracts: v0.112.0
++- openvibe-shared: v2.13.0
++<!-- versions:end -->
ddiff --git a/STATUS.json b/STATUS.json
iindex d91b866..01372a2 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -33,7 +33,8 @@
"realtime.openvibe.network (closed notice)",
"status.openvibe.network (status notice)"
],
-- "contracts": "openvibe-contracts v0.84.0: sites.json mirrors products.catalog() (scripts/sync-catalog.js)",
++ "contracts": "openvibe-contracts v0.112.0: sites.json mirrors products.catalog() (scripts/sync-catalog.js)",
++ "shared": "openvibe-shared v2.13.0",
"deployed": true,
"deployment": "Deployed with `sudo ovhost deploy sites --restart` (OpenVibe.Host strategy static-build since the 2026-09-27 cutover): /opt/openvibe.sites, nginx serves dist/<domain>/ through deploy/nginx/<domain>.conf; no unit, no port, no env file",
"features": [
ddiff --git a/package-lock.json b/package-lock.json
iindex 96dcbec..d0d4b0b 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -6,7 +6,7 @@
"": {
"name": "openvibe-sites",
"dependencies": {
-- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.84.0",
++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.112.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.13.0"
},
"engines": {
@@@ -181,9 +181,9 @@
"license": "MIT"
},
"node_modules/openvibe-contracts": {
-- "version": "0.84.0",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.84.0",
-- "integrity": "sha512-wnmQbzffd2xXSGk3Zr1JxZYIL4oSlnJTo8lGpUApBPoDKeQ3U4VCLJgt3cZpbtkbl5NH1qNjBDXkwx+uASwoyA==",
++ "version": "0.112.0",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.112.0",
++ "integrity": "sha512-ujIdCjv+oHfwg/+Hw0tyt2erVnornjDiKVPN8snHvybfysR/DBZQ2G32bQj8oAaK90s12ADEpdrXT1eust3eAw==",
"license": "AGPL-3.0-only",
"dependencies": {
"ajv": "^8.17.1",
ddiff --git a/package.json b/package.json
iindex f4167b9..317151d 100644
---- a/package.json
++++ b/package.json
@@@ -7,7 +7,7 @@
"test": "node test/run.js"
},
"dependencies": {
-- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.84.0",
++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.112.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.13.0"
},
"engines": {
ddiff --git a/sites.json b/sites.json
iindex 76cd47c..45cbb2d 100644
---- a/sites.json
++++ b/sites.json
@@@ -637,7 +637,7 @@
"links": [
[
"OpenVibe.Events",
-- "https://events.openvibe.network/",
++ "https://openvibe.events/",
"Durable events, subscriptions and signed delivery; browsers subscribe at /realtime/stream."
],
[
@@@ -851,19 +851,19 @@
"accent": "#818cf8",
"noRepo": true,
"tagline": "Start a forum for anything.",
-- "description": "OpenVibe.Space will be the forums of the OpenVibe network: create a forum for any topic, with the depth of classic boards like XenForo and phpBB, the feel of a modern community, and AI help for topics, research and moderation. The forums on OpenVibe.Community move here when it launches.",
++ "description": "OpenVibe.Space is the network forum: browse public and members-only boards, start threads, reply, vote and moderate spaces with one OpenVibe identity.",
"pillars": [
[
"Any forum",
-- "Anyone can start one, for any topic."
++ "Browse boards for discussions, requests and the roadmap."
],
[
"Classic depth",
-- "Sub-forums, threads, ranks, moderation tools."
++ "Child boards, threads, categories and moderation tools."
],
[
-- "AI assist",
-- "Topic ideas, research and summaries, always labelled."
++ "Make it yours",
++ "Moderators can shape boards, categories and visibility."
],
[
"One account",
@@@ -878,7 +878,7 @@
]
],
"keywords": "openvibe space, forums, create a forum, community boards, xenforo alternative, phpbb alternative",
-- "launch": "the forum engine moving over from OpenVibe.Community"
++ "launch": "Forums moved from OpenVibe.Community to OpenVibe.Space (plan T10 step 3)."
},
{
"domain": "openvibe.food",
@@@ -1150,7 +1150,6 @@
"name": "OpenVibe.Zone",
"icon": "fa-box-archive",
"accent": "#2dd4bf",
-- "noRepo": true,
"tagline": "Your data, in zones.",
"description": "OpenVibe.Zone will keep your data and files in zones — S3-style buckets for persistent storage that every OpenVibe service and agent can use with your permission, also offered to developers through OpenVibe.Services. Part of the OpenVibe network, with one account for every site.",
"pillars": [
@@@ -1179,7 +1178,8 @@
]
],
"keywords": "openvibe zone, object storage, s3 compatible storage, buckets, persistent storage, file storage api",
-- "launch": "zones for data and files"
++ "launch": "zones for data and files",
++ "plannedRepo": "OpenVibe.Zone"
},
{
"domain": "openvibe.video",
@@@ -1313,7 +1313,6 @@
"name": "OpenVibe.Bot",
"icon": "fa-robot",
"accent": "#f472b6",
-- "noRepo": true,
"vhostOwner": "OpenVibers/OpenVibe.Bot",
"tagline": "Get your robot online in minutes.",
"description": "OpenVibe.Bot is an open control panel for robots. Add a robot, pair it with one command or a QR code, and drive it from any browser with live video, real controls and a stop button that always works. Buy a ready-made bot or bring your own: a Raspberry Pi robot, an ESP32, a ROS 2 robot, a phone, or a Cozmo. Share control, automate it, hand it to your AI agent, and stream it to OpenVibe.Live or openre.stream when you want to.",
@@@ -1524,7 +1523,8 @@
"What will it cost?",
"Controlling your own robot will not cost anything. Limits and any paid extras will be published before launch."
]
-- ]
++ ],
++ "plannedRepo": "OpenVibe.Bot"
},
{
"domain": "openvibe.watch",
@@@ -1993,7 +1993,7 @@
]
],
"keywords": "event bus api, webhook retry service, sqs alternative, sns alternative, pub sub api, realtime sse api, dead letter queue, webhook replay",
-- "launch": "the developer site and queue and stream primitives; the API runs at events.openvibe.network",
++ "launch": "the developer site, the API and the realtime stream on openvibe.events; queue and stream primitives",
"plannedRepo": "OpenVibe.Events"
}
]
ddiff --git a/test/sync-catalog.test.js b/test/sync-catalog.test.js
iindex 39fb782..e9385d4 100644
---- a/test/sync-catalog.test.js
++++ b/test/sync-catalog.test.js
@@@ -14,7 +14,7 @@ const { catalog } = require('openvibe-contracts/lib/products');
const domains = new Set(catalog().map(r => r.domain));
// Placeholders added after openvibe-contracts v0.84.0 that have no product manifest there yet: sync-catalog
// keeps them as they are. Drop a domain from this list with the Contracts bump that adds it.
--const AWAITING_CONTRACTS = ['openvibe.work', 'openvibe.zone'];
++const AWAITING_CONTRACTS = []; // openvibe.work and openvibe.zone have product manifests since the v0.112.0 pin
for (const d of AWAITING_CONTRACTS) assert.ok(!domains.has(d), `${d}: is in the Contracts catalog now; remove it from AWAITING_CONTRACTS`);
const sites = JSON.parse(fs.readFileSync(path.join(ROOT, 'sites.json'), 'utf8')).sites;
for (const conf of fs.readdirSync(path.join(ROOT, 'deploy', 'nginx'))) {
@@@ -30,4 +30,4 @@ assert.deepStrictEqual(dropNoRepo({ noRepo: true }), { noRepo: true });
const services = sites.find(s => s.domain === 'openvibe.services');
assert.strictEqual(services && services.plannedRepo, 'OpenVibe.Services', 'openvibe.services records its planned repository');
assert.ok(services && !('noRepo' in services), 'openvibe.services must not also carry noRepo');
--console.log(`sync-catalog: ${sites.length} sites, all in the Contracts catalog but ${AWAITING_CONTRACTS.join(', ')}`);
++console.log(`sync-catalog: ${sites.length} sites, all in the Contracts catalog${AWAITING_CONTRACTS.length ? ` but ${AWAITING_CONTRACTS.join(', ')}` : ''}`);