{ "repository": "OpenVibers/OpenVibe.VIP", "stage": "alpha", "code": true, "deployed": true, "deployment": "Launched 2026-10-17 at https://openvibe.vip (openvibe-contracts 0.200.0 made VIP live; vhost deploy/nginx/openvibe.vip.conf installed): deployed with `sudo ovhost deploy vip`, /opt/openvibe.vip, unit openvibe-vip, 127.0.0.1:4620 behind nginx. Principal vip; three Events subscriptions for Billing's events. Checkout open since the Billing cutover (VIP_CHECKOUT_PROVIDERS=powerchat,credit): 43 plans imported from Live, 0 memberships sold on launch day.", "contracts": "openvibe-contracts v0.419.0", "sdk": "openvibe-sdk v0.161.0", "shared": "openvibe-shared v4.237.0", "plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)", "roadmap": "Wave 10", "works": [ "plans, immutable plan versions, perks, product bindings, member preferences and gated-resource rules in VIP's own PostgreSQL", "entitlement projection fed by Billing events (signed webhook + openvibe-sdk inbox) with valid_until, grace and a direct Billing fallback; 'unknown' never authorizes", "checkout hand-off and cancellation through OpenVibe.Billing; the membership is filed under the plan version chosen", "API /api/v1 for service and user tokens; consumer client openvibe-vip/client that fails closed, with createVipCache (the product cache and its convergence bound, test/convergence.test.js)", "the product's default gate (evaluate fallback, honouring product bindings such as blog gated_post) and entitlements/check product perks (Chat's badge); Chat, Community, Blog and Wiki consume them in code", "server-rendered creator plan pages, terms history, member status and creator dashboard with the shared chrome", "outbox events vip.plan.published and vip.membership.changed (openvibe-sdk)", "the Live subscription offering in VIP, memberships from Billing entitlements", "deployed on the host (loopback only) with truthful /api/ready and /metrics; restore drill passed on the host 2026-09-23 05:23 UTC", "reusable membership card (GET /embed/:username/card.json, GET /api/v1/creators/:ref/card), badge (/embed/:username/badge.svg) and embeddable widget (/embed/:username/widget): public data only, no cookies, the widget's CSP frame-ancestors configurable (VIP_WIDGET_FRAME_ANCESTORS), member count from Billing that the creator can hide (not deployed yet)", "the Live subscription import has run: 43 plans and plan versions, 44 creators, 87 migration maps (production, 2026-09-23)", "Chat (subscriber badge, vip.entitlement.check), Community (members-only spaces and threads) and Blog (members-only posts) call VIP in production (vip.resource.policy.evaluate grants for Community and Blog)", "14 vip.* capabilities, the service manifest and its events registered in openvibe-contracts v0.19.0 (this repository pins v0.92.0)", "per-actor limits on /api/v1 (openvibe-sdk/limits)", "the Billing client (server/billing-client.js) is a thin wrapper over openvibe-sdk/commerce (openvibe-sdk v0.74.0), shared with Tips: same capabilities, idempotency keys and retry-once-on-401", "renewal/refund convergence via Billing events: a per-period charge ledger (vip_membership_periods, unique per Billing transaction; reversals and reversal-before-grant tombstones), a past_due renewal grace that never authorizes (answer.grace), and a period audit that doubts a paid period without a record (migration 0002; docs/cutover-0002-renewal-periods.md)", "crawler and AI-reader artifacts: /llms-full.txt serves the full text of the home, public creator and plan-terms pages (openvibe-shared/seo, cached 3600 s), and IndexNow (openvibe-shared/indexnow, INDEXNOW_KEY) serves its key file at /.txt and pings the creator page, terms page and sitemap when a plan is published, edited or archived" ], "not_yet": [ "no membership sold yet: the first real purchase through Billing (PowerChat or Vibes credit) is the end-to-end proof still due", "revocations reach Chat and Community through vip.membership.changed subscriptions (2026-09-24); Blog and Live still converge by the cache TTL (30-60 s)", "no network membership product on Billing yet (OpenVibe Premium sold on openvibe.vip): a network plan is terms only" ], "features": [ "plans with immutable versions, perks and product bindings", "tiers: one plan per tier (1-10), each priced by the creator on Billing (billing.tier.manage); a member holds one tier at a time", "entitlement projection from Billing events with valid_until, grace and a Billing fallback; unknown never authorizes", "checkout and cancel through OpenVibe.Billing", "gated-resource policy evaluation for products (fails closed)", "openvibe-vip/client with the product cache and its convergence bound", "creator plan pages, terms history, member status and creator dashboard", "public membership card, badge and embeddable widget", "/llms.txt and /llms-full.txt for language-model crawlers, cached an hour", "IndexNow: a key serves /.txt and pings plan page changes and the sitemap", "SDK outbox events vip.plan.published and vip.membership.changed", "per-actor limits (openvibe-sdk/limits)" ], "runtime": "", "updated": "2026-11-13" }