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…
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…
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.*…
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…
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 passed
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.
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…
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.
d20e033LiveN-1 fixtures re-recorded from 068d559, the release now in production (npm run n-1:record).
405682cOpenReOpenRe.Stream on PostgreSQL (ADR-035, roadmap WS-X2 G5): openvibe-sdk/db, async throughout, every transaction serializable.
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…
217aa62HostC-89 media: Media's SQLite file after its switch to PostgreSQL (2026-09-28 22:54 UTC); archive and delete 2026-10-05.
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).
e3f2239MediaMedia on PostgreSQL (ADR-035, roadmap WS-X2): openvibe-sdk/db, async throughout, jobs and quotas safe under concurrency.
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.
3ac6a09HostC-89 billing: Billing's SQLite ledger after its switch to PostgreSQL (2026-09-28 22:22 UTC); archive and delete 2026-10-05.
1ae01dbHostCompatibility register: C-89 community (Community on PostgreSQL since 2026-09-28 19:41 UTC).
5fc1af3BillingBilling on PostgreSQL (ADR-035, roadmap WS-X2): openvibe-sdk/db, async throughout, every money movement serializable.
7bcccebEventsEvents: iovalkey is a dependency, test:pg boots with Valkey, drain() waits for mid-pass completions.
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…
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.
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.
03d70e1HostHost Stage B moves to PostgreSQL and Valkey (ADR-035, roadmap WS-X2, repository-pass group G2), async from end to end.
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…
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…
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…
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…
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…
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.
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.
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.
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…
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…
1a52447AIAI moves to PostgreSQL (ADR-035, roadmap WS-X2, repository-pass group G2), async from end to end.
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.
9ff4277VIPscripts/import-live.js opens the database with openDb(config) (PostgreSQL, ADR-035), not the old SQLite path. npm test import 1/1.
4f4ab36VIPVIP moves to PostgreSQL and Valkey (ADR-035, roadmap WS-X2, repository-pass group G2), async from end to end.
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.
6329b53CodesCodes moves to PostgreSQL and Valkey (ADR-035, roadmap WS-X2, repository-pass group G2), async from end to end.
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.
6f68dd5SourcesSources moves to PostgreSQL (ADR-035, roadmap WS-X2, repository-pass group G2), async from end to end.
fa45c65SearchSearch moves to PostgreSQL (ADR-035, roadmap WS-X2, repository-pass group G2), with a PostgreSQL full-text engine.
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…
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…
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…