{"id":"pst_01M4KYVCA80595FAZDC83QQDJZ","url":"https://openvibe.blog/@openvibe/patch-notes-43-changes-across-19-sites","blog":{"id":"blg_01M362MF0EDJ7QHQTRD8A3Q981","handle":"openvibe","title":"The OpenVibe blog","url":"https://openvibe.blog/"},"title":"Patch notes: 43 changes across 19 sites","summary":"What shipped on OpenVibe on 2026-10-10: 43 changes to OpenVibe.Watch, OpenVibe.Actor, OpenVibe.Bot, OpenVibe.Chat, OpenVibe.Community, OpenVibe.Events and 13 more.","body_markdown":"What shipped on OpenVibe on 2026-10-10: 43 changes to OpenVibe.Watch, OpenVibe.Actor, OpenVibe.Bot, OpenVibe.Chat, OpenVibe.Community, OpenVibe.Events and 13 more. Every line below is a commit message from the OpenVibers repositories, linked to the change itself.\n\n## OpenVibe.Watch\n\n[openvibe.watch](https://openvibe.watch) · [repository](https://github.com/OpenVibers/OpenVibe.Watch)\n\n- Actions: a fired condition notifies the owner (plan T18 step 4); fix repeat firing (#31) ([`473b271`](https://github.com/OpenVibers/OpenVibe.Watch/commit/473b27186b5b41b349e1ca2c88e7f00bf50a97ea))\n- Actions: an event action for watch.watch.triggered is recorded sent (#32) ([`d497a66`](https://github.com/OpenVibers/OpenVibe.Watch/commit/d497a66419d8f14d536be3f8fd1fb1941ea0c0a1))\n- Watch: webhook actions delivered (signed, SSRF-guarded, retried); named secrets need a grant (#33) ([`9a353ee`](https://github.com/OpenVibers/OpenVibe.Watch/commit/9a353ee4b256e0530ca2bd9270f8963f49b7399c))\n- Watch: actor-task actions give Actor a task for the owner (T18 step 6) (#34) ([`1b605cf`](https://github.com/OpenVibers/OpenVibe.Watch/commit/1b605cf07eba15df386e0d26b07c45681d2249e9))\n- Resource index: an owner filter (a person's own watches) (#35) ([`4b2df43`](https://github.com/OpenVibers/OpenVibe.Watch/commit/4b2df43efc0b68584312fa06955c7b153df96039))\n\n## OpenVibe.Actor\n\n[openvibe.actor](https://openvibe.actor) · [repository](https://github.com/OpenVibers/OpenVibe.Actor)\n\n- contracts test: actor.resource.read planned or active (#24) ([`44a8261`](https://github.com/OpenVibers/OpenVibe.Actor/commit/44a8261bb35fc94f0074b12e2180765cb3055c1e))\n- Actor: a first-party service may create a task for a person (X-OV-Subject, recorded as via) (#25) ([`b4cabec`](https://github.com/OpenVibers/OpenVibe.Actor/commit/b4cabec3772ba670b97b26d49a8389550e8b5b0c))\n- Resource index: an owner filter (a person's own tasks) (#26) ([`08d8d2b`](https://github.com/OpenVibers/OpenVibe.Actor/commit/08d8d2b7ab081c088482afa4163c47afa1b372ac))\n\n## OpenVibe.Bot\n\n[openvibe.bot](https://openvibe.bot) · [repository](https://github.com/OpenVibers/OpenVibe.Bot)\n\n- Security: a typed Network token (realtime ticket, FedCM assertion) is never a session (#69) ([`baa21e0`](https://github.com/OpenVibers/OpenVibe.Bot/commit/baa21e0161a397ed4360cbede3556a5145e8fbf3))\n- Bot: Network keys and token checks from openvibe-sdk/auth (async, control socket authorized before upgrade) (#71) ([`7fba2e9`](https://github.com/OpenVibers/OpenVibe.Bot/commit/7fba2e9cb9edc7a09aab28ac96b70d3bcf5f9592))\n- Resource index: an owner filter (a person's own robots) (#72) ([`584be38`](https://github.com/OpenVibers/OpenVibe.Bot/commit/584be380f5b7976bd3ded1c21956d8d349c3040a))\n\n## OpenVibe.Chat\n\n[openvibe.chat](https://openvibe.chat) · [repository](https://github.com/OpenVibers/OpenVibe.Chat)\n\n- Chat: the Network keys and token checks come from openvibe-sdk/auth (#61) ([`1394f96`](https://github.com/OpenVibers/OpenVibe.Chat/commit/1394f96152bdd1a8f56538423fe398f363252402))\n- openvibe-sdk v0.40.1 (was v0.40.0) (#62) ([`a9f6ef8`](https://github.com/OpenVibers/OpenVibe.Chat/commit/a9f6ef8568e2e1370e7cfe700924d8d66ac2f584))\n- Resource index: an owner filter (a person's own rooms) (#63) ([`99dec56`](https://github.com/OpenVibers/OpenVibe.Chat/commit/99dec56865b3ac0e01fa2fb1c472e5ea59d67a63))\n\n## OpenVibe.Community\n\n[openvibe.community](https://openvibe.community) · [repository](https://github.com/OpenVibers/OpenVibe.Community)\n\n- Community: sessions verified by openvibe-sdk/auth (typed tokens refused) over createNetworkKeys (#53) ([`461819f`](https://github.com/OpenVibers/OpenVibe.Community/commit/461819f930cd14bcf21d7d88044c11c690226b77))\n- openvibe-sdk v0.40.1 (was v0.40.0) (#54) ([`fb885a0`](https://github.com/OpenVibers/OpenVibe.Community/commit/fb885a0e0dd72ef5b343a84ec9ed486248c2e47c))\n- Community: the relay's Events worker keeps its place as an opaque cursor only (#56) ([`a3778b5`](https://github.com/OpenVibers/OpenVibe.Community/commit/a3778b509c20cc6d7effa121e44baaf85b1191bd))\n\n## OpenVibe.Events\n\n[openvibe.events](https://openvibe.events) · [repository](https://github.com/OpenVibers/OpenVibe.Events)\n\n- Events: the Network key and token checks come from openvibe-sdk/auth (#51) ([`a32bfb6`](https://github.com/OpenVibers/OpenVibe.Events/commit/a32bfb68c92ead3759015f7a9a2b11a2d1f1b07b))\n- Events: the key provider is openvibe-sdk/auth createNetworkKeys (SDK 0.40.0) (#53) ([`c3e0d2f`](https://github.com/OpenVibers/OpenVibe.Events/commit/c3e0d2f0530cc5673b0eb5e3bfdd4092dd82ec06))\n- Resource index: an owner filter (a person's own subscriptions) (#54) ([`3f1e7a5`](https://github.com/OpenVibers/OpenVibe.Events/commit/3f1e7a525db3a2959e3becc0c828f6949e261cda))\n\n## OpenVibe.Media\n\n[openvibe.media](https://openvibe.media) · [repository](https://github.com/OpenVibers/OpenVibe.Media)\n\n- Media: one set of Network keys and openvibe-sdk/auth checks (site sign-in refuses typed tokens) (#78) ([`bd38124`](https://github.com/OpenVibers/OpenVibe.Media/commit/bd38124ca6048d0597d9ba6d39a1bd20fe9271eb))\n- openvibe-sdk v0.40.1 (was v0.40.0) (#79) ([`4762f02`](https://github.com/OpenVibers/OpenVibe.Media/commit/4762f02f0b1586ee15f7f11435a2914eff7888ab))\n- Resource index: an owner filter (a person's own objects) (#80) ([`67cb498`](https://github.com/OpenVibers/OpenVibe.Media/commit/67cb4984cc34a30f6034265b7fdfda55edafe4e1))\n\n## OpenVibe.Network\n\n[openvibe.network](https://openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Network)\n\n- Grants: the W service notifies an owner (identity resolve + notifications push) (#131) ([`c8ff795`](https://github.com/OpenVibers/OpenVibe.Network/commit/c8ff79593d78f2355f43831e63cb35a01b606df1))\n- Network: grant the T18 principal actor.task.create (actor-task action) (#132) ([`0764850`](https://github.com/OpenVibers/OpenVibe.Network/commit/0764850ab253b1fca733141b35fb4313bcceb8fc))\n- Resource index: an owner filter (a person's own projects and nodes) (#133) ([`d4048b7`](https://github.com/OpenVibers/OpenVibe.Network/commit/d4048b7d21f8eea87a4577769bedacf98e96780e))\n\n## OpenVibe.Live\n\n[openvibe.live](https://openvibe.live) · [repository](https://github.com/OpenVibers/OpenVibe.Live)\n\n- Live: Network keys and token checks from openvibe-sdk/auth (JWKS fallback, rotation) (#87) ([`8fd2066`](https://github.com/OpenVibers/OpenVibe.Live/commit/8fd2066ce1644e49376f0b59ef91f98e72e79381))\n- openvibe-sdk v0.40.1 (was v0.40.0) (#88) ([`9ecffa6`](https://github.com/OpenVibers/OpenVibe.Live/commit/9ecffa6e6b65598b678215d370721b352fce7a01))\n\n## OpenRestream\n\n[openre.stream](https://openre.stream) · [repository](https://github.com/OpenVibers/OpenRestream)\n\n- OpenRestream: the Network keys and token checks come from openvibe-sdk/auth (typed tokens refused) (#48) ([`9ce0bf1`](https://github.com/OpenVibers/OpenRestream/commit/9ce0bf11ed684fd7f026d3ea96719bb041d62cec))\n- Resource index: an owner filter (a person's own streams) (#49) ([`469a7f1`](https://github.com/OpenVibers/OpenRestream/commit/469a7f18ef0e00544a9470df4857c0e6dca2a2c4))\n\n## OpenVibe.Services\n\n[openvibe.services](https://openvibe.services) · [repository](https://github.com/OpenVibers/OpenVibe.Services)\n\n- Services: a project's Resources page over the merged index (#32) ([`78e39c5`](https://github.com/OpenVibers/OpenVibe.Services/commit/78e39c5ea74c0e7d2b3976483269d582e2177e9c))\n- Services: your resources (a person's own, in no project) over the owner filter (#34) ([`9d4da26`](https://github.com/OpenVibers/OpenVibe.Services/commit/9d4da2645c10edfa5c1324f76a0787bad7baefba))\n\n## OpenVibe.Space\n\n[openvibe.space](https://openvibe.space) · [repository](https://github.com/OpenVibers/OpenVibe.Space)\n\n- Space: sessions verified by openvibe-sdk/auth (typed tokens refused) over createNetworkKeys (#28) ([`425ece4`](https://github.com/OpenVibers/OpenVibe.Space/commit/425ece4dbec477fd3ebe3f5631d3b3643b437dd7))\n- openvibe-sdk v0.40.1 (was v0.40.0) (#29) ([`cec8548`](https://github.com/OpenVibers/OpenVibe.Space/commit/cec8548016833d1e8aaf9d5a34ac06c9962ec9b4))\n\n## OpenVibe.Tips\n\n[openvibe.tips](https://openvibe.tips) · [repository](https://github.com/OpenVibers/OpenVibe.Tips)\n\n- Tips: the key provider is openvibe-sdk/auth createNetworkKeys (SDK 0.40.0) (#36) ([`57a101a`](https://github.com/OpenVibers/OpenVibe.Tips/commit/57a101aadff138b886a55c73415635c7b5ea1876))\n- openvibe-sdk v0.40.1 (was v0.40.0) (#37) ([`a6cacf2`](https://github.com/OpenVibers/OpenVibe.Tips/commit/a6cacf2da3e1632579a54b5277d81de68f83361d))\n\n## OpenVibe.VIP\n\n[openvibe.vip](https://openvibe.vip) · [repository](https://github.com/OpenVibers/OpenVibe.VIP)\n\n- VIP: the key provider is openvibe-sdk/auth createNetworkKeys (SDK 0.40.0) (#37) ([`d7fba40`](https://github.com/OpenVibers/OpenVibe.VIP/commit/d7fba40ef715717ba6d323610a66339faf60b005))\n- openvibe-sdk v0.40.1 (was v0.40.0) (#38) ([`0eeedd3`](https://github.com/OpenVibers/OpenVibe.VIP/commit/0eeedd32735dc13a1d446a07f524593c0eb0db1a))\n\n## OpenVibe.Billing\n\n[billing.openvibe.network](https://billing.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Billing)\n\n- Billing: Network keys and token checks from openvibe-sdk/auth (API and staff console) (#42) ([`7bbf899`](https://github.com/OpenVibers/OpenVibe.Billing/commit/7bbf899d00b9dd9923a8b8a79161a5bb86773d68))\n\n## OpenVibe.Games\n\n[openvibe.games](https://openvibe.games) · [repository](https://github.com/OpenVibers/OpenVibe.Games)\n\n- STATUS.json: the pins the apps really use (docs currency) (#36) ([`63b6977`](https://github.com/OpenVibers/OpenVibe.Games/commit/63b6977128bf56d25cf9072f84468c6a50bf46ac))\n\n## OpenVibe.Host\n\n[openvibe.host](https://openvibe.host) · [repository](https://github.com/OpenVibers/OpenVibe.Host)\n\n- Resource index: an owner filter (a person's own sites, deploys and domains) (#60) ([`a4ac490`](https://github.com/OpenVibers/OpenVibe.Host/commit/a4ac49011f61db65529d62c3080f685a8a2a20e6))\n\n## OpenVibe.Search\n\n[search.openvibe.network](https://search.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Search)\n\n- Saved-search notifications through openvibe-sdk/notifications (no hand-rolled Network client) (#38) ([`0f03b68`](https://github.com/OpenVibers/OpenVibe.Search/commit/0f03b68f90051b57bfb1de55bbc1fc68ebbdccf0))\n\n## OpenVibe.Tools\n\n[openvibe.tools](https://openvibe.tools) · [repository](https://github.com/OpenVibers/OpenVibe.Tools)\n\n- STATUS.json: the pins the apps really use (docs currency) (#43) ([`46c6db3`](https://github.com/OpenVibers/OpenVibe.Tools/commit/46c6db3b6055c871f6ec8fc3d8caa88bb86c8ab1))\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-10T22:27:31.293Z","revised_at":"2026-10-10T22:27:31.276Z","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","watch","actor","bot","chat","community","events","media","network","live","openre"],"categories":[],"series":{"title":"Patch notes","url":"https://openvibe.blog/@openvibe/series/patch-notes","position":null},"media":[],"citations":[],"indexability":{"indexable":true,"robots":"index, follow","reasons":[]}}