openvibers/openvibe.live Commits
Signed-in pages stop throwing: openvibe-shared v4.172.0 (from 4.168) and a guard (#741)
Changes
@@@ -181,5 +181,5 @@ Minimum `.env`: `BASE_URL`, `JWT_SECRET`, `OV_NETWORK_URL`, `OV_NETWORK_INTERNAL<!-- versions:start -->- openvibe-contracts: v0.338.0- openvibe-sdk: v0.117.0--- openvibe-shared: v4.168.0++- openvibe-shared: v4.172.0<!-- versions:end -->@@@ -7,7 +7,7 @@"domain": "openvibe.live (www, ingest, whip)","contracts": "openvibe-contracts v0.338.0","sdk": "openvibe-sdk v0.117.0",-- "shared": "openvibe-shared v4.168.0",++ "shared": "openvibe-shared v4.172.0","capabilities": ["live.chat_context.read","live.chat_effects.write",@@@ -26,7 +26,7 @@"onnxruntime-node": "^1.20.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.338.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.117.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.168.0",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.172.0","pg": "^8.23.1","sanitize-html": "^2.17.7","sdp-transform": "^3.0.0",@@@ -3342,9 +3342,9 @@}},"node_modules/openvibe-shared": {-- "version": "4.168.0",-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.168.0",-- "integrity": "sha512-Ahp6kif2XWtGr1DTQfovmDyUuWMDcZN7ygRmkahIc3A1uY6u5QCQxNRD/PbyGUKdT++VW9jmnjMaHlF3hogpuQ==",++ "version": "4.172.0",++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.172.0",++ "integrity": "sha512-uTTluDdWM8XuPcghxYbP6oHLRoV110es0hTUAxM22xrIZle84FTJBk1aBIVWBnnKHR8/oz0vXjx3m2Jjuchemg==","license": "MIT","dependencies": {"jsonwebtoken": "^9.0.0",@@@ -45,7 +45,7 @@"onnxruntime-node": "^1.20.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.338.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.117.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.168.0",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.172.0","pg": "^8.23.1","sanitize-html": "^2.17.7","sdp-transform": "^3.0.0",@@@ -781,7 +781,8 @@ function onAuthChange() {if (currentUser) _enableHandoff(); else if (window.OpenVibeSSO) { try { window.OpenVibeSSO.handoffLinks({ signedIn: false }); } catch { /* */ } }// The navbar is the network's shared component; tell it who is here (js/ov-navbar-live.js).if (window.LiveNav) window.LiveNav.sync(currentUser || null);-- if (currentUser) window.OpenVibeNavbar.refreshWallet();++ // The navbar's wallet chips (Shared 4.170+). Sign-in must never stop here, whatever navbar a page has.++ if (currentUser && window.OpenVibeNavbar && typeof window.OpenVibeNavbar.refreshWallet === 'function') window.OpenVibeNavbar.refreshWallet();// Older notification links point at a Live DM route. Keep the reader here in the Dock.if (currentUser && new URLSearchParams(location.search).has('dm')) {const params = new URLSearchParams(location.search);@@@ -25,4 +25,11 @@ assert(vibes.includes('window.OpenVibeNavbar.openWallet()'));const security = fs.readFileSync(path.join(root, 'server/index.js'), 'utf8');assert(!security.includes('"https://billing.openvibe.network"') && !security.includes('"https://inventory.openvibe.network"'),'the shared wallet asks Network\'s relays, so connect-src needs neither host');++// The wallet sheet and the navbar's openWallet/refreshWallet arrived in openvibe-shared 4.170.0: a pin below it threw++// "refreshWallet is not a function" in onAuthChange for every signed-in person (2026-11-09, Live #717 on 4.168.0).++const pin = /refs\/tags\/v(\d+)\.(\d+)\.(\d+)/.exec(JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf8')).dependencies['openvibe-shared']);++assert(pin && (Number(pin[1]) > 4 || (Number(pin[1]) === 4 && Number(pin[2]) >= 170)), 'openvibe-shared is pinned at 4.170.0 or later');++const app = fs.readFileSync(path.join(root, 'public/js/app.js'), 'utf8');++assert(/typeof window\.OpenVibeNavbar\.refreshWallet === 'function'\) window\.OpenVibeNavbar\.refreshWallet\(\)/.test(app),++ 'sign-in never stops on a navbar without the wallet');console.log('Live delegates wallet and store to Shared, retaining cosmetic renderers and channel actions');
@@ -181,5 +181,5 @@ Minimum `.env`: `BASE_URL`, `JWT_SECRET`, `OV_NETWORK_URL`, `OV_NETWORK_INTERNAL
@@ -181,5 +181,5 @@ Minimum `.env`: `BASE_URL`, `JWT_SECRET`, `OV_NETWORK_URL`, `OV_NETWORK_INTERNAL
<!-- versions:start -->
<!-- versions:start -->
- openvibe-contracts: v0.338.0
- openvibe-contracts: v0.338.0
- openvibe-sdk: v0.117.0
- openvibe-sdk: v0.117.0
-- openvibe-shared: v4.168.0
+- openvibe-shared: v4.172.0
<!-- versions:end -->
<!-- versions:end -->
@@ -7,7 +7,7 @@
@@ -7,7 +7,7 @@
"domain": "openvibe.live (www, ingest, whip)",
"domain": "openvibe.live (www, ingest, whip)",
"contracts": "openvibe-contracts v0.338.0",
"contracts": "openvibe-contracts v0.338.0",
"sdk": "openvibe-sdk v0.117.0",
"sdk": "openvibe-sdk v0.117.0",
- "shared": "openvibe-shared v4.168.0",
+ "shared": "openvibe-shared v4.172.0",
"capabilities": [
"capabilities": [
"live.chat_context.read",
"live.chat_context.read",
"live.chat_effects.write",
"live.chat_effects.write",
@@ -26,7 +26,7 @@
@@ -26,7 +26,7 @@
"onnxruntime-node": "^1.20.0",
"onnxruntime-node": "^1.20.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.338.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.338.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.117.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.117.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.168.0",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.172.0",
"pg": "^8.23.1",
"pg": "^8.23.1",
"sanitize-html": "^2.17.7",
"sanitize-html": "^2.17.7",
"sdp-transform": "^3.0.0",
"sdp-transform": "^3.0.0",
@@ -3342,9 +3342,9 @@
@@ -3342,9 +3342,9 @@
}
}
},
},
"node_modules/openvibe-shared": {
"node_modules/openvibe-shared": {
- "version": "4.168.0",
- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.168.0",
- "integrity": "sha512-Ahp6kif2XWtGr1DTQfovmDyUuWMDcZN7ygRmkahIc3A1uY6u5QCQxNRD/PbyGUKdT++VW9jmnjMaHlF3hogpuQ==",
+ "version": "4.172.0",
+ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.172.0",
+ "integrity": "sha512-uTTluDdWM8XuPcghxYbP6oHLRoV110es0hTUAxM22xrIZle84FTJBk1aBIVWBnnKHR8/oz0vXjx3m2Jjuchemg==",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
"jsonwebtoken": "^9.0.0",
"jsonwebtoken": "^9.0.0",
@@ -45,7 +45,7 @@
@@ -45,7 +45,7 @@
"onnxruntime-node": "^1.20.0",
"onnxruntime-node": "^1.20.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.338.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.338.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.117.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.117.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.168.0",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.172.0",
"pg": "^8.23.1",
"pg": "^8.23.1",
"sanitize-html": "^2.17.7",
"sanitize-html": "^2.17.7",
"sdp-transform": "^3.0.0",
"sdp-transform": "^3.0.0",
@@ -781,7 +781,8 @@ function onAuthChange() {
@@ -781,7 +781,8 @@ function onAuthChange() {
if (currentUser) _enableHandoff(); else if (window.OpenVibeSSO) { try { window.OpenVibeSSO.handoffLinks({ signedIn: false }); } catch { /* */ } }
if (currentUser) _enableHandoff(); else if (window.OpenVibeSSO) { try { window.OpenVibeSSO.handoffLinks({ signedIn: false }); } catch { /* */ } }
// The navbar is the network's shared component; tell it who is here (js/ov-navbar-live.js).
// The navbar is the network's shared component; tell it who is here (js/ov-navbar-live.js).
if (window.LiveNav) window.LiveNav.sync(currentUser || null);
if (window.LiveNav) window.LiveNav.sync(currentUser || null);
- if (currentUser) window.OpenVibeNavbar.refreshWallet();
+ // The navbar's wallet chips (Shared 4.170+). Sign-in must never stop here, whatever navbar a page has.
+ if (currentUser && window.OpenVibeNavbar && typeof window.OpenVibeNavbar.refreshWallet === 'function') window.OpenVibeNavbar.refreshWallet();
// Older notification links point at a Live DM route. Keep the reader here in the Dock.
// Older notification links point at a Live DM route. Keep the reader here in the Dock.
if (currentUser && new URLSearchParams(location.search).has('dm')) {
if (currentUser && new URLSearchParams(location.search).has('dm')) {
const params = new URLSearchParams(location.search);
const params = new URLSearchParams(location.search);
@@ -25,4 +25,11 @@ assert(vibes.includes('window.OpenVibeNavbar.openWallet()'));
@@ -25,4 +25,11 @@ assert(vibes.includes('window.OpenVibeNavbar.openWallet()'));
const security = fs.readFileSync(path.join(root, 'server/index.js'), 'utf8');
const security = fs.readFileSync(path.join(root, 'server/index.js'), 'utf8');
assert(!security.includes('"https://billing.openvibe.network"') && !security.includes('"https://inventory.openvibe.network"'),
assert(!security.includes('"https://billing.openvibe.network"') && !security.includes('"https://inventory.openvibe.network"'),
'the shared wallet asks Network\'s relays, so connect-src needs neither host');
'the shared wallet asks Network\'s relays, so connect-src needs neither host');
+// The wallet sheet and the navbar's openWallet/refreshWallet arrived in openvibe-shared 4.170.0: a pin below it threw
+// "refreshWallet is not a function" in onAuthChange for every signed-in person (2026-11-09, Live #717 on 4.168.0).
+const pin = /refs\/tags\/v(\d+)\.(\d+)\.(\d+)/.exec(JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf8')).dependencies['openvibe-shared']);
+assert(pin && (Number(pin[1]) > 4 || (Number(pin[1]) === 4 && Number(pin[2]) >= 170)), 'openvibe-shared is pinned at 4.170.0 or later');
+const app = fs.readFileSync(path.join(root, 'public/js/app.js'), 'utf8');
+assert(/typeof window\.OpenVibeNavbar\.refreshWallet === 'function'\) window\.OpenVibeNavbar\.refreshWallet\(\)/.test(app),
+ 'sign-in never stops on a navbar without the wallet');
console.log('Live delegates wallet and store to Shared, retaining cosmetic renderers and channel actions');
console.log('Live delegates wallet and store to Shared, retaining cosmetic renderers and channel actions');