openvibers/openvibe.codes Commits

openvibe-contracts v0.416.0 (was v0.406.0) (#431)

OP OpenVibers committed 19 h ago · 3fbcc6ba05 · 6 files, +14 −12

* openvibe-contracts v0.416.0 (was v0.406.0)

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

* tests: name codes.task.updated, which 0.416.0 declares

Changes

ddiff --git a/README.md b/README.md
iindex 26fac75..ed00bbc 100644
---- a/README.md
++++ b/README.md
@@@ -180,7 +180,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.406.0
++- openvibe-contracts: v0.416.0
- openvibe-sdk: v0.150.0
- openvibe-shared: v4.223.0
<!-- versions:end -->
ddiff --git a/STATUS.json b/STATUS.json
iindex 8b7e397..571df67 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -7,11 +7,11 @@
"runtime": "node 22, express 4, PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9",
"port": 4900,
"domain": "openvibe.codes",
-- "contracts": "openvibe-contracts v0.406.0",
++ "contracts": "openvibe-contracts v0.416.0",
"sdk": "openvibe-sdk v0.150.0",
"shared": "openvibe-shared v4.223.0",
"packages": [
-- "openvibe-contracts v0.406.0",
++ "openvibe-contracts v0.416.0",
"openvibe-sdk v0.150.0",
"openvibe-shared v4.223.0"
],
ddiff --git a/package-lock.json b/package-lock.json
iindex 349d0ef..b730ec8 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.406.0",
++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.416.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.150.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.223.0",
"pg": "^8.23.0",
@@@ -1231,9 +1231,9 @@
}
},
"node_modules/openvibe-contracts": {
-- "version": "0.406.0",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.406.0",
-- "integrity": "sha512-V/Tjss2UWvzI551bw3ACb/RqWg0lChxGITxfCVZ8qou2Docg0pBMvIjkeQoib56yq3r6UZGB6DGl+pA+qfjOiA==",
++ "version": "0.416.0",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.416.0",
++ "integrity": "sha512-gFZGSXY7GM2SHdyOmqZ0699yJhF9ZsF/Rb0WHo3asI+S4LTqthqIQPOCoYczlF/dcB5p13KBjLCMdAvEqmNLoQ==",
"license": "AGPL-3.0-only",
"dependencies": {
"ajv": "^8.17.1",
ddiff --git a/package.json b/package.json
iindex 1ab1567..e123ef4 100644
---- a/package.json
++++ b/package.json
@@@ -30,7 +30,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.406.0",
++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.416.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.150.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.223.0",
"pg": "^8.23.0",
ddiff --git a/server/events/outbox.js b/server/events/outbox.js
iindex 9481bff..6463260 100644
---- a/server/events/outbox.js
++++ b/server/events/outbox.js
@@@ -28,8 +28,8 @@ const TOPIC_SET = new Set(TOPICS);
*/
const UPDATED_TOPIC = 'codes.task.updated';
/** A ticket follows its pull request (AL5): bound, follow-up started, ended. Payloads are plain JSON; the
-- * service manifest's eventsProduced stays the codes.task.* five (contracts.test.js), so these are the
-- * portal's view, not a new contract. */
++ * service manifest's eventsProduced names the codes.task.* topics (the five states plus updated, since
++ * OpenVibe.Contracts 0.416.0), so these are the portal's view, not a new contract. */
const PR_TOPICS = Object.freeze(['codes.pr.bound', 'codes.pr.followup', 'codes.pr.ended']);
const PR_TOPIC_SET = new Set(PR_TOPICS);
const MAX_BACKOFF_MS = 5 * 60_000;
ddiff --git a/test/contracts.test.js b/test/contracts.test.js
iindex f2ade20..3e728b0 100644
---- a/test/contracts.test.js
++++ b/test/contracts.test.js
@@@ -50,7 +50,7 @@ const { check, done } = require('./helpers/boot');
await check('every codes.task.* payload validates against the pinned contracts, and the manifest names the topics', async () => {
const contracts = require('openvibe-contracts');
-- const { TOPICS, payloadOf } = require('../server/events/outbox');
++ const { TOPICS, UPDATED_TOPIC, payloadOf } = require('../server/events/outbox');
const row = { id: 'tsk_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3', agent: 'claude', repo: 'https://github.com/OpenVibers/OpenVibe.Codes.git',
started_at: '2026-10-28T16:00:00.000Z', finished_at: null, error: null, result: null };
const rows = [
@@@ -70,7 +70,9 @@ const { check, done } = require('./helpers/boot');
assert.strictEqual(payloadOf(rows[2]).repo, 'OpenVibers/OpenVibe.Codes');
assert.strictEqual(payloadOf(rows[2]).files_changed, 2);
const manifest = require('openvibe-contracts/manifests/services/codes.json');
-- assert.deepStrictEqual(manifest.eventsProduced, TOPICS);
++ // The released manifest may name more than the five state topics (codes.task.updated joined them in
++ // OpenVibe.Contracts 0.416.0); every topic the code publishes must be named there.
++ for (const topic of [...TOPICS, UPDATED_TOPIC]) assert.ok(manifest.eventsProduced.includes(topic), topic);
assert.ok(manifest.eventsConsumed.includes('run.job.succeeded') && manifest.eventsConsumed.includes('network.account.deleted'));
assert.ok(!fs.existsSync(path.join(__dirname, '..', 'docs', 'contracts-proposal')), 'the proposal moved to Contracts 0.232.0');
});