openvibers/openvibe.chat Commits

N-1 fixtures re-recorded from a2d100d, the Chat release now in production, with Live's widget at 06cf38b (npm run n-1:record).

OP OpenVibers committed 27 Sept 2026 · ccc5349918 · 2 files, +28 −13


Changes

ddiff --git a/test/fixtures/n-1/client.json b/test/fixtures/n-1/client.json
iindex 99ae82f..db9fc9c 100644
---- a/test/fixtures/n-1/client.json
++++ b/test/fixtures/n-1/client.json
@@@ -1,38 +1,41 @@
{
"service": "chat",
-- "release": "88202c14a966a312f05ceda17983cadec9918854",
-- "recorded_at": "2026-09-27T22:05:25.723Z",
++ "release": "a2d100db6ae74616273cfb3d9e96188c68d1cc1f",
++ "recorded_at": "2026-09-27T23:24:33.583Z",
"note": "N-1 fixture: written by `npm run n-1:record`, replayed by test/n-1.test.js",
"clients": {
-- "live": "efab01493b4d5d790e96d141f3fe8aa37766a9bd"
++ "live": "06cf38b12faa92ce5ee8bc335ce5f0110b1c6537"
},
"manifest": {
"service": "chat",
-- "release": "88202c14a966",
-- "released_at": "2026-09-27T22:00:25.000Z",
-- "booted_at": "2026-09-27T22:05:20.815Z",
-- "contracts_version": "0.57.0",
++ "release": "a2d100db6ae7",
++ "released_at": "2026-09-27T23:14:50.000Z",
++ "booted_at": "2026-09-27T23:24:28.601Z",
++ "contracts_version": "0.71.0",
"packages": {
"openvibe-shared": "1.22.0",
"openvibe-sdk": "0.11.0",
-- "openvibe-contracts": "0.57.0"
++ "openvibe-contracts": "0.71.0"
},
"min_client_release": null,
"mixed_version_window_hours": 24,
"components": {
"shell": {
"kind": "script",
-- "version": "88202c14a966"
++ "version": "a2d100db6ae7"
},
"server": {
"kind": "server",
-- "version": "88202c14a966"
++ "version": "a2d100db6ae7"
}
},
"assets": {},
"schema_generation": null,
"schema_compatible_from": null,
"contract_ranges": {},
++ "client_generation": null,
++ "min_client_generation": null,
++ "shell": null,
"metrics_url": "/release-metrics"
},
"dynamic_calls": 52,
ddiff --git a/test/fixtures/n-1/worker.json b/test/fixtures/n-1/worker.json
iindex 976d996..1ec90bd 100644
---- a/test/fixtures/n-1/worker.json
++++ b/test/fixtures/n-1/worker.json
@@@ -1,7 +1,7 @@
{
"service": "chat",
-- "release": "88202c14a966a312f05ceda17983cadec9918854",
-- "recorded_at": "2026-09-27T22:05:25.723Z",
++ "release": "a2d100db6ae74616273cfb3d9e96188c68d1cc1f",
++ "recorded_at": "2026-09-27T23:24:33.583Z",
"note": "N-1 fixture: written by `npm run n-1:record`, replayed by test/n-1.test.js",
"user_version": 0,
"schema": [
@@@ -93,7 +93,8 @@
"chat_meta": []
},
"lazy": [
-- "CREATE TABLE IF NOT EXISTS token_revocations ( subject_id TEXT PRIMARY KEY, valid_after_ms INTEGER NOT NULL, reason TEXT, updated_at INTEGER NOT NULL )"
++ "CREATE TABLE IF NOT EXISTS token_revocations ( subject_id TEXT PRIMARY KEY, valid_after_ms INTEGER NOT NULL, reason TEXT, updated_at INTEGER NOT NULL )",
++ "CREATE TABLE IF NOT EXISTS account_data_events ( id TEXT PRIMARY KEY, kind TEXT NOT NULL, subject TEXT NOT NULL, outcome TEXT, sent_at TEXT, applied_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) )"
],
"statements": [
"DELETE FROM audio_requests WHERE state IN ('played', 'skipped', 'failed') AND COALESCE(finished_at, created_at) < ?",
@@@ -103,6 +104,7 @@
"DELETE FROM channel_sounds WHERE id = ?",
"DELETE FROM dm_blocks WHERE blocker_id = ? AND blocked_id = ?",
"DELETE FROM dm_blocks WHERE id = ?",
++ "DELETE FROM dm_conversations WHERE id NOT IN (SELECT conversation_id FROM dm_participants)",
"DELETE FROM dm_messages WHERE id = ?",
"DELETE FROM dm_participants WHERE conversation_id = ? AND user_id = ?",
"DELETE FROM emotes WHERE id = ?",
@@@ -111,8 +113,11 @@
"DELETE FROM live_mirror_outbox WHERE seq <= ?",
"DELETE FROM room_attachments WHERE room_id = ? AND service = ? AND resource = ?",
"DELETE FROM room_members WHERE room_id = ? AND user_id = ?",
++ "DELETE FROM room_messages WHERE room_id = ?",
++ "DELETE FROM rooms WHERE id = ?",
"DELETE FROM tts_voice_overrides WHERE identity_key = ?",
"DELETE FROM user_tags WHERE user_id = ? AND tag_id = ?",
++ "INSERT INTO account_data_events (id, kind, subject, outcome) VALUES (?, ?, ?, ?)",
"INSERT INTO audio_requests (room, stream_id, channel_user_id, kind, state, requested_by, identity_key, label, payload, dedupe_key, created_at) VALUES (?, ?, ?, ?, 'queued', ?, ?, ?, ?, ?, ?)",
"INSERT INTO bridge_applied (key, result, applied_at) VALUES (?, ?, ?)",
"INSERT INTO bridge_refs (boot, ref, id, at) VALUES (?, ?, ?, ?) ON CONFLICT(boot, ref) DO UPDATE SET id = excluded.id, at = excluded.at",
@@@ -150,7 +155,9 @@
"INSERT OR IGNORE INTO dm_participants (conversation_id, user_id, subject_id) VALUES (?, ?, ?)",
"INSERT OR IGNORE INTO stream_first_chats (chatter_key, channel_user_id) VALUES (?, ?)",
"INSERT OR IGNORE INTO user_tags (user_id, tag_id, source) VALUES (?, ?, ?)",
++ "INSERT OR REPLACE INTO account_data_events (id, kind, subject, outcome, sent_at) VALUES (?, ?, ?, ?, ?)",
"INSERT OR REPLACE INTO hidden_relay_users (channel_id, platform, external_username, action, reason, created_by) VALUES (?, ?, ?, ?, ?, ?)",
++ "SELECT * FROM account_data_events WHERE id = ?",
"SELECT * FROM audio_requests WHERE id = ?",
"SELECT * FROM audio_requests WHERE id = ? AND room = ? AND state = 'playing'",
"SELECT * FROM audio_requests WHERE id = ? AND room = ? AND state IN ('queued', 'playing')",
@@@ -199,6 +206,7 @@
"SELECT 1 FROM dm_participants WHERE conversation_id = ? AND user_id = ?",
"SELECT 1 FROM hidden_relay_users WHERE platform = ? AND external_username = ? AND (channel_id = ? OR channel_id IS NULL)",
"SELECT 1 FROM network_blocks WHERE blocker_subject = ? AND blocked_subject = ? AND active = 1",
++ "SELECT 1 FROM room_members WHERE room_id = ? LIMIT 1",
"SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?",
"SELECT 1 FROM stream_first_chats WHERE chatter_key = ? AND channel_user_id = ?",
"SELECT COALESCE(MAX(id), 0) AS m FROM ctx_streams",
@@@ -223,6 +231,7 @@
"SELECT MAX(id) AS id FROM chat_messages",
"SELECT MAX(id) AS id FROM room_messages WHERE room_id = ?",
"SELECT MIN(timestamp) AS t FROM chat_messages WHERE anon_id = ? AND user_id IS NULL AND is_deleted = 0",
++ "SELECT authority FROM table_authority WHERE table_name = ?",
"SELECT blocker_subject FROM network_blocks WHERE blocked_subject = ? AND active = 1",
"SELECT c.* FROM dm_conversations c JOIN dm_participants p1 ON p1.conversation_id = c.id AND p1.user_id = ? JOIN dm_participants p2 ON p2.conversation_id = c.id AND p2.user_id = ? WHERE c.is_group = 0",
"SELECT c.id, c.name, c.is_group, c.updated_at, (SELECT dm.message FROM dm_messages dm WHERE dm.conversation_id = c.id ORDER BY dm.created_at DESC LIMIT 1) AS last_message, (SELECT dm.sender_id FROM dm_messages dm WHERE dm.conversation_id = c.id ORDER BY dm.created_at DESC LIMIT 1) AS last_sender_id, (SELECT dm.created_at FROM dm_messages dm WHERE dm.conversation_id = c.id ORDER BY dm.created_at DESC LIMIT 1) AS last_message_at, (SELECT COUNT(*) FROM dm_messages dm WHERE dm.conversation_id = c.id AND dm.created_at > p.last_read_at AND dm.sender_id != ?) AS unread_count FROM dm_conversations c JOIN dm_participants p ON p.conversation_id = c.id AND p.user_id = ? ORDER BY COALESCE((SELECT dm.created_at FROM dm_messages dm WHERE dm.conversation_id = c.id ORDER BY dm.created_at DESC LIMIT 1), c.created_at) DESC",
@@@ -274,6 +283,7 @@
"SELECT s.*, u.username, u.display_name, u.avatar_url, u.profile_color, ms.slug AS managed_stream_slug, ms.title AS managed_stream_title FROM ctx_streams s LEFT JOIN ctx_users u ON s.user_id = u.id LEFT JOIN ctx_managed_streams ms ON s.managed_stream_id = ms.id",
"SELECT s.*, u.username, u.display_name, u.avatar_url, u.profile_color, ms.slug AS managed_stream_slug, ms.title AS managed_stream_title FROM ctx_streams s LEFT JOIN ctx_users u ON s.user_id = u.id LEFT JOIN ctx_managed_streams ms ON s.managed_stream_id = ms.id WHERE s.id = ?",
"SELECT s.*, u.username, u.display_name, u.avatar_url, u.profile_color, ms.slug AS managed_stream_slug, ms.title AS managed_stream_title FROM ctx_streams s LEFT JOIN ctx_users u ON s.user_id = u.id LEFT JOIN ctx_managed_streams ms ON s.managed_stream_id = ms.id WHERE s.user_id = ? ORDER BY s.created_at DESC LIMIT ?",
++ "SELECT sent_at FROM account_data_events WHERE id = ?",
"SELECT seq, event_id, event FROM events_outbox WHERE sent_at IS NULL ORDER BY seq LIMIT 100",
"SELECT seq, tbl, op, pk FROM live_mirror_outbox ORDER BY seq LIMIT ?",
"SELECT subject_id FROM ctx_users WHERE id = ?",
@@@ -285,6 +295,7 @@
"SELECT valid_after_ms FROM token_revocations WHERE subject_id = ?",
"SELECT value FROM chat_meta WHERE key = ?",
"SELECT voice, pitch, speed, gap FROM tts_voice_overrides WHERE identity_key = ?",
++ "UPDATE account_data_events SET sent_at = ? WHERE id = ?",
"UPDATE audio_requests SET attempts = attempts + 1 WHERE id = ?",
"UPDATE audio_requests SET state = 'failed', finished_at = ?, error = 'expired', actor = 'system' WHERE state = 'queued' AND created_at < ?",
"UPDATE audio_requests SET state = 'played', finished_at = ?, error = 'delivered before a restart' WHERE state = 'playing'",
@@@ -319,6 +330,7 @@
"UPDATE room_messages SET is_deleted = 1, deleted_by = ? WHERE id = ?",
"UPDATE rooms SET message_count = message_count + 1, last_message_at = CURRENT_TIMESTAMP WHERE id = ?",
"UPDATE rooms SET name = ?, topic = ?, visibility = ?, slow_seconds = ?, join_role = ? WHERE id = ?",
++ "UPDATE rooms SET owner_subject = NULL WHERE id = ?",
"UPDATE table_authority SET authority = ? WHERE table_name = ?"
]
}