openvibers/openvibe.network Commits
openvibe-shared v4.13.0 (was v4.12.0) (#340)
Changes
@@@ -50,7 +50,7 @@ Identity and account service for the OpenVibe network. Manages user accounts, OA## Depends on- `openvibe-contracts` v0.213.0 (registry manifests, capability checks), `openvibe-sdk` v0.64.0 (PostgreSQL-- and Valkey adapters, events, per-actor limits, universal telemetry), `openvibe-shared` v4.12.0, pinned by release tarball++ and Valkey adapters, events, per-actor limits, universal telemetry), `openvibe-shared` v4.13.0, pinned by release tarball- OpenVibe.Events (Network's outbox relay; the events it consumes), OpenVibe.AI (the `network.site_copy`workflow), OpenVibe.Blog (the changelog feed it proxies)- email (Resend), Discord and GitHub when their secrets are set ([Provider secrets](#provider-secrets))@@@ -759,5 +759,5 @@ MIT (`license` in [package.json](package.json)).<!-- versions:start -->- openvibe-contracts: v0.213.0- openvibe-sdk: v0.64.0--- openvibe-shared: v4.12.0++- openvibe-shared: v4.13.0<!-- versions:end -->@@@ -8,7 +8,7 @@"domain": "openvibe.network (with auth., api., admin., my. and themes.openvibe.network in its manifest)","contracts": "openvibe-contracts v0.213.0","sdk": "openvibe-sdk v0.64.0",-- "shared": "openvibe-shared v4.12.0",++ "shared": "openvibe-shared v4.13.0","capabilities": ["identity.subject.resolve","mods.grant.manage",@@@ -48,5 +48,5 @@"per-actor limits (openvibe-sdk/limits)","universal telemetry: per-route aggregated platform.telemetry-sample@1 plus per-flush HTTP autoscaling gauges (openvibe-sdk/telemetry)"],-- "updated": "2026-10-25"++ "updated": "2026-10-26"}@@@ -22,7 +22,7 @@"multer": "^1.4.5-lts.1","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.213.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.64.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.12.0",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.13.0","pg": "^8.23.0","uuid": "^11.1.0","web-push": "^3.6.7"@@@ -1364,9 +1364,9 @@}},"node_modules/openvibe-shared": {-- "version": "4.12.0",-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.12.0",-- "integrity": "sha512-k0i63sCPfHtz1KF5MJSI+CGv5VwBf4ISRzxJRQdorkeMKOTtABlAQfiH1uf9kJsd5/Wn7VUTTHlhhOLSX6ZTzw==",++ "version": "4.13.0",++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.13.0",++ "integrity": "sha512-wvoTn4M1N/cQyO0LSQsuFkj8dIAO0o/wAaRaHsUICWtVQ5WsLXr2n4cwh0367yZBEtpa5yIWyF2Tg0fiOU50mw==","license": "MIT","dependencies": {"jsonwebtoken": "^9.0.0"@@@ -26,7 +26,7 @@"multer": "^1.4.5-lts.1","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.213.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.64.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.12.0",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.13.0","pg": "^8.23.0","uuid": "^11.1.0","web-push": "^3.6.7"@@@ -24,7 +24,8 @@ const cache = require('openvibe-shared/cache-policy');assert.ok(!robots.body.includes('Disallow:'), 'robots.txt allows all paths and crawlers');for (const bot of seo.AI_AND_SEARCH_BOTS) assert.ok(robots.body.includes(`User-agent: ${bot}`), `robots.txt names ${bot}`);assert.ok(robots.body.includes('Sitemap: https://openvibe.network/sitemap.xml'), 'robots.txt points at the sitemap');-- for (const line of robots.body.split('\n')) if (line) assert.ok(/^[A-Za-z-]+: /.test(line), `every robots.txt line is a directive (got "${line}")`);++ // A directive, or a comment (Shared 4.13's content-signals note says what the site allows in words).++ for (const line of robots.body.split('\n')) if (line) assert.ok(/^[A-Za-z-]+: /.test(line) || line.startsWith('#'), `every robots.txt line is a directive or a comment (got "${line}")`);// ── /sitemap.xml ──const sitemap = await get('/sitemap.xml');
@@ -50,7 +50,7 @@ Identity and account service for the OpenVibe network. Manages user accounts, OA
@@ -50,7 +50,7 @@ Identity and account service for the OpenVibe network. Manages user accounts, OA
## Depends on
## Depends on
- `openvibe-contracts` v0.213.0 (registry manifests, capability checks), `openvibe-sdk` v0.64.0 (PostgreSQL
- `openvibe-contracts` v0.213.0 (registry manifests, capability checks), `openvibe-sdk` v0.64.0 (PostgreSQL
- and Valkey adapters, events, per-actor limits, universal telemetry), `openvibe-shared` v4.12.0, pinned by release tarball
+ and Valkey adapters, events, per-actor limits, universal telemetry), `openvibe-shared` v4.13.0, pinned by release tarball
- OpenVibe.Events (Network's outbox relay; the events it consumes), OpenVibe.AI (the `network.site_copy`
- OpenVibe.Events (Network's outbox relay; the events it consumes), OpenVibe.AI (the `network.site_copy`
workflow), OpenVibe.Blog (the changelog feed it proxies)
workflow), OpenVibe.Blog (the changelog feed it proxies)
- email (Resend), Discord and GitHub when their secrets are set ([Provider secrets](#provider-secrets))
- email (Resend), Discord and GitHub when their secrets are set ([Provider secrets](#provider-secrets))
@@ -759,5 +759,5 @@ MIT (`license` in [package.json](package.json)).
@@ -759,5 +759,5 @@ MIT (`license` in [package.json](package.json)).
<!-- versions:start -->
<!-- versions:start -->
- openvibe-contracts: v0.213.0
- openvibe-contracts: v0.213.0
- openvibe-sdk: v0.64.0
- openvibe-sdk: v0.64.0
-- openvibe-shared: v4.12.0
+- openvibe-shared: v4.13.0
<!-- versions:end -->
<!-- versions:end -->
@@ -8,7 +8,7 @@
@@ -8,7 +8,7 @@
"domain": "openvibe.network (with auth., api., admin., my. and themes.openvibe.network in its manifest)",
"domain": "openvibe.network (with auth., api., admin., my. and themes.openvibe.network in its manifest)",
"contracts": "openvibe-contracts v0.213.0",
"contracts": "openvibe-contracts v0.213.0",
"sdk": "openvibe-sdk v0.64.0",
"sdk": "openvibe-sdk v0.64.0",
- "shared": "openvibe-shared v4.12.0",
+ "shared": "openvibe-shared v4.13.0",
"capabilities": [
"capabilities": [
"identity.subject.resolve",
"identity.subject.resolve",
"mods.grant.manage",
"mods.grant.manage",
@@ -48,5 +48,5 @@
@@ -48,5 +48,5 @@
"per-actor limits (openvibe-sdk/limits)",
"per-actor limits (openvibe-sdk/limits)",
"universal telemetry: per-route aggregated platform.telemetry-sample@1 plus per-flush HTTP autoscaling gauges (openvibe-sdk/telemetry)"
"universal telemetry: per-route aggregated platform.telemetry-sample@1 plus per-flush HTTP autoscaling gauges (openvibe-sdk/telemetry)"
],
],
- "updated": "2026-10-25"
+ "updated": "2026-10-26"
}
}
@@ -22,7 +22,7 @@
@@ -22,7 +22,7 @@
"multer": "^1.4.5-lts.1",
"multer": "^1.4.5-lts.1",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.213.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.213.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.64.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.64.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.12.0",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.13.0",
"pg": "^8.23.0",
"pg": "^8.23.0",
"uuid": "^11.1.0",
"uuid": "^11.1.0",
"web-push": "^3.6.7"
"web-push": "^3.6.7"
@@ -1364,9 +1364,9 @@
@@ -1364,9 +1364,9 @@
}
}
},
},
"node_modules/openvibe-shared": {
"node_modules/openvibe-shared": {
- "version": "4.12.0",
- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.12.0",
- "integrity": "sha512-k0i63sCPfHtz1KF5MJSI+CGv5VwBf4ISRzxJRQdorkeMKOTtABlAQfiH1uf9kJsd5/Wn7VUTTHlhhOLSX6ZTzw==",
+ "version": "4.13.0",
+ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.13.0",
+ "integrity": "sha512-wvoTn4M1N/cQyO0LSQsuFkj8dIAO0o/wAaRaHsUICWtVQ5WsLXr2n4cwh0367yZBEtpa5yIWyF2Tg0fiOU50mw==",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
"jsonwebtoken": "^9.0.0"
"jsonwebtoken": "^9.0.0"
@@ -26,7 +26,7 @@
@@ -26,7 +26,7 @@
"multer": "^1.4.5-lts.1",
"multer": "^1.4.5-lts.1",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.213.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.213.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.64.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.64.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.12.0",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.13.0",
"pg": "^8.23.0",
"pg": "^8.23.0",
"uuid": "^11.1.0",
"uuid": "^11.1.0",
"web-push": "^3.6.7"
"web-push": "^3.6.7"
@@ -24,7 +24,8 @@ const cache = require('openvibe-shared/cache-policy');
@@ -24,7 +24,8 @@ const cache = require('openvibe-shared/cache-policy');
assert.ok(!robots.body.includes('Disallow:'), 'robots.txt allows all paths and crawlers');
assert.ok(!robots.body.includes('Disallow:'), 'robots.txt allows all paths and crawlers');
for (const bot of seo.AI_AND_SEARCH_BOTS) assert.ok(robots.body.includes(`User-agent: ${bot}`), `robots.txt names ${bot}`);
for (const bot of seo.AI_AND_SEARCH_BOTS) assert.ok(robots.body.includes(`User-agent: ${bot}`), `robots.txt names ${bot}`);
assert.ok(robots.body.includes('Sitemap: https://openvibe.network/sitemap.xml'), 'robots.txt points at the sitemap');
assert.ok(robots.body.includes('Sitemap: https://openvibe.network/sitemap.xml'), 'robots.txt points at the sitemap');
- for (const line of robots.body.split('\n')) if (line) assert.ok(/^[A-Za-z-]+: /.test(line), `every robots.txt line is a directive (got "${line}")`);
+ // A directive, or a comment (Shared 4.13's content-signals note says what the site allows in words).
+ for (const line of robots.body.split('\n')) if (line) assert.ok(/^[A-Za-z-]+: /.test(line) || line.startsWith('#'), `every robots.txt line is a directive or a comment (got "${line}")`);
// ── /sitemap.xml ──
// ── /sitemap.xml ──
const sitemap = await get('/sitemap.xml');
const sitemap = await get('/sitemap.xml');