{"id":"pst_01M3ZA2MVVKKVP3KVVBDZMHVNH","url":"https://openvibe.blog/@openvibe/patch-notes-tools-job-store","blog":{"id":"blg_01M362MF0EDJ7QHQTRD8A3Q981","handle":"openvibe","title":"The OpenVibe blog","url":"https://openvibe.blog/"},"title":"Patch notes: Tools job store","summary":"What shipped on OpenVibe on 2026-10-02: 74 changes to OpenVibe.Network, OpenVibe.Tools, OpenVibe.Chat, OpenVibe.Host, OpenVibe.VIP, OpenVibe.Events and 10 more.","body_markdown":"What shipped on OpenVibe on 2026-10-02: 74 changes to OpenVibe.Network, OpenVibe.Tools, OpenVibe.Chat, OpenVibe.Host, OpenVibe.VIP, OpenVibe.Events and 10 more. Every line below is a commit message from the OpenVibers repositories, linked to the change itself.\n\n## Highlights\n\n- **OpenVibe.Tools:** Tools job store: events and references go through the owning app (plan T8 review): tool_job_events and tool_job_references carry no app, so their reads, inserts and deletes now join or check this app's tool_jobs row, and every write by job… ([`b2ade2c`](https://github.com/OpenVibers/OpenVibe.Tools/commit/b2ade2c48129354611c067700d05bc771d99dc13))\n- **OpenVibe.Network:** Network on PostgreSQL, the foundation (plan T2): openvibe-sdk v0.25.1 with pg, iovalkey and PGlite; migrations 0001_core (69 tables generated from the booted SQLite schema: identities, text timestamps via ov_now(), case-insensitive… ([`c114c40`](https://github.com/OpenVibers/OpenVibe.Network/commit/c114c40208e203ba020be1b5ea78cf791bd87e6c))\n- **OpenVibe.Chat:** Chat on PostgreSQL, in progress (plan T3): SDK v0.25.2 with pg/PGlite/iovalkey, migrations 0001_initial with the SQLite-compat prelude and the mirror triggers, the import script, the N-1 engine-switch skip; the engine move itself (async… ([`83497e7`](https://github.com/OpenVibers/OpenVibe.Chat/commit/83497e7940c78d7f96097735b7b8be0cfaece7c9))\n\n## OpenVibe.Network\n\n[openvibe.network](https://openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Network)\n\n- Network on PostgreSQL, the foundation (plan T2): openvibe-sdk v0.25.1 with pg, iovalkey and PGlite; migrations 0001_core (69 tables generated from the booted SQLite schema: identities, text timestamps via ov_now(), case-insensitive… ([`c114c40`](https://github.com/OpenVibers/OpenVibe.Network/commit/c114c40208e203ba020be1b5ea78cf791bd87e6c))\n- T2 Network on PostgreSQL, work in progress: what eight DeepSeek attempts left in the working tree (asyncified call sites, dialect fixes, migrations 0003-0006, test fixes); unfinished, continued on this branch by a cloud session. ([`206ab36`](https://github.com/OpenVibers/OpenVibe.Network/commit/206ab36064fa1fa66b230b8d6b16d52a76231910))\n- T2: async-conversion fixes the PGlite suite could not see; async route rejections answer 500 ([`e7aadbd`](https://github.com/OpenVibers/OpenVibe.Network/commit/e7aadbdf1a9e9130a0edd551d0d97a6de1d75412))\n- T2: SUM() over bigint columns is cast back to bigint ([`d811796`](https://github.com/OpenVibers/OpenVibe.Network/commit/d811796d5ce7aa40d64f2fc02b173ec822643dc5))\n- Pins: openvibe-shared v2.3.1, openvibe-sdk v0.25.2, openvibe-contracts v0.83.0 (package.json; lockfile regenerated locally) ([`bce46e6`](https://github.com/OpenVibers/OpenVibe.Network/commit/bce46e6732fb3a1fa088fac1593def460202b75a))\n- Lockfile regenerated for the bumped Shared, SDK and Contracts pins (npm ci was rejecting it) ([`376b012`](https://github.com/OpenVibers/OpenVibe.Network/commit/376b01298f883c8f8ac03cfffcee51bbe30e2d3d))\n- Registry tests pin Contracts 0.83.0's two placeholder services (media-hub, space) as planned ([`56bd19b`](https://github.com/OpenVibers/OpenVibe.Network/commit/56bd19b2d72bef1fd2c467f54b95e121bce45267))\n- T2: the resource registry design (docs/t2-resource-registry.md): migration 0007, offers.js report/list/get, public read API, placement consumption, tests, five mergeable slices ([`8be134d`](https://github.com/OpenVibers/OpenVibe.Network/commit/8be134d12ed709b8393d57c732eda8efcddfbcf7))\n- finish-f1: Checks: Syntax and diff checks pass. Runtime suites remain u… ([`1a77bc0`](https://github.com/OpenVibers/OpenVibe.Network/commit/1a77bc0cdb22c976fe197c7af81ed3c1e7aa967b))\n- Attempts: 1. author Claude opus done; 2. review deepseek-v4.1-flash done ([`9abdd70`](https://github.com/OpenVibers/OpenVibe.Network/commit/9abdd70c63af3025ba4479c6da2d61b45c0ad7db))\n- finish-f1: Changed: test/perf-budget.test.js (startup wait 10 s → 60… ([`65c5087`](https://github.com/OpenVibers/OpenVibe.Network/commit/65c508795b63835ed362542896d3f58447711bd4))\n- Drop the stray node_modules symlink and ignore it as a file too ([`afa0b70`](https://github.com/OpenVibers/OpenVibe.Network/commit/afa0b70fff70362ba7235319d9ba93ad09f2ee14))\n- security-idor test leaves users.profile_revision out of its snapshots (the profile-events drain raises it every 3 s, no request writes it) ([`cd5c901`](https://github.com/OpenVibers/OpenVibe.Network/commit/cd5c901ce44d1133bee4ebc89d9433122b973748))\n- Add cells, node principals and service instances with wnam-1 bootstrap (#5) ([`1ea05ff`](https://github.com/OpenVibers/OpenVibe.Network/commit/1ea05ffebb5427404128e59a33bb9f4a7bb5e844))\n- Platform plan T2 \"Follows\", job 1 of 2: Network resolves go-live… (#6) ([`e6b426c`](https://github.com/OpenVibers/OpenVibe.Network/commit/e6b426cb99bdaa07502ef548672ae65ece91c16d))\n- Serve resource offers publicly without capacity and in full to services (#7) ([`10888fc`](https://github.com/OpenVibers/OpenVibe.Network/commit/10888fcfbd0d5caa9fc8648cd87de30217cbb1ad))\n- Add T2 WS-Z2 design for agents, delegated grants and confirmations (#8) ([`c27bd3e`](https://github.com/OpenVibers/OpenVibe.Network/commit/c27bd3ee39abb6ad021ebddd59008e43c390ebe6))\n- Added GET /robots.txt and GET /sitemap.xml in server/seo/routes.js,… (#4) ([`f250470`](https://github.com/OpenVibers/OpenVibe.Network/commit/f2504702d72c49a70d5e478f5f8cd04e8e209a63))\n- Plan T2, resource registry SLICES 3 and 4 together (#9) ([`d6ed8c4`](https://github.com/OpenVibers/OpenVibe.Network/commit/d6ed8c4d191e7d732158273f2b0ea2b776bafbe6))\n- Design cells, node principals and registry slice 5 for plan T2 lane B (#10) ([`c1d75e5`](https://github.com/OpenVibers/OpenVibe.Network/commit/c1d75e52c462eee5dbe89a78d67356c4b7afef3d))\n- T2 cutover: runbook and rehearsal for the PostgreSQL switch (#11) ([`235f13f`](https://github.com/OpenVibers/OpenVibe.Network/commit/235f13f3685a5642813d5f883d07c38e39bcd224))\n- Add v0.85.0 resource offer kinds and detail checks (#12) ([`083ae8e`](https://github.com/OpenVibers/OpenVibe.Network/commit/083ae8eba1fe40ae729b6d8814e98587dcad9f25))\n- Move server Cache-Control values onto openvibe-shared cache-policy (#13) ([`2c6b8b5`](https://github.com/OpenVibers/OpenVibe.Network/commit/2c6b8b5eae593e7be7230991a6aa7cc4522eefeb))\n- Add the service-instance report writer and its route (#14) ([`b6b123c`](https://github.com/OpenVibers/OpenVibe.Network/commit/b6b123c032cfe9aa15adfe036ecbd07e27d50d0d))\n- Add 0014 node pairing schema and its accept/reject tests (#15) ([`757dc98`](https://github.com/OpenVibers/OpenVibe.Network/commit/757dc98b1b67f8b285583c0f87ba989aef86c8ec))\n- Pair a person's machine as a node principal with scoped read and revoke (#16) ([`cbaacc4`](https://github.com/OpenVibers/OpenVibe.Network/commit/cbaacc48bd0753863835c583ca9db15ff76ee836))\n\n## OpenVibe.Tools\n\n[openvibe.tools](https://openvibe.tools) · [repository](https://github.com/OpenVibers/OpenVibe.Tools)\n\n- Tools on PostgreSQL, part 2 (plan T8, phases 1 and 4; not deployed yet): the network and dev pages call the tools run API (/api/v1/tools/<id>/run) instead of /api/net and /api/dev, a signed-in person's probe is a normal quota-metered run… ([`c740ca9`](https://github.com/OpenVibers/OpenVibe.Tools/commit/c740ca9786964cd71c1fa4d58d1f190d04f1b55e))\n- Tools: the legacy routes are gone (plan T8, phase 6; not deployed yet): /api/process, /api/process/direct and /api/process/multi on img, docs and audio, and the /api/net and /api/dev mounts on the gateway, with their deprecation shims… ([`d2124f4`](https://github.com/OpenVibers/OpenVibe.Tools/commit/d2124f4705d346ccf04b002b68bd26c5ea5a5394))\n- Tools job store on PostgreSQL (plan T8 phases 2-3; not deployed yet): apps/_shared/jobs on openvibe-sdk/db with async ambient transactions (finish, the usage rollup and the outbox in one), every app sharing the one tools database… ([`d276e3b`](https://github.com/OpenVibers/OpenVibe.Tools/commit/d276e3b72bf57da6782011dd82e176658a44cc24))\n- Tools guard review fixes (plan T8): one Lua call decides and charges a run's buckets and day allowances all or nothing (a run refused on the day leg spent bucket tokens, so refused requests could drain a bucket); the store's day counters… ([`f2bfb53`](https://github.com/OpenVibers/OpenVibe.Tools/commit/f2bfb53d7f14e7289b3b053ab1c6c6a2b5281037))\n- Tools ops after better-sqlite3 left the apps (plan T8): the legacy deploy's load checks use openvibe-sdk/db instead of better-sqlite3 (they would abort every deploy); scripts/ has its own package.json with better-sqlite3 for the cutover… ([`83f844c`](https://github.com/OpenVibers/OpenVibe.Tools/commit/83f844c6b277261f81935e03dff1d0c797f19122))\n- Tools job store: events and references go through the owning app (plan T8 review): tool_job_events and tool_job_references carry no app, so their reads, inserts and deletes now join or check this app's tool_jobs row, and every write by job… ([`b2ade2c`](https://github.com/OpenVibers/OpenVibe.Tools/commit/b2ade2c48129354611c067700d05bc771d99dc13))\n- Tools jobs: a failed boot recovery no longer strands queued jobs (plan T8 review): start() rejects and leaves the system unstarted (started is set only after recovery, so the worker never claims during it) and can be called again… ([`ecb37ee`](https://github.com/OpenVibers/OpenVibe.Tools/commit/ecb37eed389f92dffc3bfb0c26685c7e70ae2561))\n- Net page: each run's input is built from the tool's descriptor (plan T8 review): the page fetches GET /api/v1/tools/<id>/schema and sends only the fields its input schema declares (mx., txt., ns., spf., dkim. and dmarc. got a types field… ([`78b24f8`](https://github.com/OpenVibers/OpenVibe.Tools/commit/78b24f80631b203df0cd9cfda0688b99e2b29d6d))\n- README: the removed routes are documented as removed (plan T8 phase 6: /api/process*, /api/net/*, /api/dev/* and the /api/net/tools and /api/dev/tools lists, with their successors), the job store is in the tools database, and the T8 state… ([`cf706b6`](https://github.com/OpenVibers/OpenVibe.Tools/commit/cf706b6eb16691ee2e50ccb66f229c9e294bccb8))\n- Tools job events: the event_outbox table is an owner migration, never runtime DDL (plan T8 review): outboxFromEnv no longer calls createPgOutbox.ensureSchema through the runtime role (DATABASE_URL may have no DDL rights); outbox.ready… ([`07676e8`](https://github.com/OpenVibers/OpenVibe.Tools/commit/07676e8ea2010b71ea9842ea8058bcb8f50089a4))\n- r2: Changed: added only migrations/0004_event_outbox.sql to the worktre… ([`f8f6095`](https://github.com/OpenVibers/OpenVibe.Tools/commit/f8f6095c3eb57ebc30e3be83ffcc0a2dfde77124))\n- r5: Created [test-report.txt](/home/workstation/openvibe/agents/worktre… ([`9282ba5`](https://github.com/OpenVibers/OpenVibe.Tools/commit/9282ba538a94b49aa1f02b020678828219b3ee8b))\n- Remove the temporary test report ([`cae802a`](https://github.com/OpenVibers/OpenVibe.Tools/commit/cae802ab86cef62b64596b5d90fa768455a6c871))\n- Restore migrations/0001_tools.sql byte for byte: an applied migration is never edited (test:pg refused it as changed after it was applied); 0004 carries the outbox note ([`a192e43`](https://github.com/OpenVibers/OpenVibe.Tools/commit/a192e431c7ad88867edeea6546e2a102e9195651))\n- Tests: the per-app prune check reads rows with db.many (db.query returns a result, not an array); spawned apps get one PGlite directory each (observe.test.js ran img, text and yt on one DATA_DIR and PGlite, single-process, aborted) ([`b593cd9`](https://github.com/OpenVibers/OpenVibe.Tools/commit/b593cd90db93267f95626d7aa761dd8b68c37fff))\n- Read maps provider keys from config, drop baked-in USDA demo key (#2) ([`1e158da`](https://github.com/OpenVibers/OpenVibe.Tools/commit/1e158da9312d56e727db2f5d4acbd2a73e2c5c5c))\n- Assert sunset routes stay closed while webhook bins and runs work (#3) ([`9b2907d`](https://github.com/OpenVibers/OpenVibe.Tools/commit/9b2907d13a1424a186503e363e8f50b789790e09))\n- Add text registry/run API tests and food upstream-failure tests (#4) ([`c37436f`](https://github.com/OpenVibers/OpenVibe.Tools/commit/c37436f535e3d3567f4466cb0be101139b7b8f13))\n- Fix stale comments for removed process routes and RIDB demo key (#6) ([`9c5af58`](https://github.com/OpenVibers/OpenVibe.Tools/commit/9c5af58ce88d0fc59b761785938089e25d15db2d))\n\n## OpenVibe.Chat\n\n[openvibe.chat](https://openvibe.chat) · [repository](https://github.com/OpenVibers/OpenVibe.Chat)\n\n- Chat on PostgreSQL, in progress (plan T3): SDK v0.25.2 with pg/PGlite/iovalkey, migrations 0001_initial with the SQLite-compat prelude and the mirror triggers, the import script, the N-1 engine-switch skip; the engine move itself (async… ([`83497e7`](https://github.com/OpenVibers/OpenVibe.Chat/commit/83497e7940c78d7f96097735b7b8be0cfaece7c9))\n- Chat serves from PostgreSQL (plan T3, the engine move): openvibe-sdk/db everywhere, PGlite for dev and npm test ([`cb61cd5`](https://github.com/OpenVibers/OpenVibe.Chat/commit/cb61cd51f1b90345205e014e594ba4ee318fd8bd))\n- run() answers better-sqlite3's { changes, lastInsertRowid } exactly; docs/pg-port/progress-attempt4.md (the report: what was built, tests, history p95, For Opus) ([`de9398e`](https://github.com/OpenVibers/OpenVibe.Chat/commit/de9398e4ba47bb3171f27a270409b1e6f37d411c))\n- Serialize audio claims per room and lease them to their process (#2) ([`88eb5d2`](https://github.com/OpenVibers/OpenVibe.Chat/commit/88eb5d296be4142e3fc9e3cc03e4fc6288a6f442))\n- Serve Chat's cache headers through openvibe-shared/cache-policy (#3) ([`02eb132`](https://github.com/OpenVibers/OpenVibe.Chat/commit/02eb132299231bc4de399ec9a0253fff6b15c6d7))\n- Answer 400 for non-positive-integer ids on emotes and other param routes (#4) ([`e5b291c`](https://github.com/OpenVibers/OpenVibe.Chat/commit/e5b291cea05edff5cada2ecc100f5f61b4a98149))\n- Move Chat's shutdown onto openvibe-sdk/service gracefulStop (#5) ([`4215a76`](https://github.com/OpenVibers/OpenVibe.Chat/commit/4215a76c0e1cdf166a38eada81671daca9c3fa53))\n- Order audio queue start and stop: recover gates pumps, stop awaits work (#6) ([`703a2cc`](https://github.com/OpenVibers/OpenVibe.Chat/commit/703a2cc9562a7fb3428e4e470d4a6e20224e94e4))\n\n## OpenVibe.Host\n\n[openvibe.host](https://openvibe.host) · [repository](https://github.com/OpenVibers/OpenVibe.Host)\n\n- Add the bot service to host.example.json for OpenVibe.Bot ([`9a62097`](https://github.com/OpenVibers/OpenVibe.Host/commit/9a6209728933942ebd67147725070f57a6043449))\n- Give Bot its vhost and enable its service during deploy ([`ea013f0`](https://github.com/OpenVibers/OpenVibe.Host/commit/ea013f0b7fb6356e0a7f0f4e30deff92f566b00e))\n- ovhost env-names --set: list the names a service gets (never values) (#6) ([`0de73c0`](https://github.com/OpenVibers/OpenVibe.Host/commit/0de73c004566a29a50710b37fbfcfb2cacda7452))\n- Add ovhost self-update to fast-forward and reinstall the CLI install (#7) ([`d1bd62a`](https://github.com/OpenVibers/OpenVibe.Host/commit/d1bd62a800e1e5bb44e31c29fbc31f35235f46fd))\n- Require root for ovhost data and stop unitsMatch units on switch (#8) ([`2c1fcd6`](https://github.com/OpenVibers/OpenVibe.Host/commit/2c1fcd6e3bfbff93d56a9a442f9563a2c32e93ae))\n- Drop replaced tracked paths from the index before the deploy merge (#9) ([`7fa9a87`](https://github.com/OpenVibers/OpenVibe.Host/commit/7fa9a874a1581611b6931a5fc9866f6949fd444e))\n\n## OpenVibe.VIP\n\n[openvibe.vip](https://openvibe.vip) · [repository](https://github.com/OpenVibers/OpenVibe.VIP)\n\n- Take VIP cache headers from openvibe-shared/cache-policy (#3) ([`0c50964`](https://github.com/OpenVibers/OpenVibe.VIP/commit/0c509647abdbb63f0c4043e18ac603a9d4865f32))\n- Stop tracking nodemodules (a symlink an agent commit added) (#4) ([`69ef52f`](https://github.com/OpenVibers/OpenVibe.VIP/commit/69ef52f84951e0fd55379400233ca23ea48e973f))\n- Move VIP errors and shutdown onto openvibe-sdk/service (#5) ([`183a1c9`](https://github.com/OpenVibers/OpenVibe.VIP/commit/183a1c9a8e163517cc39526c7387ee026c9316eb))\n\n## OpenVibe.Events\n\n[events.openvibe.network](https://events.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Events)\n\n- Move Events' shutdown onto openvibe-sdk/service gracefulStop (#2) ([`d0ac01a`](https://github.com/OpenVibers/OpenVibe.Events/commit/d0ac01a05f8f7cfed87b18b41519ac77fed689d8))\n- Let OpenVibe.Bot publish its bot. events as a known source (#3) ([`18a9a3c`](https://github.com/OpenVibers/OpenVibe.Events/commit/18a9a3c4c9fa866a437ae73590ce2909286ba64e))\n\n## OpenVibe.Community\n\n[openvibe.community](https://openvibe.community) · [repository](https://github.com/OpenVibers/OpenVibe.Community)\n\n- Move Community's graceful shutdown onto openvibe-sdk/service (#7) ([`b6ca9f6`](https://github.com/OpenVibers/OpenVibe.Community/commit/b6ca9f6915cef6336832a8cd876ac0aba7a12ecb))\n\n## OpenVibe.Deals\n\n[openvibe.deals](https://openvibe.deals) · [repository](https://github.com/OpenVibers/OpenVibe.Deals)\n\n- Move Deals errors and shutdown onto openvibe-sdk/service (#3) ([`f1dfe61`](https://github.com/OpenVibers/OpenVibe.Deals/commit/f1dfe613ffe6386edd027bf6147f16764bbf1a77))\n\n## OpenVibe.Live\n\n[openvibe.live](https://openvibe.live) · [repository](https://github.com/OpenVibers/OpenVibe.Live)\n\n- Add the cutover runbook for migration 006dropemotes (#11) ([`9437263`](https://github.com/OpenVibers/OpenVibe.Live/commit/9437263f09b5f742aa4f8a5f0a5741029752d744))\n\n## OpenVibe.Media\n\n[openvibe.media](https://openvibe.media) · [repository](https://github.com/OpenVibers/OpenVibe.Media)\n\n- Plan T4: steps 7 and 8 of the ordered cleanup brief in… (#10) ([`aab4b07`](https://github.com/OpenVibers/OpenVibe.Media/commit/aab4b0738d88dc02fa73ba400791c2434e95abb1))\n\n## OpenVibe.Reviews\n\n[openvibe.reviews](https://openvibe.reviews) · [repository](https://github.com/OpenVibers/OpenVibe.Reviews)\n\n- Move Reviews errors and shutdown onto openvibe-sdk/service (#3) ([`bd447e9`](https://github.com/OpenVibers/OpenVibe.Reviews/commit/bd447e98645fc205728b4b46e93825faa6124e25))\n\n## OpenVibe.Search\n\n[search.openvibe.network](https://search.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Search)\n\n- Move Search's shutdown onto openvibe-sdk/service gracefulStop (#4) ([`4d6e48c`](https://github.com/OpenVibers/OpenVibe.Search/commit/4d6e48c2e6a596afae201aecf45ff12814b6ea5d))\n\n## OpenVibe.Sources\n\n[sources.openvibe.network](https://sources.openvibe.network) · [repository](https://github.com/OpenVibers/OpenVibe.Sources)\n\n- Move Sources' shutdown onto openvibe-sdk/service gracefulStop (#3) ([`d72398d`](https://github.com/OpenVibers/OpenVibe.Sources/commit/d72398d62d219d900016b928f0e903c00d0b9304))\n\n## OpenVibe.Tips\n\n[openvibe.tips](https://openvibe.tips) · [repository](https://github.com/OpenVibers/OpenVibe.Tips)\n\n- Move Tips errors and shutdown onto openvibe-sdk/service (#3) ([`be90dfd`](https://github.com/OpenVibers/OpenVibe.Tips/commit/be90dfd75bb43e5eaa3d7803b8e1c63632946374))\n\n## OpenVibe.Trade\n\n[openvibe.trade](https://openvibe.trade) · [repository](https://github.com/OpenVibers/OpenVibe.Trade)\n\n- Move Trade's error helpers onto openvibe-sdk/service (#3) ([`7c424ed`](https://github.com/OpenVibers/OpenVibe.Trade/commit/7c424edb2fba9db3ac8f5fbf9a8c67c66efb94ed))\n\n## OpenVibe.Wiki\n\n[openvibe.wiki](https://openvibe.wiki) · [repository](https://github.com/OpenVibers/OpenVibe.Wiki)\n\n- Move Wiki errors and shutdown onto openvibe-sdk/service (#3) ([`60b51a8`](https://github.com/OpenVibers/OpenVibe.Wiki/commit/60b51a8904b9d95647a92a81c06b0e664a119bd1))\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-02T21:59:40.678Z","revised_at":"2026-10-02T21:59:40.670Z","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","network","tools","chat","host","vip","events","community","deals","live","media"],"categories":[],"series":{"title":"Patch notes","url":"https://openvibe.blog/@openvibe/series/patch-notes","position":null},"media":[],"citations":[],"indexability":{"indexable":true,"robots":"index, follow","reasons":[]}}