openvibers/openvibe.sites Commits
openvibe-shared v2.13.2 (was v2.13.0) (#15)
Changes
@@@ -38,5 +38,5 @@ Report security issues through [SECURITY.md](SECURITY.md).<!-- versions:start -->- openvibe-contracts: v0.112.0--- openvibe-shared: v2.13.0++- openvibe-shared: v2.13.2<!-- versions:end -->@@@ -34,7 +34,7 @@"status.openvibe.network (status notice)"],"contracts": "openvibe-contracts v0.112.0: sites.json mirrors products.catalog() (scripts/sync-catalog.js)",-- "shared": "openvibe-shared v2.13.0",++ "shared": "openvibe-shared v2.13.2","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": [@@@ -46,5 +46,5 @@"generated notice vhosts and preserved product vhosts","a release.json per domain and host.release.published on deploy"],-- "updated": "2026-10-07"++ "updated": "2026-10-08"}@@@ -1335,8 +1335,9 @@const loginHref = resolveLoginHref(currentHost(), window.location.href);const addAccountHref = `${_config.apiBase}/login?add_account=1&return=${encodeURIComponent(window.location.href)}`;-- // The OV brand mark is a self-contained drop-in (mounts every .ov-mark it finds).-- if (!window.__ovMark && !document.getElementById('ov-mark-loader')) {++ // The OV brand mark is a self-contained drop-in (mounts every .ov-mark it finds). A page may already carry its own++ // async <script src=".../ov-mark.js?v=…"> that has not run yet: never load a second copy.++ if (!window.__ovMark && !document.getElementById('ov-mark-loader') && !(document.querySelector && document.querySelector('script[src*="/ov-mark.js"]'))) {try { const sc = document.createElement('script'); sc.id = 'ov-mark-loader'; sc.src = sibling('ov-mark.js'); sc.async = true; document.head.appendChild(sc); } catch { /* */ }}nav.innerHTML = `@@@ -1,11 +1,11 @@{"service": "realtime","release": "70c38459623f",-- "released_at": "2026-10-07T00:00:00.000Z",++ "released_at": "2026-10-08T00:00:00.000Z","booted_at": null,"contracts_version": null,"packages": {-- "openvibe-shared": "2.13.0"++ "openvibe-shared": "2.13.2"},"min_client_release": null,"mixed_version_window_hours": 24,@@@ -4,6 +4,6 @@"stage": "closed","live": false,"network": "https://openvibe.network",-- "updated": "2026-10-07",++ "updated": "2026-10-08","note": "Static notice served by OpenVibers/OpenVibe.Sites. See the linked destination for current information."}@@@ -1,11 +1,11 @@{"service": "status","release": "717343d5e95a",-- "released_at": "2026-10-07T00:00:00.000Z",++ "released_at": "2026-10-08T00:00:00.000Z","booted_at": null,"contracts_version": null,"packages": {-- "openvibe-shared": "2.13.0"++ "openvibe-shared": "2.13.2"},"min_client_release": null,"mixed_version_window_hours": 24,@@@ -4,6 +4,6 @@"stage": "status","live": false,"network": "https://openvibe.network",-- "updated": "2026-10-07",++ "updated": "2026-10-08","note": "Static notice served by OpenVibers/OpenVibe.Sites. See the linked destination for current information."}@@@ -7,7 +7,7 @@"name": "openvibe-sites","dependencies": {"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"++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.13.2"},"engines": {"node": ">=20"@@@ -197,9 +197,9 @@}},"node_modules/openvibe-shared": {-- "version": "2.13.0",-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.13.0",-- "integrity": "sha512-0Lvo+bBWVGWREkp92tY4cGI32ZO124WTOjthDNTB96U161odl+npnYEWy3dV2IcgZC4HAX5DSzx4ThgNS2V/sA==",++ "version": "2.13.2",++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.13.2",++ "integrity": "sha512-rvLq6uKd0j84qxZXwGX+gE6+e8SJaP8bBilWu9Eosjgfc70Z4bPJOUJUiLNRte7fU5hW/ea97/JoCLdiwXmPQA==","license": "MIT","dependencies": {"jsonwebtoken": "^9.0.0"@@@ -8,7 +8,7 @@},"dependencies": {"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"++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.13.2"},"engines": {"node": ">=20"
@@ -38,5 +38,5 @@ Report security issues through [SECURITY.md](SECURITY.md).
@@ -38,5 +38,5 @@ Report security issues through [SECURITY.md](SECURITY.md).
<!-- versions:start -->
<!-- versions:start -->
- openvibe-contracts: v0.112.0
- openvibe-contracts: v0.112.0
-- openvibe-shared: v2.13.0
+- openvibe-shared: v2.13.2
<!-- versions:end -->
<!-- versions:end -->
@@ -34,7 +34,7 @@
@@ -34,7 +34,7 @@
"status.openvibe.network (status notice)"
"status.openvibe.network (status notice)"
],
],
"contracts": "openvibe-contracts v0.112.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",
+ "shared": "openvibe-shared v2.13.2",
"deployed": true,
"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",
"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": [
"features": [
@@ -46,5 +46,5 @@
@@ -46,5 +46,5 @@
"generated notice vhosts and preserved product vhosts",
"generated notice vhosts and preserved product vhosts",
"a release.json per domain and host.release.published on deploy"
"a release.json per domain and host.release.published on deploy"
],
],
- "updated": "2026-10-07"
+ "updated": "2026-10-08"
}
}
@@ -1335,8 +1335,9 @@
@@ -1335,8 +1335,9 @@
const loginHref = resolveLoginHref(currentHost(), window.location.href);
const loginHref = resolveLoginHref(currentHost(), window.location.href);
const addAccountHref = `${_config.apiBase}/login?add_account=1&return=${encodeURIComponent(window.location.href)}`;
const addAccountHref = `${_config.apiBase}/login?add_account=1&return=${encodeURIComponent(window.location.href)}`;
- // The OV brand mark is a self-contained drop-in (mounts every .ov-mark it finds).
- if (!window.__ovMark && !document.getElementById('ov-mark-loader')) {
+ // The OV brand mark is a self-contained drop-in (mounts every .ov-mark it finds). A page may already carry its own
+ // async <script src=".../ov-mark.js?v=…"> that has not run yet: never load a second copy.
+ if (!window.__ovMark && !document.getElementById('ov-mark-loader') && !(document.querySelector && document.querySelector('script[src*="/ov-mark.js"]'))) {
try { const sc = document.createElement('script'); sc.id = 'ov-mark-loader'; sc.src = sibling('ov-mark.js'); sc.async = true; document.head.appendChild(sc); } catch { /* */ }
try { const sc = document.createElement('script'); sc.id = 'ov-mark-loader'; sc.src = sibling('ov-mark.js'); sc.async = true; document.head.appendChild(sc); } catch { /* */ }
}
}
nav.innerHTML = `
nav.innerHTML = `
@@ -1,11 +1,11 @@
@@ -1,11 +1,11 @@
{
{
"service": "realtime",
"service": "realtime",
"release": "70c38459623f",
"release": "70c38459623f",
- "released_at": "2026-10-07T00:00:00.000Z",
+ "released_at": "2026-10-08T00:00:00.000Z",
"booted_at": null,
"booted_at": null,
"contracts_version": null,
"contracts_version": null,
"packages": {
"packages": {
- "openvibe-shared": "2.13.0"
+ "openvibe-shared": "2.13.2"
},
},
"min_client_release": null,
"min_client_release": null,
"mixed_version_window_hours": 24,
"mixed_version_window_hours": 24,
@@ -4,6 +4,6 @@
@@ -4,6 +4,6 @@
"stage": "closed",
"stage": "closed",
"live": false,
"live": false,
"network": "https://openvibe.network",
"network": "https://openvibe.network",
- "updated": "2026-10-07",
+ "updated": "2026-10-08",
"note": "Static notice served by OpenVibers/OpenVibe.Sites. See the linked destination for current information."
"note": "Static notice served by OpenVibers/OpenVibe.Sites. See the linked destination for current information."
}
}
@@ -1,11 +1,11 @@
@@ -1,11 +1,11 @@
{
{
"service": "status",
"service": "status",
"release": "717343d5e95a",
"release": "717343d5e95a",
- "released_at": "2026-10-07T00:00:00.000Z",
+ "released_at": "2026-10-08T00:00:00.000Z",
"booted_at": null,
"booted_at": null,
"contracts_version": null,
"contracts_version": null,
"packages": {
"packages": {
- "openvibe-shared": "2.13.0"
+ "openvibe-shared": "2.13.2"
},
},
"min_client_release": null,
"min_client_release": null,
"mixed_version_window_hours": 24,
"mixed_version_window_hours": 24,
@@ -4,6 +4,6 @@
@@ -4,6 +4,6 @@
"stage": "status",
"stage": "status",
"live": false,
"live": false,
"network": "https://openvibe.network",
"network": "https://openvibe.network",
- "updated": "2026-10-07",
+ "updated": "2026-10-08",
"note": "Static notice served by OpenVibers/OpenVibe.Sites. See the linked destination for current information."
"note": "Static notice served by OpenVibers/OpenVibe.Sites. See the linked destination for current information."
}
}
@@ -7,7 +7,7 @@
@@ -7,7 +7,7 @@
"name": "openvibe-sites",
"name": "openvibe-sites",
"dependencies": {
"dependencies": {
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.112.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"
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.13.2"
},
},
"engines": {
"engines": {
"node": ">=20"
"node": ">=20"
@@ -197,9 +197,9 @@
@@ -197,9 +197,9 @@
}
}
},
},
"node_modules/openvibe-shared": {
"node_modules/openvibe-shared": {
- "version": "2.13.0",
- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.13.0",
- "integrity": "sha512-0Lvo+bBWVGWREkp92tY4cGI32ZO124WTOjthDNTB96U161odl+npnYEWy3dV2IcgZC4HAX5DSzx4ThgNS2V/sA==",
+ "version": "2.13.2",
+ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.13.2",
+ "integrity": "sha512-rvLq6uKd0j84qxZXwGX+gE6+e8SJaP8bBilWu9Eosjgfc70Z4bPJOUJUiLNRte7fU5hW/ea97/JoCLdiwXmPQA==",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
"jsonwebtoken": "^9.0.0"
"jsonwebtoken": "^9.0.0"
@@ -8,7 +8,7 @@
@@ -8,7 +8,7 @@
},
},
"dependencies": {
"dependencies": {
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.112.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"
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.13.2"
},
},
"engines": {
"engines": {
"node": ">=20"
"node": ">=20"