openvibers/openvibe.host Commits

Compatibility register: C-82 (OpenVibe.Realtime) is closed with nothing to migrate: the repository never carried code, its Contracts manifest was removed in Contracts v0.78.0, the repository is archived as ADR-005's decision record, and realtime.openvibe.network serves a closed notice (C-81 no longer lists it as a defect). Reviewed independently (VERDICT: SHIP).

OP OpenVibers committed 29 Sept 2026 · 93971d2ecf · 1 file, +4 −3


Changes

ddiff --git a/docs/compatibility-register.md b/docs/compatibility-register.md
iindex 183de2d..8e4132c 100644
---- a/docs/compatibility-register.md
++++ b/docs/compatibility-register.md
@@@ -32,7 +32,8 @@ Contracts has no deprecated contracts and no aliases (`OpenVibe.Contracts/compat
| Running in parallel, waiting on telemetry | C-50–C-58 (internal key), C-60–C-61 (Events v1 signatures) |
| Legacy secret or credential still accepted | C-50–C-57 (`INTERNAL_API_KEY`), C-59 (hard-coded), C-42, C-70, C-71 (Media app keys), Games `EDITOR_KEY` |
| Legacy data kept for rollback | C-72 (analytics backups with IPs), C-73 (frozen Live tables) |
--| No removal condition in any repo before this register (proposed here) | C-06, C-14, C-24, C-54, C-58, C-59, C-70, C-73, C-74, C-77, C-80, C-82, Games `EDITOR_KEY` |
++| No removal condition in any repo before this register (proposed here) | C-06, C-14, C-24, C-54, C-58, C-59, C-70, C-73, C-74, C-77, C-80, Games `EDITOR_KEY` |
++| Closed; never built, nothing to migrate | C-82 (Realtime, ADR-005; archived 2026-09-25) |
## Chat (Wave 6: cut over 2026-09-23 02:03 UTC)
@@@ -131,8 +132,8 @@ The dates below assume each caller moves by **2026-10-09**. The key paths then g
| # | What | Where | Owner | Removal condition | Target | Rollback lever until then |
|---|---|---|---|---|---|---|
| C-80 | **`openvibe-shared/analytics.js`** (`AnalyticsTracker`) stores raw IP, `user_id`, city and full UA. **No deployed service uses it.** Live (`server/analytics/`, `0e07aec`), Network (`server/analytics/`) and Tools (`apps/_shared/analytics`, `533c9a3`) run their own ADR-021 trackers. No other repo requires it. The one remaining `require` is the stale local checkout `~/OpenVibers/OpenVibe.Live` (`e266060`, behind `origin/main`). It is still exported (`package.json:10`, `index.js:8,40-44`) with no deprecation marker. Stale docs: Shared `docs/migration-plan.md:29,252,493`; Live `SECURITY_AUDIT.md:98`. **RETIRED 2026-09-23**: the ADR-021 module is `openvibe-shared/analytics` v1.4.0 (with GPC/DNT); Live `c893c6c`, Tools `5d1b423` and Network `9bbd90f` use it, their local copies are deleted, verified on production (no ip/user_id/city; DNT requests not recorded). | OpenVibe.Shared `analytics.js` | Shared | **No condition documented** (ADR-021 does not mention it). *Proposed*: mark it deprecated in the next Shared minor, then remove it in the next major, since removing an export is breaking (ADR-008). | Deprecate 2026-10-09; remove in Shared v2.0.0, 2026-11-06 | Pin the previous Shared tag. |
--| C-81 | **OpenVibe.Sites placeholders**. There are 16, all `"stage": "placeholder"`: openvibe.chat, .news, .reviews, .tips, .vip, .trade, .host, .deals, .coupons, openre.stream, and auth., api., admin., themes., realtime. and ai.openvibe.network. The page says "coming soon · this page is a placeholder, nothing here is live yet". None claims to be a working product. **Two defects:** repos outside `EXISTING_REPOS` are labelled "(charter only, no code yet)", which is false for Tips, VIP, News, Reviews, Trade, Deals, Coupons and Host; and **realtime.openvibe.network advertises a product that ADR-005 closed**. | Sites `sites.json`, `build.js:22,157-161,283`, `deploy/nginx/*.conf` | Sites (each service owns its launch) | *partly done 2026-09-24*: every placeholder's label comes from the product's STATUS.json/registry facts (Sites `facts.json`, `8be8071`), so a running product is "in development" with what its launch waits for, never "charter only"; realtime is a closed notice (ADR-005); openvibe.host describes Host as it is. Retire each placeholder when its product launches | Realtime and label: 2026-09-30; the rest: at each launch | Re-add the entry. |
--| C-82 | **OpenVibe.Realtime**, closed by ADR-005: realtime runs inside Events as SSE `/realtime/stream`. `STATUS.json` says `stage: closed`. Leftovers: the README still says "Decision pending" (`:12,51-53`); the GitHub repo is not archived; Contracts `manifests/services/realtime.json:8` says `"status": "placeholder"`; Events `README.md:6` says "until ADR-005 decides"; and the Sites placeholder (C-81). | OpenVibe.Realtime; Contracts; Sites; Events | Contracts (manifest), Sites, Events | *proposed*: fix the README, mark the manifest `closed` (a Contracts release), remove the Sites placeholder, archive the repo. | 2026-09-30 | ADR-005: revisit only on measured load. |
++| C-81 | **OpenVibe.Sites placeholders**. There are 16, all `"stage": "placeholder"`: openvibe.chat, .news, .reviews, .tips, .vip, .trade, .host, .deals, .coupons, openre.stream, and auth., api., admin., themes., realtime. and ai.openvibe.network. The page says "coming soon · this page is a placeholder, nothing here is live yet". None claims to be a working product. **One defect:** repos outside `EXISTING_REPOS` are labelled "(charter only, no code yet)", which is false for Tips, VIP, News, Reviews, Trade, Deals, Coupons and Host. (realtime.openvibe.network no longer advertises a product: ADR-005 closed it and its placeholder has served a closed notice since 2026-09-23, C-82.) | Sites `sites.json`, `build.js:22,157-161,283`, `deploy/nginx/*.conf` | Sites (each service owns its launch) | *partly done 2026-09-24*: every placeholder's label comes from the product's STATUS.json/registry facts (Sites `facts.json`, `8be8071`), so a running product is "in development" with what its launch waits for, never "charter only"; realtime is a closed notice (ADR-005); openvibe.host describes Host as it is. Retire each placeholder when its product launches | Label: 2026-09-30; the rest: at each launch | Re-add the entry. |
++| C-82 | **OpenVibe.Realtime, never built and closed by ADR-005** (accepted 2026-09-22): realtime runs inside Events as SSE `GET /realtime/stream`. The repository never carried code — only `LICENSE`, `README.md`, `SECURITY.md`, `STATUS.json`, no `package.json`; its Contracts service manifest was removed in Contracts v0.78.0 (2026-09-29; v0.34.0 had made it `retired`), so realtime is not registered as a service — it registered no capability and no event, and the charter's planned `realtime.subscribe` was never registered. **Nothing was ever deployed from it, so nothing is left to migrate**: `STATUS.json` is `stage: closed`, `code: false`, `deployed: false`, `contracts: none` (updated 2026-09-28); the README no longer says "Decision pending"; the repository was marked archived on 2026-09-25 (`6a49221`, roadmap WS-F task 6) and stays as ADR-005's decision record; Events' README states ADR-005 put Realtime inside Events; and the domain `realtime.openvibe.network` serves a Sites closed notice since 2026-09-23 (C-81). | OpenVibe.Realtime; Contracts; Sites; Events | Contracts, Sites, Events | *met, nothing to remove* (2026-09-28): every listed leftover is resolved and the service has no runtime, data or consumer of its own. **No migration remains** — no rows to migrate, nothing to back up or cut over. | Done 2026-09-28 (archive 2026-09-25, closed notice 2026-09-23) | ADR-005: reopen only on measured load needing an independently scaled delivery process. |
| C-83 | **Live `/internal/media-webhook`** next to the Events consumer `/internal/media-events` (media.vod.*, media.clip.*, media.storage.*). `MEDIA_EVENTS_AUTHORITY=webhook` \| `both` \| `events`; each outcome is applied once (inbox consumer `live-media-outcomes`, key object + event id; Media webhooks carry `event_id` since `cbf8410`). **`both` since 2026-09-23 20:00 UTC** (3 subscriptions created). | Live `server/media-proxy/webhook.js`, `outcomes.js`, `media-events.js`; Media `server/webhooks.js` | Live + Media | *documented* (Live `docs/architecture.md` "Media outcomes over Events"): `events` has run clean (every VOD/clip since the switch has its `vod_ai_state`/`clip_ai_state` row and a receipt, no DLQ entries for Live's subscriptions); then clear Live's `webhook_url` in Media `apps`, wait a release, delete the route, `MEDIA_WEBHOOK_SECRET` and the `webhook`/`both` modes. | `events` 2026-10-01; removal 2026-10-14 | `MEDIA_EVENTS_AUTHORITY=webhook`; `subscribe-media-events.js --disable` |
| C-84 | **Live deploy notice over the Chat bridge** (`chat-remote.js` `deployNotice`) next to the `live.release.deployed` event (Live `e73a92d`). | Live `server/chat/deploy-notice.js`, `server/chat/chat-remote.js` | Chat + Live | *done 2026-09-23*: Chat subscribes to `live.release.deployed` (Chat `ed90461`, table `deploy_releases` keyed by head) and folds by `subject.id`; the 22:14 UTC deploy produced one card via both paths (`duplicate:release`), and since Live `5324f40` (22:18 UTC deploy: `first_via = events`, folded) the bridge hop runs only while Live's Events publishing is off | 2026-10-14 | Keep the bridge call |
| C-85 | **Live's own go-live follower push** (`server/streaming/golive-notify.js`) next to Network's `live.stream.started` consumer (subscription since 2026-09-23 19:55 UTC; Live `GET /internal/followers`). A shared per-streamer rate limit in Network stops double notifications. | Live `golive-notify.js` + call sites in `routes.js`, `rtmp-server.js`, `whip-handler.js`, `openre/mirror.js`; Network `server/notifications/stream-live.js` | Live + Network | *documented* (Network commit 2a95548): Network's log shows `outcome: notified` for real go-lives; then delete Live's push and retire Network's `POST /internal/events/stream-live`. | 2026-10-07 | Unsubscribe Network from `live.stream.started` |