{"id":"pst_01M3ZYYZKHRZDFV90Z47RYNQX0","url":"https://openvibe.blog/@openvibe/patch-notes-issue-node-tokens-and-add-node-self-routes-and-topology-details","blog":{"id":"blg_01M362MF0EDJ7QHQTRD8A3Q981","handle":"openvibe","title":"The OpenVibe blog","url":"https://openvibe.blog/"},"title":"Patch notes: Issue node tokens and add node self routes and topology details","summary":"What shipped on OpenVibe from 2026-10-02 to 2026-10-03: 29 changes to OpenVibe.Codes, OpenVibe.Media, OpenVibe.Host, OpenVibe.Network, OpenRe.Stream, OpenVibe.AI and 7 more.","body_markdown":"What shipped on OpenVibe from 2026-10-02 to 2026-10-03: 29 changes to OpenVibe.Codes, OpenVibe.Media, OpenVibe.Host, OpenVibe.Network, OpenRe.Stream, OpenVibe.AI and 7 more. Every line below is a commit message from the OpenVibers repositories, linked to the change itself.\n\n## Highlights\n\n- **OpenVibe.Network:** Issue node tokens and add node self routes and topology details (#19) ([`4e7b56b`](https://github.com/OpenVibers/OpenVibe.Network/commit/4e7b56b2046f0421e3f024bca68e0639a4abaee6))\n\n## OpenVibe.Codes\n\n[openvibe.codes](https://openvibe.codes) · [repository](https://github.com/OpenVibers/OpenVibe.Codes)\n\n- Add a validated harness offer catalog (#5) ([`dd04042`](https://github.com/OpenVibers/OpenVibe.Codes/commit/dd040429065d5a5bcf6c49ea8827628bd7d6c720))\n- Route coding tasks to harness offers through the SDK placement planner (#6) ([`208fd43`](https://github.com/OpenVibers/OpenVibe.Codes/commit/208fd4317bf6f6343ba212687963dd059d9306b0))\n- Serve the harness catalog and task routing over the API (#7) ([`b27f594`](https://github.com/OpenVibers/OpenVibe.Codes/commit/b27f5944f6692c80cc5001b5a0c831b1c2330c3b))\n- Add the harness catalog page, sitemap and llms.txt entries (#8) ([`9506878`](https://github.com/OpenVibers/OpenVibe.Codes/commit/95068783f87922bf2790b34678d32dbd7114c11d))\n- Publish harness offers as Fabric resource offers of kind harness (#9) ([`b612319`](https://github.com/OpenVibers/OpenVibe.Codes/commit/b612319c7baa9395d4bab2cebb1b33b17680ffe9))\n\n## OpenVibe.Media\n\n[openvibe.media](https://openvibe.media) · [repository](https://github.com/OpenVibers/OpenVibe.Media)\n\n- Add revisioned per-class storage policy budgets and residency checks (#11) ([`44fc3ce`](https://github.com/OpenVibers/OpenVibe.Media/commit/44fc3cef8cafc49e9bdf13e164d5d7af102aa3ec))\n- Additive step 2 of F1b: replay simulator (#12) ([`e9495e4`](https://github.com/OpenVibers/OpenVibe.Media/commit/e9495e4225591c3f425aa87f89a8f5912ba66998))\n- Align version pins and declare shield, lineage and paste-route env vars (#13) ([`fa04eb8`](https://github.com/OpenVibers/OpenVibe.Media/commit/fa04eb8ee9659b934126cad36b909759323778e5))\n- Take sweep budgets and residency per class from storage policy (#14) ([`9efea83`](https://github.com/OpenVibers/OpenVibe.Media/commit/9efea83cd5a5aa311473431ace0cb67981ba2022))\n\n## OpenVibe.Host\n\n[openvibe.host](https://openvibe.host) · [repository](https://github.com/OpenVibers/OpenVibe.Host)\n\n- Move Host's shutdown onto openvibe-sdk/service gracefulStop (#10) ([`678b485`](https://github.com/OpenVibers/OpenVibe.Host/commit/678b4856e01b9aebf27f0e21de02f110410cf74c))\n- Point Host runbook principal commands at network.env and --write-env (#12) ([`e474593`](https://github.com/OpenVibers/OpenVibe.Host/commit/e474593fd1681103a4fd08a108a81d4f5b8e8f00))\n- An untracked file the release adds byte for byte is removed before the merge (Sites' generated openvibe.work vhost, once committed, blocked the deploy) ([`a6f18af`](https://github.com/OpenVibers/OpenVibe.Host/commit/a6f18af894dc8c18d75a4b89b27fc026a535175e))\n\n## OpenVibe.Network\n\n[openvibe.network](https://openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Network)\n\n- Add project placement: preferred regions and residency (#17) ([`835b681`](https://github.com/OpenVibers/OpenVibe.Network/commit/835b681c048aa87d41b4843eba5fa364e87e0529))\n- Add the owner API for a person's own machines (#18) ([`d0efb56`](https://github.com/OpenVibers/OpenVibe.Network/commit/d0efb560eed8eb79124c617190b20be3388a2f69))\n- Issue node tokens and add node self routes and topology details (#19) ([`4e7b56b`](https://github.com/OpenVibers/OpenVibe.Network/commit/4e7b56b2046f0421e3f024bca68e0639a4abaee6))\n\n## OpenRe.Stream\n\n[openre.stream](https://openre.stream) · [repository](https://github.com/OpenVibers/OpenRe.Stream)\n\n- Move the API shutdown onto openvibe-sdk/service gracefulStop (#8) ([`d272503`](https://github.com/OpenVibers/OpenRe.Stream/commit/d2725038393c38cd1b62f5be724499002e5b0c03))\n- Require ready ingest workers for stored stream protocols (#9) ([`e7e1c55`](https://github.com/OpenVibers/OpenRe.Stream/commit/e7e1c55f7688f8f45fb3286c7635969523c32761))\n- Let cutover-preflight --slot all check every Live slot read-only (#10) ([`0c62c54`](https://github.com/OpenVibers/OpenRe.Stream/commit/0c62c54e6e208b50bd3ddb9fdfd5e3db51f5577b))\n\n## OpenVibe.AI\n\n[ai.openvibe.network](https://ai.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.AI)\n\n- Validate placement offers and requirements before planning (#9) ([`8d442ff`](https://github.com/OpenVibers/OpenVibe.AI/commit/8d442ff34dd7a745aa8a2ee0c7f29b3f75ab9240))\n- Route remaining AI capabilities through placement fallback pools (#10) ([`b74425b`](https://github.com/OpenVibers/OpenVibe.AI/commit/b74425b2d77d07a39a9983522a1503e705a274ef))\n\n## OpenVibe.Chat\n\n[openvibe.chat](https://openvibe.chat) · [repository](https://github.com/OpenVibers/OpenVibe.Chat)\n\n- Reject legacy WebSocket credentials and use session or bearer auth (#7) ([`2dcca25`](https://github.com/OpenVibers/OpenVibe.Chat/commit/2dcca251426d43ce6f0ca2f2359c0a4f879545ae))\n- Fix Chat runbook to create the service principal with --write-env (#8) ([`4d8d5b3`](https://github.com/OpenVibers/OpenVibe.Chat/commit/4d8d5b350dc86bf7ccb7d5fd15264b809935a35e))\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 9437263, the release now in production (npm run n-1:record). ([`97131ac`](https://github.com/OpenVibers/OpenVibe.Live/commit/97131acec29cb9b66c27e6d615271b885d250603))\n- Generate OpenRe WHIP test keys at runtime (#13) ([`500863f`](https://github.com/OpenVibers/OpenVibe.Live/commit/500863f529030becf0ebe6adcb593a70eb877f4c))\n\n## OpenVibe.Coupons\n\n[openvibe.coupons](https://openvibe.coupons) · [repository](https://github.com/OpenVibers/OpenVibe.Coupons)\n\n- Bump openvibe-shared to v2.4.0 (#4) ([`2ff9dc2`](https://github.com/OpenVibers/OpenVibe.Coupons/commit/2ff9dc243e841fb1ad086118ba466de9bc03c33c))\n\n## OpenVibe.Deals\n\n[openvibe.deals](https://openvibe.deals) · [repository](https://github.com/OpenVibers/OpenVibe.Deals)\n\n- Pin openvibe-shared to v2.4.0 (#4) ([`3db0c08`](https://github.com/OpenVibers/OpenVibe.Deals/commit/3db0c089009eb7a81947c45d05be75cf99cba2af))\n\n## OpenVibe.News\n\n[openvibe.news](https://openvibe.news) · [repository](https://github.com/OpenVibers/OpenVibe.News)\n\n- Bump openvibe-shared pin to v2.4.0 in package files (#4) ([`79ae5ab`](https://github.com/OpenVibers/OpenVibe.News/commit/79ae5aba92e727ee7d75e98541c5b28a66775a6f))\n\n## OpenVibe.Reviews\n\n[openvibe.reviews](https://openvibe.reviews) · [repository](https://github.com/OpenVibers/OpenVibe.Reviews)\n\n- Pin openvibe-shared to v2.4.0 in the manifest and lockfile (#4) ([`a24a5d2`](https://github.com/OpenVibers/OpenVibe.Reviews/commit/a24a5d2c32d225f6e80a9cc118663769d3217365))\n\n## OpenVibe.Trade\n\n[openvibe.trade](https://openvibe.trade) · [repository](https://github.com/OpenVibers/OpenVibe.Trade)\n\n- Bump OpenVibe.Trade's openvibe-shared pin to v2.4.0 (#4) ([`1beabea`](https://github.com/OpenVibers/OpenVibe.Trade/commit/1beabeaf7d390c95948a8c3e50cb3317e8634b93))\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-03T04:04:40.702Z","revised_at":"2026-10-03T04:04:40.693Z","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","codes","media","host","network","openre","ai","chat","live","coupons","deals"],"categories":[],"series":{"title":"Patch notes","url":"https://openvibe.blog/@openvibe/series/patch-notes","position":null},"media":[],"citations":[],"indexability":{"indexable":true,"robots":"index, follow","reasons":[]}}