{"id":"pst_01M3X6ZPFFAY77GQEM9Y3N0D7V","url":"https://openvibe.blog/@openvibe/patch-notes-40-changes-across-9-sites","blog":{"id":"blg_01M362MF0EDJ7QHQTRD8A3Q981","handle":"openvibe","title":"The OpenVibe blog","url":"https://openvibe.blog/"},"title":"Patch notes: 40 changes across 9 sites","summary":"What shipped on OpenVibe from 2026-10-01 to 2026-10-02: 40 changes to OpenVibe.Live, OpenVibe.Media, OpenRe.Stream, OpenVibe.AI, OpenVibe.Billing, OpenVibe.Search and 3 more.","body_markdown":"What shipped on OpenVibe from 2026-10-01 to 2026-10-02: 40 changes to OpenVibe.Live, OpenVibe.Media, OpenRe.Stream, OpenVibe.AI, OpenVibe.Billing, OpenVibe.Search and 3 more. Every line below is a commit message from the OpenVibers repositories, linked to the change itself.\n\n## OpenVibe.Live\n\n[openvibe.live](https://openvibe.live) · [repository](https://github.com/OpenVibers/OpenVibe.Live)\n\n- N-1 fixtures re-recorded from fb3957f, the release now in production (npm run n-1:record). ([`b3b93db`](https://github.com/OpenVibers/OpenVibe.Live/commit/b3b93dbf9c671fd2a6c5a6d14e6845c964213180))\n- Add gated PostgreSQL page analytics slice ([`dc6eb16`](https://github.com/OpenVibers/OpenVibe.Live/commit/dc6eb160e3ac3028467edac484f30ef5ace244ec))\n- Tests: old-release checkouts get a process-unique worktree name, so parallel test files no longer contend on one .git/worktrees/<name>/index.lock ([`124c1a0`](https://github.com/OpenVibers/OpenVibe.Live/commit/124c1a0e99c9b2307960c07c1539c11e5d40f375))\n- finish-f1: test / test: Updated [package.json](/home/workstation/openvi… ([`e78e4f7`](https://github.com/OpenVibers/OpenVibe.Live/commit/e78e4f79645590e8abc4e9550ada667daa4367e4))\n- Pin openvibe-shared to v2.3.1 to clear the pin-drift check ([`c442a01`](https://github.com/OpenVibers/OpenVibe.Live/commit/c442a01cac01afb0d3443ed4911a3eebdac18695))\n- Bump openvibe-shared v1.30.1 → v2.3.1 ([`f08ddcd`](https://github.com/OpenVibers/OpenVibe.Live/commit/f08ddcd5ff59fc1ce2c759e2d6494c4ef6ba3707))\n- Updated [package.json](/home/workstation/openvibe/agents/worktrees/Open… ([`d323dc9`](https://github.com/OpenVibers/OpenVibe.Live/commit/d323dc9655ea39563ed45c1156da598b8f491fad))\n- finish-f1: test / test: Updated [package.json](/home/workstation/openvi… ([`a044d08`](https://github.com/OpenVibers/OpenVibe.Live/commit/a044d08e8e899ec7bfabca8e12a5c0b976ed2bcc))\n- finish-f1: Changed: package.json and package-lock.json; left uncommitte… ([`982f82e`](https://github.com/OpenVibers/OpenVibe.Live/commit/982f82e44cef34979b8cc75254a0b34315ddab10))\n- CI green on main: openvibe-contracts v0.83.0 and a gitleaks allowlist for the site-config fixture ([`325232e`](https://github.com/OpenVibers/OpenVibe.Live/commit/325232e4336c65a0a7fde05ff625c80b305d957c))\n- Merge origin/agent/bump-openvibe-shared-v2.3.1-mupvaa5x into agent/bump-openvibe-shared-v2.3.1-mupvaa5x ([`b54bc11`](https://github.com/OpenVibers/OpenVibe.Live/commit/b54bc11a419256e614b37fe0bc0164922a8551cf))\n- finish-f2: Changed: Added narrow, file-scoped allowances for the… ([`3fd8665`](https://github.com/OpenVibers/OpenVibe.Live/commit/3fd8665f38988f60d18d59a800fbfd91851b6746))\n- Merge main into wip/t4-live-pg-s1 (auto-finish) ([`cee5f96`](https://github.com/OpenVibers/OpenVibe.Live/commit/cee5f96b6624be7b28e9421d7bbbb81b52b7dd9b))\n- Merge main into agent/bump-openvibe-shared-v2.3.1-mupvaa5x (auto-finish) ([`0c214f3`](https://github.com/OpenVibers/OpenVibe.Live/commit/0c214f3281b7731d7067f5a60fff73f8641f01ff))\n- Drop Live emotes table after Chat handoff ([`185b4d7`](https://github.com/OpenVibers/OpenVibe.Live/commit/185b4d7b57224a98bd1497c1e5593619a5bd4aa0))\n- finish-f1: test / test: Updated the Contracts pin to v0.79.0; the contr… ([`e67b298`](https://github.com/OpenVibers/OpenVibe.Live/commit/e67b298676a1dc6c245213fdc389cf4359a7dfc6))\n- finish-f1: One caveat I could not close here: I could not run the… ([`cec6788`](https://github.com/OpenVibers/OpenVibe.Live/commit/cec6788b996455b4b270a02c4a586010e720600e))\n- finish-f1: Updated the Contracts status, corrected the five-table… ([`0e20e3c`](https://github.com/OpenVibers/OpenVibe.Live/commit/0e20e3c2670435a6dca76440e3207f894c4310d2))\n- Cutover runbook for the gated PostgreSQL analytics store (PR #2): deploy with the gate off, rollback, the later gate-on step and the rehearsal live-analytics-pg-slice-1 ([`27ca375`](https://github.com/OpenVibers/OpenVibe.Live/commit/27ca37545df730fe876a477e113ec8be65a0bdba))\n- Merge main into wip/t3-drop-emotes (auto-finish) ([`45ea4a4`](https://github.com/OpenVibers/OpenVibe.Live/commit/45ea4a4dc57c4f44c5d52c224c4475d5545fd76b))\n- I couldn't find the cause. Release 0299cc9 boots and passes… ([`491857e`](https://github.com/OpenVibers/OpenVibe.Live/commit/491857e77784eb2e9281dcf4dce29f96bbab40b3))\n- test/rollback-newer-writes.test.js — git failures no longer skip the… ([`bfe3d93`](https://github.com/OpenVibers/OpenVibe.Live/commit/bfe3d93f7eb12001374935eadb81464027733a54))\n- finish-f1: Changed test/openre-switch.test.js: deliver() sends… ([`ff798fe`](https://github.com/OpenVibers/OpenVibe.Live/commit/ff798fe4f2b121cab251ca07f554a817d2c5f972))\n- Attempts: 1. author Claude opus done; 2. review deepseek-v4.1-flash done ([`2b1fefb`](https://github.com/OpenVibers/OpenVibe.Live/commit/2b1fefbca9136510e29fc9a8ee4d8db92a991ad2))\n\n## OpenVibe.Media\n\n[openvibe.media](https://openvibe.media) · [repository](https://github.com/OpenVibers/OpenVibe.Media)\n\n- Bump openvibe-shared v1.29.2 → v2.3.1 ([`14d6846`](https://github.com/OpenVibers/OpenVibe.Media/commit/14d6846dbbcbd4b289c616b95e2b393c553fd67e))\n- Decouple avatar ingest from server/pastes/routes.js — report ([`90c4ee2`](https://github.com/OpenVibers/OpenVibe.Media/commit/90c4ee2cf38aa722b6d7daccda2b5234100d3c42))\n- finish-f1: I changed one thing: nodemodules is no longer tracked, and… ([`8ca5a49`](https://github.com/OpenVibers/OpenVibe.Media/commit/8ca5a4933a57f8aa839b7bc414fc2d37ceb0e91d))\n- finish-f2: Changed: the server-boot wait in test/perf-budget.test.js… ([`3fde10c`](https://github.com/OpenVibers/OpenVibe.Media/commit/3fde10c2e42772b9a70c8682dfab1dd94efb9425))\n\n## OpenRe.Stream\n\n[openre.stream](https://openre.stream) · [repository](https://github.com/OpenVibers/OpenRe.Stream)\n\n- Bump openvibe-shared v1.28.0 → v2.3.1 ([`e1c11c7`](https://github.com/OpenVibers/OpenRe.Stream/commit/e1c11c74331994d41abbfae99a960ca6364b927b))\n- Plan T0 — await/guard audit for OpenRe.Stream ([`cad3e37`](https://github.com/OpenVibers/OpenRe.Stream/commit/cad3e371cdb1d6d2ae8eb30f7ca000f0aa29ee18))\n- finish-f1: Changed: workers/rtmp-ingest.js only ([`15ccce3`](https://github.com/OpenVibers/OpenRe.Stream/commit/15ccce3b4e16cfd9f7cd9b901563bb5a59bdb32d))\n- Plan T4 — the unported-transport stub is gone; status files match the… ([`31e80e4`](https://github.com/OpenVibers/OpenRe.Stream/commit/31e80e4b2ba588b0908a7faf897d6046b3dcebd8))\n\n## OpenVibe.AI\n\n[ai.openvibe.network](https://ai.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.AI)\n\n- Bump openvibe-shared v1.27.0 → v2.3.1 ([`7a7335d`](https://github.com/OpenVibers/OpenVibe.AI/commit/7a7335dfe5afcd1c1166212ba9a8e2882976a82f))\n- finish-f1: test / test: Quoted the seeded route key in [seed.js](/home/… ([`6fd9d76`](https://github.com/OpenVibers/OpenVibe.AI/commit/6fd9d7649b463badc6c7d77211b5b35af60173d5))\n- finish-f2: Pin consistency and git diff --check passed; npm test could… ([`746da9f`](https://github.com/OpenVibers/OpenVibe.AI/commit/746da9f3e67e665d9eb73be18090ec382e4ccdca))\n\n## OpenVibe.Billing\n\n[billing.openvibe.network](https://billing.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Billing)\n\n- Bump openvibe-shared v1.28.0 → v2.3.1 ([`794e115`](https://github.com/OpenVibers/OpenVibe.Billing/commit/794e115d2efb586419749c67a71c6dd92c29c4ce))\n\n## OpenVibe.Search\n\n[search.openvibe.network](https://search.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Search)\n\n- Added a fixed JWKS failure warning in server/auth.js. It leaves the… ([`9985057`](https://github.com/OpenVibers/OpenVibe.Search/commit/9985057a71aa188ef051c67be466a935b117d648))\n\n## OpenVibe.Sources\n\n[sources.openvibe.network](https://sources.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Sources)\n\n- Bump openvibe-shared v1.27.0 → v2.3.1 ([`7771908`](https://github.com/OpenVibers/OpenVibe.Sources/commit/7771908d544849b7d0976ec89179abfd5744aeed))\n\n## OpenVibe.Tips\n\n[openvibe.tips](https://openvibe.tips) · [repository](https://github.com/OpenVibers/OpenVibe.Tips)\n\n- The discovery route changes are complete in the working tree on branch… ([`bc11596`](https://github.com/OpenVibers/OpenVibe.Tips/commit/bc11596ea1923bd55fa4bd666decef10270f57fb))\n\n## OpenVibe.VIP\n\n[openvibe.vip](https://openvibe.vip) · [repository](https://github.com/OpenVibers/OpenVibe.VIP)\n\n- Plan T11 lane D follow-up — attempt 3 report ([`fe4fc64`](https://github.com/OpenVibers/OpenVibe.VIP/commit/fe4fc646d42b434bf8cac5289e4698a7c44b4b90))\n\n---\n\nPatch notes are put together automatically when enough changes have shipped, or when a large feature lands. See every site's own updates page for the live list.","revision":1,"state":"published","visibility":"public","published_at":"2026-10-02T02:27:09.443Z","revised_at":"2026-10-02T02:27:09.429Z","author":{"subject":"usr_01KKT9AC60KM7CRTB3WN1Z8P56","name":"goosely","username":"goosely"},"authorship":{"mode":"imported","workflow":null,"reviewed":false,"disclosure":{"mode":"imported","short":"Imported","long":"Imported from Commit messages from the OpenVibers repositories on GitHub; originally by OpenVibers."}},"tags":["patch-notes","live","media","openre","ai","billing","search","sources","tips","vip"],"categories":[],"series":{"title":"Patch notes","url":"https://openvibe.blog/@openvibe/series/patch-notes","position":null},"media":[],"citations":[],"indexability":{"indexable":true,"robots":"index, follow","reasons":[]}}