openvibers/openvibe.chat Commits

Pin openvibe-contracts v0.158.0 and document the dropped mirror outbox

OP OpenVibers committed 14 Oct 2026 · 24bb624560 · 5 files, +10 −11

Asked: T3 step 3 (L3), dossier /home/workstation/openvibe/agents/ds/prep/T3.md lines 112-129 plus READY NOW lines 127-129. ONE pull request in OpenVibe.Chat from current origin/main (git fetch first; the local checkout may be stale). (1) Delete docs/capabilities-proposal/live.chat_mirror.write.json. (2) F…
Harness job chat-t3-step-3-l3-dossier-014212.

Changes

ddiff --git a/README.md b/README.md
iindex 6579af1..e2716b7 100644
---- a/README.md
++++ b/README.md
@@@ -68,8 +68,8 @@ before changing behaviour.** Browser JavaScript does not change; nginx routes th
`DATABASE_URL` outside production it runs on an embedded PGlite in `data/pglite` (`CHAT_PGLITE_DIR`).
`migrations/0001_initial.sql` is the whole schema (timestamps stay SQLite-format text through
`ov_now()`/`datetime()`); `0006_stop_live_mirror_triggers.sql` dropped the twelve read-mirror capture
-- triggers, and `live_mirror_outbox` stays, idle, until a contract migration drops it (after 0008's
-- SDK outbox: a held contract would hold every migration after it).
++ triggers, and `0009_drop_live_mirror_outbox.sql` drops `live_mirror_outbox` (a contract migration,
++ after 0008's SDK outbox: a held contract would hold every migration after it).
`VALKEY_URL`/`VALKEY_PREFIX` put the per-actor rate-limit counters on Valkey instead of this process.
- **The six chat tables** (`channel_moderators`, `channel_moderation_settings`, `emotes`, `user_tags`,
`chat_ai_summaries`, `chat_timeline_events`): Chat's own since the C-04 cutover — Chat is their only
@@@ -574,7 +574,7 @@ left OpenVibe.Sites, and this repository's vhost serves it.
Part of the [OpenVibe network](https://openvibe.network). Built in the open by [OpenVibers](https://github.com/OpenVibers).
<!-- versions:start -->
--- openvibe-contracts: v0.143.0
++- openvibe-contracts: v0.158.0
- openvibe-sdk: v0.44.0
- openvibe-shared: v4.1.3
<!-- versions:end -->
ddiff --git a/STATUS.json b/STATUS.json
iindex 49a0f45..6f4cf3c 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -7,7 +7,7 @@
"runtime": "node 22, express, ws, PostgreSQL through openvibe-sdk/db (DATABASE_URL via PgBouncer, DATABASE_DIRECT_URL for migrations/; embedded PGlite outside production), Valkey for the per-actor limits (VALKEY_URL)",
"port": 4400,
"domain": "openvibe.chat (Chat's own site: global chat, messages, rooms, settings; the service manifest records it live since 2026-09-24) and openvibe.live (/ws/chat, /api/chat/, /api/dm/, /api/tts/, /api/sounds via an nginx include in openvibe.live's vhost)",
-- "contracts": "openvibe-contracts v0.143.0",
++ "contracts": "openvibe-contracts v0.158.0",
"sdk": "openvibe-sdk v0.44.0",
"shared": "openvibe-shared v4.1.3",
"capabilities": [
ddiff --git a/package-lock.json b/package-lock.json
iindex e68615a..4836dcf 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -16,7 +16,7 @@
"express-rate-limit": "^7.5.0",
"iovalkey": "^0.4.0",
"multer": "^2.0.2",
-- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.143.0",
++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.158.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.44.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.1.3",
"pg": "^8.23.0",
@@@ -1020,9 +1020,8 @@
}
},
"node_modules/openvibe-contracts": {
-- "version": "0.143.0",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.143.0",
-- "integrity": "sha512-Cdbf+9RoPAUBibpM2zXQvtsiKMugb55dKubTt8pFZvAmxsLtGvX+zaC++yL1vOSub8FX3+GgqcGtoJS6tklrUg==",
++ "version": "0.158.0",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.158.0",
"license": "AGPL-3.0-only",
"dependencies": {
"ajv": "^8.17.1",
ddiff --git a/package.json b/package.json
iindex 77da07f..84f3a74 100644
---- a/package.json
++++ b/package.json
@@@ -28,7 +28,7 @@
"express-rate-limit": "^7.5.0",
"iovalkey": "^0.4.0",
"multer": "^2.0.2",
-- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.143.0",
++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.158.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.44.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.1.3",
"pg": "^8.23.0",
ddiff --git a/test/no-live-mirror.test.js b/test/no-live-mirror.test.js
iindex 70694c7..026db37 100644
---- a/test/no-live-mirror.test.js
++++ b/test/no-live-mirror.test.js
@@@ -2,8 +2,8 @@
/**
* The Live read mirror is retired (plan T3, 2026-10-05): Live #31 reads Chat's internal read API
* (server/chat/internal-reads.js) instead of its mirror-filled copies of Chat's tables, so no Chat
-- * code path enqueues into live_mirror_outbox or drains it. The table itself stays until a later
-- * contract migration drops it, and migrations/0001_initial.sql still has the per-table triggers
++ * code path enqueues into live_mirror_outbox or drains it. Migration 0009_drop_live_mirror_outbox.sql
++ * drops the table, and migrations/0001_initial.sql still has the per-table triggers
* that fill it (schema SQL, not an application code path); this guard is about the sender, its
* config and its enqueue/relay call sites never coming back.
*/