openvibers/openvibe.shared Commits
Add a CONFIRMATIONREQUESTED notification type and release 2.7.0
Changes
@@@ -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@@@ -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 deployedconsumer 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` namesthe tag it pins.@@@ -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"}@@@ -72,6 +72,7 @@ const TYPES = Object.freeze({// System / SecurityPASSWORD_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' },@@@ -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"@@@ -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": {nnew file mode 100644@@@ -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');
@@ -6,6 +6,12 @@ A release is the git tag `vX.Y.Z`; consumers pin the tag's tarball (see README).
@@ -6,6 +6,12 @@ A release is the git tag `vX.Y.Z`; consumers pin the tag's tarball (see README).
## Unreleased
## 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
## 2.6.0 — 2026-10-03
- `openvibe-shared/shell` (new): `page(o)` composes a whole server-rendered document — the doctype
- `openvibe-shared/shell` (new): `page(o)` composes a whole server-rendered document — the doctype
@@ -2,7 +2,7 @@
@@ -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.
> 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
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
([docs/migration-plan.md](docs/migration-plan.md) is done); each repository's `package.json` names
the tag it pins.
the tag it pins.
@@ -4,7 +4,7 @@
@@ -4,7 +4,7 @@
"code": true,
"code": true,
"wave": "W2",
"wave": "W2",
"package": "openvibe-shared",
"package": "openvibe-shared",
- "version": "2.6.0",
+ "version": "2.7.0",
"plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)",
"plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)",
"deployed": false,
"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)",
"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 @@
@@ -17,7 +17,8 @@
"page shell: openvibe-shared/shell page(), the shared page shell every web product renders through",
"page shell: openvibe-shared/shell page(), the shared page shell every web product renders through",
"shipped pill, recent list and /updates log",
"shipped pill, recent list and /updates log",
"server helpers: ready, metrics, trace, egress, config, analytics, legal, SEO, frame SSR",
"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"
"updated": "2026-10-04"
}
}
@@ -72,6 +72,7 @@ const TYPES = Object.freeze({
@@ -72,6 +72,7 @@ const TYPES = Object.freeze({
// System / Security
// System / Security
PASSWORD_CHANGED: { category: 'system', priority: 'critical', icon: '🔒', title: 'Password Changed' },
PASSWORD_CHANGED: { category: 'system', priority: 'critical', icon: '🔒', title: 'Password Changed' },
NEW_LOGIN: { category: 'system', priority: 'high', icon: '🔐', title: 'New Login Detected' },
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' },
EMAIL_VERIFIED: { category: 'system', priority: 'normal', icon: '✅', title: 'Email Verified' },
ACCOUNT_LINKED: { category: 'system', priority: 'normal', icon: '🔗', title: 'Account Linked' },
ACCOUNT_LINKED: { category: 'system', priority: 'normal', icon: '🔗', title: 'Account Linked' },
@@ -1,12 +1,12 @@
@@ -1,12 +1,12 @@
{
{
"name": "openvibe-shared",
"name": "openvibe-shared",
- "version": "2.6.0",
+ "version": "2.7.0",
"lockfileVersion": 3,
"lockfileVersion": 3,
"requires": true,
"requires": true,
"packages": {
"packages": {
"": {
"": {
"name": "openvibe-shared",
"name": "openvibe-shared",
- "version": "2.6.0",
+ "version": "2.7.0",
"license": "MIT",
"license": "MIT",
"bin": {
"bin": {
"openvibe-build-assets": "scripts/build-assets.js"
"openvibe-build-assets": "scripts/build-assets.js"
@@ -1,6 +1,6 @@
@@ -1,6 +1,6 @@
{
{
"name": "openvibe-shared",
"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",
"description": "Shared navbar, footer, themes, icons, legal pages, SEO, auth and analytics for every OpenVibe site",
"main": "index.js",
"main": "index.js",
"bin": {
"bin": {
new file mode 100644
new file mode 100644
@@ -0,0 +1,12 @@
@@ -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');