What shipped across OpenVibe

Every change deployed to OpenVibe, newest first. Each line is a commit from the OpenVibers repositories, linked to the change itself. When enough have gathered, or a large feature lands, they are written up as Patch notes on openvibe.blog. JSON: /api/v1/changelog.

2026-09-28

7c8af01ToolsWhois and RDAP lookups work again: rdap.org answered every request with 403 because Node's fetch sends no real User-Agent. Domains now go straight to their TLD's own RDAP server from IANA's bootstrap file (kept a day), with a descriptive…OpenVibers · 23:53 UTC
9339e15Toolsnpm test no longer counts a skipped test as passed (roadmap WS-Q task 7, the rule of openvibe-shared/test-runner). test/run.js counted every app test that exited 0 as passed, so the three audio tests without ffmpeg and sdk-client without…OpenVibers · 23:53 UTC
4f4ed6eToolsREADME and STATUS.json are current (roadmap WS-U task 3): the README gains Purpose (the opening overview), Owns, Does not own, Depends on (the per-app pins: contracts v0.63.0, sdk v0.12.0, shared v1.23.0), Capabilities (the six tools.*…OpenVibers · 23:53 UTC
768e085Networkopenvibe-shared v1.28.1 (from its earlier pin): the account panel keeps its sections' height on phones, the codes mark at rest shows its V, no empty space under the footer on phones. Images may come from openvibe.media (img-src): avatars…OpenVibers · 23:51 UTC
0d227fbCodesopenvibe-shared v1.28.1 (from its earlier pin): the account panel keeps its sections' height on phones, the codes mark at rest shows its V, no empty space under the footer on phones. npm test: 28/28 test files passedOpenVibers · 23:50 UTC
d9a45b0CodesThe limits page test no longer forbids the word "free": the owner took the no-free-copy rule down (2026-09-28); OpenVibe leads with generous free tiers.OpenVibers · 23:50 UTC
a825d80LiveThe home banner's go-live area, redesigned: a primary "Go live from your browser" button and a "How it works" button side by side (stacked full width on phones), with what you don't need as one checklist line (no OBS, no downloads, no…OpenVibers · 23:50 UTC
d6f220eLiveTests no longer forbid "free" or "$0" in llms.txt, the home page metadata and the broadcast sign-in gate: the owner took the no-free-copy rule down (2026-09-28); OpenVibe leads with generous free tiers.OpenVibers · 23:50 UTC
d20e033LiveN-1 fixtures re-recorded from 068d559, the release now in production (npm run n-1:record).OpenVibers · 23:50 UTC
405682cOpenReOpenRe.Stream on PostgreSQL (ADR-035, roadmap WS-X2 G5): openvibe-sdk/db, async throughout, every transaction serializable.OpenVibers · 23:32 UTC
18faddcHostswitch-service.sh takes SWITCH_UNITS (every unit to stop, patterns for per-release worker instances; the first one's environment runs the import), SWITCH_DIR (a release layout's origin is read from repo/) and SWITCH_AFTER (run after the…OpenVibers · 23:15 UTC
217aa62HostC-89 media: Media's SQLite file after its switch to PostgreSQL (2026-09-28 22:54 UTC); archive and delete 2026-10-05.OpenVibers · 23:15 UTC
fe084deMediaReadiness and /metrics await the events outbox status: events.status() is async on PostgreSQL, so /api/ready read a promise and reported the running relay as skipped (seen right after the switch).OpenVibers · 22:57 UTC
e3f2239MediaMedia on PostgreSQL (ADR-035, roadmap WS-X2): openvibe-sdk/db, async throughout, jobs and quotas safe under concurrency.OpenVibers · 22:28 UTC
019d853Hostswitch-service.sh waits for the service's protected sessions to be idle (two checks a minute apart, up to 12 hours) before stopping it: a Media switch must not cut a recording.OpenVibers · 22:25 UTC
3ac6a09HostC-89 billing: Billing's SQLite ledger after its switch to PostgreSQL (2026-09-28 22:22 UTC); archive and delete 2026-10-05.OpenVibers · 22:25 UTC
19662b5HostInventory: Media's recording guard reads recordings_in_progress from its /api/ready.OpenVibers · 22:25 UTC
fe6f008HostCompatibility register: the C-89 community backup's name.OpenVibers · 22:25 UTC
1ae01dbHostCompatibility register: C-89 community (Community on PostgreSQL since 2026-09-28 19:41 UTC).OpenVibers · 22:25 UTC
0d566b0HostCompatibility register: C-89 events (Events on PostgreSQL since 2026-09-28 18:31 UTC).OpenVibers · 22:25 UTC
5fc1af3BillingBilling on PostgreSQL (ADR-035, roadmap WS-X2): openvibe-sdk/db, async throughout, every money movement serializable.OpenVibers · 22:19 UTC
8f021e6CommunityCommunity on PostgreSQL (ADR-035, roadmap WS-X2, repository pass G3).OpenVibers · 19:33 UTC
7bcccebEventsEvents: iovalkey is a dependency, test:pg boots with Valkey, drain() waits for mid-pass completions.OpenVibers · 18:27 UTC
f71906eEventsEvents on PostgreSQL (ADR-035, roadmap WS-X2, repository pass G3).OpenVibers · 18:27 UTC
2c73902HostCompatibility register: C-89 ai and host. AI moved to PostgreSQL at 17:05 UTC (release af9166a; the first attempt stopped before importing and restarted the old release, as the switch script intends) and Host Stage B at 17:08 UTC (release…OpenVibers · 17:09 UTC
f5fdf5dHostStage B readiness names the store: the db check makes a real round trip (db.ready) and reports postgresql or pglite with the pool, as the other services on PostgreSQL do.OpenVibers · 17:09 UTC
9f24032AIReadiness names the store: the db check makes a real round trip (db.ready) and reports postgresql or pglite with the pool, as the other services on PostgreSQL do. npm test 23/23.OpenVibers · 17:07 UTC
03d70e1HostHost Stage B moves to PostgreSQL and Valkey (ADR-035, roadmap WS-X2, repository-pass group G2), async from end to end.OpenVibers · 17:02 UTC
91064f1HostCompatibility register: C-89 codes and vip. Codes moved to PostgreSQL at 16:09 UTC (release 6329b53) and VIP at 16:47 UTC (release 9ff4277), imports verified; their SQLite files stay read-only as the 7-day rollback, archived and deleted on…OpenVibers · 17:02 UTC
9f5fd31HostCompatibility register: C-89 search and sources. Search moved to PostgreSQL at 15:41 UTC (release fa45c65, its full-text index rebuilt from the imported documents) and Sources at 16:00 UTC (release cee509c), imports verified; their SQLite…OpenVibers · 17:02 UTC
7311963HostCompatibility register: C-89 trade and reviews. Trade moved to PostgreSQL at 15:03 UTC (release e140fcb) and Reviews at 15:05 UTC (release 756f62e), imports verified, with roles/data/switch-service.sh; group G1 is complete. Their SQLite…OpenVibers · 17:02 UTC
b87f20fHostroles/data/switch-service.sh: the production switch of one service from its SQLite file to PostgreSQL (ADR-035), as run for News, Deals, Coupons and Trade on 2026-09-28. It installs main as ubuntu in /var/tmp, stops the unit, keeps a…OpenVibers · 17:02 UTC
34765b3HostCompatibility register: C-89 deals and coupons. Deals moved to PostgreSQL at 14:33 UTC (release 69d3e47) and Coupons at 14:42 UTC (release 040dc3e), imports verified; their SQLite files stay read-only as the 7-day rollback, archived and…OpenVibers · 17:02 UTC
fbb00bdHostCompatibility register: C-89 news. News moved to PostgreSQL at 14:22 UTC (release cf653dd, import verified); its SQLite file stays read-only as the 7-day rollback, archived and deleted on 2026-10-05.OpenVibers · 17:02 UTC
dcbef2cHostCompatibility register: C-89 blog. Blog moved to PostgreSQL on 2026-09-28 at 13:52 UTC (release 8c8259f, import verified). Its SQLite file stays read-only as the rollback until 2026-10-05.OpenVibers · 17:02 UTC
9a3aadcHostCompatibility register: C-89 wiki. Wiki moved to PostgreSQL on 2026-09-28 at 13:29 UTC (release ec90476, import verified). Its SQLite file stays read-only as the rollback until 2026-10-05.OpenVibers · 17:02 UTC
339da31HostCompatibility register: a PostgreSQL switches section (ADR-035, WS-X2), one row per service at its switch. The first is C-89 tips: Tips moved to PostgreSQL on 2026-09-28 at 12:46 UTC (release 9987de4, import verified), and its SQLite file…OpenVibers · 17:02 UTC
af9166aAISums of bigint columns (tokens, requests, cache hits) are cast to bigint: on PostgreSQL they are numeric, which openvibe-sdk/db returns as exact text, and the usage summary, status and run totals would have carried strings. cost_usd is…OpenVibers · 17:01 UTC
1a52447AIAI moves to PostgreSQL (ADR-035, roadmap WS-X2, repository-pass group G2), async from end to end.OpenVibers · 17:01 UTC
e2474e2SearchDocument counts: the tombstone sum is cast to bigint. On PostgreSQL SUM of a bigint column is numeric, which openvibe-sdk/db returns as exact text, so /api/ready's details reported the count as a string. npm test 12/12.OpenVibers · 16:59 UTC
9ff4277VIPscripts/import-live.js opens the database with openDb(config) (PostgreSQL, ADR-035), not the old SQLite path. npm test import 1/1.OpenVibers · 16:38 UTC
4f4ab36VIPVIP moves to PostgreSQL and Valkey (ADR-035, roadmap WS-X2, repository-pass group G2), async from end to end.OpenVibers · 16:38 UTC
c044d02CodesReadiness names the store: the db check makes a real round trip (db.ready) and reports postgresql or pglite with the pool, as the other services on PostgreSQL do. npm test 28/28.OpenVibers · 16:11 UTC
6329b53CodesCodes moves to PostgreSQL and Valkey (ADR-035, roadmap WS-X2, repository-pass group G2), async from end to end.OpenVibers · 16:00 UTC
cee509cSourcesopenvibe-sdk v0.20.1: queries inside a transaction run one at a time on its connection (no queued query on a busy node-postgres client). npm run test:pg 11/11.OpenVibers · 15:45 UTC
6f68dd5SourcesSources moves to PostgreSQL (ADR-035, roadmap WS-X2, repository-pass group G2), async from end to end.OpenVibers · 15:45 UTC
fa45c65SearchSearch moves to PostgreSQL (ADR-035, roadmap WS-X2, repository-pass group G2), with a PostgreSQL full-text engine.OpenVibers · 15:34 UTC
298403fReviewsopenvibe-shared v1.27.0 (from v1.25.0): an async route handler's rejection now reaches the error handler instead of ending the process. Express 4 leaves such a promise unhandled and Node 22 exits on it; instrument() now applies…OpenVibers · 15:29 UTC
f80bd45Tradeopenvibe-shared v1.27.0 (from v1.25.0): an async route handler's rejection now reaches the error handler instead of ending the process. Express 4 leaves such a promise unhandled and Node 22 exits on it; instrument() now applies…OpenVibers · 15:29 UTC
5ae03b0Couponsopenvibe-shared v1.27.0 (from v1.25.0): an async route handler's rejection now reaches the error handler instead of ending the process. Express 4 leaves such a promise unhandled and Node 22 exits on it; instrument() now applies…OpenVibers · 15:29 UTC