openvibers/openvibe.shared Commits

Add a CONFIRMATIONREQUESTED notification type and release 2.7.0

OP OpenVibers committed 4 Oct 2026 · 4c6426ed5e · 7 files, +26 −6

Asked: Part of a cross-repository initiative (init-t2-step-4-dossier-home-works-1004T2305): T2 step 4 (dossier /home/workstation/openvibe/agents/ds/prep/T2.md row 4, WS-Z2 slice 9 remainder): an agent's owner is notified when a confirmation for that agent's sensitive capability use is created and waits fo…
Harness job init-t2-step-4-dossie-2305-s1-231035 (plan T2).

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex a3ad0a7..f6a5752 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -6,6 +6,12 @@ A release is the git tag `vX.Y.Z`; consumers pin the tag's tarball (see README).
## Unreleased
++## 2.7.0 — 2026-10-04
++
++- `openvibe-shared/notifications`: a new `CONFIRMATION_REQUESTED` type (category `system`, priority
++ `high`, icon 🔑, title "Approval needed"). OpenVibe.Network sends it to an agent's owner when a
++ confirmation for that agent's sensitive capability use is created and waits for them.
++
## 2.6.0 — 2026-10-03
- `openvibe-shared/shell` (new): `page(o)` composes a whole server-rendered document — the doctype
ddiff --git a/README.md b/README.md
iindex 073369f..9f54933 100644
---- a/README.md
++++ b/README.md
@@@ -2,7 +2,7 @@
> Versioned UI, the OpenVibe Frame (the navbar, footer and "shipped" views every site sits in), SEO, legal and release-client packages every OpenVibe site renders.
--**Status:** alpha, v2.6.0 (every release is a tag; see [CHANGELOG.md](CHANGELOG.md)). Every deployed
++**Status:** alpha, v2.7.0 (every release is a tag; see [CHANGELOG.md](CHANGELOG.md)). Every deployed
consumer installs a tagged release and none keeps a vendored copy
([docs/migration-plan.md](docs/migration-plan.md) is done); each repository's `package.json` names
the tag it pins.
ddiff --git a/STATUS.json b/STATUS.json
iindex 4e34480..fd09c3f 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -4,7 +4,7 @@
"code": true,
"wave": "W2",
"package": "openvibe-shared",
-- "version": "2.6.0",
++ "version": "2.7.0",
"plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)",
"deployed": false,
"deployment": "none of its own: a package released as git tags; OpenVibe.Network serves /shared/* from its pinned tag, and a site can serve its own pinned copy (openvibe-shared/serve)",
@@@ -17,7 +17,8 @@
"page shell: openvibe-shared/shell page(), the shared page shell every web product renders through",
"shipped pill, recent list and /updates log",
"server helpers: ready, metrics, trace, egress, config, analytics, legal, SEO, frame SSR",
-- "browser harness and perf budgets for tests"
++ "browser harness and perf budgets for tests",
++ "a CONFIRMATION_REQUESTED notification type: an agent owner is told when a sensitive-capability confirmation awaits them"
],
"updated": "2026-10-04"
}
ddiff --git a/notifications.js b/notifications.js
iindex 1aabad1..686e8bd 100644
---- a/notifications.js
++++ b/notifications.js
@@@ -72,6 +72,7 @@ const TYPES = Object.freeze({
// System / Security
PASSWORD_CHANGED: { category: 'system', priority: 'critical', icon: '🔒', title: 'Password Changed' },
NEW_LOGIN: { category: 'system', priority: 'high', icon: '🔐', title: 'New Login Detected' },
++ CONFIRMATION_REQUESTED: { category: 'system', priority: 'high', icon: '🔑', title: 'Approval needed' },
EMAIL_VERIFIED: { category: 'system', priority: 'normal', icon: '✅', title: 'Email Verified' },
ACCOUNT_LINKED: { category: 'system', priority: 'normal', icon: '🔗', title: 'Account Linked' },
ddiff --git a/package-lock.json b/package-lock.json
iindex 78792de..e1af400 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -1,12 +1,12 @@
{
"name": "openvibe-shared",
-- "version": "2.6.0",
++ "version": "2.7.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "openvibe-shared",
-- "version": "2.6.0",
++ "version": "2.7.0",
"license": "MIT",
"bin": {
"openvibe-build-assets": "scripts/build-assets.js"
ddiff --git a/package.json b/package.json
iindex 34ac524..df09d6b 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-shared",
-- "version": "2.6.0",
++ "version": "2.7.0",
"description": "Shared navbar, footer, themes, icons, legal pages, SEO, auth and analytics for every OpenVibe site",
"main": "index.js",
"bin": {
ddiff --git a/test/notifications.test.js b/test/notifications.test.js
nnew file mode 100644
iindex 0000000..cbbf618
---- /dev/null
++++ b/test/notifications.test.js
@@@ -0,0 +1,12 @@
++'use strict';
++// openvibe-shared/notifications: the CONFIRMATION_REQUESTED type an agent's owner receives when a
++// sensitive-capability confirmation waits for them, and its re-export from the package root.
++const assert = require('node:assert/strict');
++const { TYPES } = require('../notifications');
++
++assert.deepStrictEqual(TYPES.CONFIRMATION_REQUESTED,
++ { category: 'system', priority: 'high', icon: '🔑', title: 'Approval needed' });
++assert.ok(Object.isFrozen(TYPES), 'TYPES stays frozen');
++assert.equal(require('..').NOTIFICATION_TYPES.CONFIRMATION_REQUESTED.title, 'Approval needed');
++
++console.log('notifications: all checks passed');