{"id":"pst_01M3M2MR359YNGVYA68HTBR41V","url":"https://openvibe.blog/@openvibe/patch-notes-roadmap-baseline-regenerated-2026-09-28-05","blog":{"id":"blg_01M362MF0EDJ7QHQTRD8A3Q981","handle":"openvibe","title":"The OpenVibe blog","url":"https://openvibe.blog/"},"title":"Patch notes: Roadmap baseline regenerated 2026-09-28 05","summary":"What shipped on OpenVibe on 2026-09-28: 21 changes to OpenVibe.Host, OpenVibe.Network, OpenVibe.Live, OpenVibe.Tips.","body_markdown":"What shipped on OpenVibe on 2026-09-28: 21 changes to OpenVibe.Host, OpenVibe.Network, OpenVibe.Live, OpenVibe.Tips. Every line below is a commit message from the OpenVibers repositories, linked to the change itself.\n\n## Highlights\n\n- **OpenVibe.Network:** Roadmap baseline regenerated 2026-09-28 05:21 UTC after the no-fake-green rollout: 639 tables, 2453 routes, 112 call sites, 359 discrepancies, 6/7 exit criteria (EC7 waits for the host owner's hazard review). EC5 is now computed (nothing… ([`13b7891`](https://github.com/OpenVibers/OpenVibe.Network/commit/13b7891fac7e8d0ccf406f1ad99b1e74397736c0))\n- **OpenVibe.Tips:** Tips moves to PostgreSQL and Valkey (ADR-035 and its amendment, roadmap WS-X2, following openvibe-sdk's docs/migrating-to-postgresql.md). Everything is async on openvibe-sdk/db v0.15.0: node-postgres through PgBouncer in production, PGlite… ([`fe05335`](https://github.com/OpenVibers/OpenVibe.Tips/commit/fe05335d27a50c2d2e7847c573cbe55f562370f9))\n\n## OpenVibe.Host\n\n[openvibe.host](https://openvibe.host) · [repository](https://github.com/OpenVibers/OpenVibe.Host)\n\n- The browser check names the sites it did not check (roadmap WS-Q task 7). A registry site whose root is not HTML was dropped with one stderr line, so the report's \"23/23 sites pass\" said nothing about it. Each such site is now kept in a… ([`02c68f6`](https://github.com/OpenVibers/OpenVibe.Host/commit/02c68f694a28f06e3056a05055f4515b3d4e7c64))\n- The data role in code (ADR-035, roadmap WS-X2): roles/data/provision.sh installs and configures PostgreSQL 18, PgBouncer, pgBackRest, Valkey and their Prometheus exporters, so any machine can take the role the way this host does.… ([`3479300`](https://github.com/OpenVibers/OpenVibe.Host/commit/347930060a7437bfe0f8e9ccab6452b530106dc4))\n- Data role: Valkey takes no end-of-line comments (its first start on the host refused 'maxmemory-policy volatile-lru # …'), so the comment has its own line, and the test checks every Valkey line. The role also sets vm.overcommit_memory = 1… ([`6e2807f`](https://github.com/OpenVibers/OpenVibe.Host/commit/6e2807f24560aaf8277bbb20dc4f967d857bedfa))\n- Data role: service roles can no longer connect to the maintenance database. PostgreSQL lets PUBLIC connect to 'postgres' by default, so the end-to-end check on the host showed a service's runtime role reaching it (catalogs only). Connect… ([`a52e41e`](https://github.com/OpenVibers/OpenVibe.Host/commit/a52e41eba0638d129a0ec9cc4aca22079c9e325f))\n- Data role: the pgBackRest step reads the stanza's status instead of guessing. A second run while the first full backup was still going took 'no valid backups' for 'no stanza' and tried stanza-create against the backup's lock. Now it… ([`16cf27b`](https://github.com/OpenVibers/OpenVibe.Host/commit/16cf27bb9c6869ef3ef5498c49e03d4122522105))\n- Data role: a running full backup is seen as running. A oneshot unit reads 'activating' while it runs, which is-active does not count, so the step now reads ActiveState and treats active or activating as a backup in progress (starting it… ([`63c38aa`](https://github.com/OpenVibers/OpenVibe.Host/commit/63c38aa9e09a06e6f2d58750e9380e517cf7aa79))\n- Data role alerts: a group openvibe-data with DataPostgresDown, DataPgBouncerDown and DataValkeyDown (page after 2 minutes), DataWalArchiveFailing (page: point-in-time recovery at risk), DataPostgresConnectionsHigh (over 80% of… ([`61e8a95`](https://github.com/OpenVibers/OpenVibe.Host/commit/61e8a95926efd27ce385068aee31166c16b5b860))\n- The deploy controller, phase 1 (roadmap WS-X11, D72): ovhost reconcile. Main at its last green CI commit is the desired state, and a 5-minute timer makes each service whose inventory says deploy.policy auto run it without a person. Per… ([`1bfffab`](https://github.com/OpenVibers/OpenVibe.Host/commit/1bfffabb4c2ba4430a89bb27839528c468b44ea9))\n- ovhost nodes report: this inventory's machines, reported to Network's node registry (roadmap WS-X1 step 3, ADR-034 §12). host.json gains nodeSource and nodes (network.node@1 without health: id, name, roles, region-level location, provider… ([`a8fdc46`](https://github.com/OpenVibers/OpenVibe.Host/commit/a8fdc46aee4b19f2f77db7ecd9ec23e56d4da109))\n- Fewer false operator pages. OpenVibeDeployDrift reads max_over_time(openvibe_deploy_drift_seconds[2h]): a Network restart drops the series for about a minute, which reset the rule's for: 1h and made the alert resolve and fire again every… ([`45f3d15`](https://github.com/OpenVibers/OpenVibe.Host/commit/45f3d15c7459e926dfbf3a39601aed72698c3c3c))\n\n## OpenVibe.Network\n\n[openvibe.network](https://openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Network)\n\n- Roadmap baseline: no fake green (roadmap WS-Q task 7). EC5, \"Unknowns are marked unknown, not guessed\", was hard-coded to pass. It is now computed: the run lists what it could not observe (no production snapshot, a repository with no… ([`2c1dacb`](https://github.com/OpenVibers/OpenVibe.Network/commit/2c1dacbe5fb7c92afccde6448e4e39a7bd06c5c3))\n- Roadmap baseline regenerated 2026-09-28 05:21 UTC after the no-fake-green rollout: 639 tables, 2453 routes, 112 call sites, 359 discrepancies, 6/7 exit criteria (EC7 waits for the host owner's hazard review). EC5 is now computed (nothing… ([`13b7891`](https://github.com/OpenVibers/OpenVibe.Network/commit/13b7891fac7e8d0ccf406f1ad99b1e74397736c0))\n- OpenID Connect: an email claim that is a no-reply alias (roadmap WS-X12). Clients that need an address per account, first git.openvibe.codes (Forgejo, signed in with OpenVibe accounts), now get email = <subject>@noreply.openvibe.network… ([`795021a`](https://github.com/OpenVibers/OpenVibe.Network/commit/795021a29a376a818bff47068694131b0762326a))\n- The node registry (roadmap WS-X1 step 3, ADR-034 §12; Contracts v0.76.0 network.node@1). POST /internal/nodes/report takes Host's token only (network.node.report, granted to host; no shared key) and network.node-report-request@1: it… ([`719a00d`](https://github.com/OpenVibers/OpenVibe.Network/commit/719a00d2431445b479d837c52e0c3b46684d684d))\n- Operator alerts page once per episode and stop piling up (the bell had Alert/Resolved pairs every few hours). An opened alert creates one notification per operator; a critical one is pushed, a warning stays in the bell (create() takes… ([`35233db`](https://github.com/OpenVibers/OpenVibe.Network/commit/35233db1f08918ddf5bed4bafc96231945058171))\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 278cd40, the release now in production (npm run n-1:record). ([`7fd7bea`](https://github.com/OpenVibers/OpenVibe.Live/commit/7fd7bea040f590b2e0720010bdd9c86c7d7420ea))\n- Going live from the browser, with no OBS, no downloads and no follower minimum, leads again: AI assistants recommend OpenVibe.Live for exactly that, and it had been folded behind \"See what makes it different\". The home page shows it… ([`6c2d06b`](https://github.com/OpenVibers/OpenVibe.Live/commit/6c2d06be8c23190943ef707612ec5860e20cd49e))\n- N-1 fixtures re-recorded from 6c2d06b, the release now in production (npm run n-1:record). ([`ae5c72f`](https://github.com/OpenVibers/OpenVibe.Live/commit/ae5c72ff1a4bc1633c8713352ecc7303bf5a7e37))\n- Live talks to OpenRe.Stream through openvibe-sdk/openre (SDK v0.16.0, from v0.12.0) instead of its own HTTP client. server/openre/openre-client.js keeps Live's settings (OPENRE_URL, OPENRE_PUBLIC_URL, the service principal), the on/off… ([`068d559`](https://github.com/OpenVibers/OpenVibe.Live/commit/068d55974b59c1486e0070f67fbff23a9c9eddc2))\n\n## OpenVibe.Tips\n\n[openvibe.tips](https://openvibe.tips) · [repository](https://github.com/OpenVibers/OpenVibe.Tips)\n\n- Tips moves to PostgreSQL and Valkey (ADR-035 and its amendment, roadmap WS-X2, following openvibe-sdk's docs/migrating-to-postgresql.md). Everything is async on openvibe-sdk/db v0.15.0: node-postgres through PgBouncer in production, PGlite… ([`fe05335`](https://github.com/OpenVibers/OpenVibe.Tips/commit/fe05335d27a50c2d2e7847c573cbe55f562370f9))\n- Pins for the switch: openvibe-sdk v0.18.0 (from v0.15.0; ambient transactions, db.prepare, JSON null verification) and openvibe-contracts v0.76.0 (from v0.49.0, ahead of October's pin-drift failure). Two tests made exact. settlement's… ([`9987de4`](https://github.com/OpenVibers/OpenVibe.Tips/commit/9987de4b4f7176d272bd7b28aa1f6964969b4fb3))\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-09-28T13:18:06.440Z","revised_at":"2026-09-28T13:18:06.438Z","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","host","network","live","tips"],"categories":[],"series":{"title":"Patch notes","url":"https://openvibe.blog/@openvibe/series/patch-notes","position":null},"media":[],"citations":[],"indexability":{"indexable":true,"robots":"index, follow","reasons":[]}}