openvibers/openvibe.help Commits

openvibe-contracts v0.126.0 (was v0.122.1) (#6)

OP OpenVibers committed 9 Oct 2026 · b50daf621e · 5 files, +15 −12

* openvibe-contracts v0.126.0 (was v0.122.1)

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

* Help tests follow contracts 0.126.0: openre.stream answers 8 questions, and the catalog passes one page of 50 articles

Changes

ddiff --git a/README.md b/README.md
iindex cfab165..7abd2dd 100644
---- a/README.md
++++ b/README.md
@@@ -207,7 +207,7 @@ Reporting a vulnerability: [SECURITY.md](SECURITY.md).
Part of the [OpenVibe network](https://openvibe.network). Built in the open by [OpenVibers](https://github.com/OpenVibers).
<!-- versions:start -->
--- openvibe-contracts: v0.122.1
++- openvibe-contracts: v0.126.0
- openvibe-sdk: v0.36.0
- openvibe-shared: v2.20.0
<!-- versions:end -->
ddiff --git a/STATUS.json b/STATUS.json
iindex 3942ad9..f204542 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -6,11 +6,11 @@
"runtime": "node 22, express 4, PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9",
"port": "5020",
"domain": "openvibe.help",
-- "contracts": "openvibe-contracts v0.122.1",
++ "contracts": "openvibe-contracts v0.126.0",
"sdk": "openvibe-sdk v0.36.0",
"shared": "openvibe-shared v2.20.0",
"packages": [
-- "openvibe-contracts v0.122.1",
++ "openvibe-contracts v0.126.0",
"openvibe-sdk v0.36.0",
"openvibe-shared v2.20.0"
],
ddiff --git a/package-lock.json b/package-lock.json
iindex c767cb6..cdde5c1 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -15,7 +15,7 @@
"express-rate-limit": "^7.5.0",
"helmet": "^8.1.0",
"iovalkey": "^0.4.0",
-- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.122.1",
++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.126.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.36.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.0",
"pg": "^8.23.0"
@@@ -871,9 +871,9 @@
}
},
"node_modules/openvibe-contracts": {
-- "version": "0.122.1",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.122.1",
-- "integrity": "sha512-+edJcURx0E76QWdgjr42fl0OgQxdWl7FA1OuWpopDKfO4ndidvf+GEz5skt1upSN4JLecLWrpMMyXJN27GjZsQ==",
++ "version": "0.126.0",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.126.0",
++ "integrity": "sha512-M/Vu5aMHEMtPI29xYaM03ZMbm2bfmyX2NVhEHNsjgw6dt/buW2g9tPE015VuBjO3j8LpkzsjWc2QXIJiajTs+w==",
"license": "AGPL-3.0-only",
"dependencies": {
"ajv": "^8.17.1",
ddiff --git a/package.json b/package.json
iindex b3bb614..bd8b921 100644
---- a/package.json
++++ b/package.json
@@@ -22,7 +22,7 @@
"express-rate-limit": "^7.5.0",
"helmet": "^8.1.0",
"iovalkey": "^0.4.0",
-- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.122.1",
++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.126.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.36.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.0",
"pg": "^8.23.0"
ddiff --git a/test/help-articles.test.js b/test/help-articles.test.js
iindex 2c4c7aa..b9d7d9e 100644
---- a/test/help-articles.test.js
++++ b/test/help-articles.test.js
@@@ -99,8 +99,8 @@ const WITH_FAQ = [
await check('a service manifest\'s own site faq is used, not only a product manifest\'s', () => {
const openre = catalog.byId.get('openre.stream');
-- assert.ok(openre && openre.faq.length === 5, `openre.stream has ${openre ? openre.faq.length : 'no'} questions`);
-- assert.ok((catalog.bySite.get('openre.stream') || []).length === 5, 'no article pages for openre.stream');
++ assert.ok(openre && openre.faq.length === 8, `openre.stream has ${openre ? openre.faq.length : 'no'} questions`);
++ assert.ok((catalog.bySite.get('openre.stream') || []).length === 8, 'an article page per openre.stream question');
});
await check('the link back to the site and to its /updates is on the site page', async () => {
@@@ -135,8 +135,11 @@ const WITH_FAQ = [
});
await check('/api/v1/articles?q= ranks the articles and names where each came from', async () => {
-- const all = (await t.get('/api/v1/articles')).json();
-- assert.strictEqual(all.count, catalog.articles.length);
++ // A page is 50 articles by default and at most 100 (the catalog passed 50 with contracts 0.126.0).
++ const page = (await t.get('/api/v1/articles')).json();
++ assert.strictEqual(page.count, Math.min(catalog.articles.length, 50));
++ const all = (await t.get('/api/v1/articles?limit=100')).json();
++ assert.strictEqual(all.count, Math.min(catalog.articles.length, 100));
const hits = (await t.get('/api/v1/articles?q=agent')).json();
assert.ok(hits.count > 0, 'no hits for "agent"');
assert.ok(hits.articles.every((a) => a.url.startsWith('/a/')), 'an article without a URL');