{ "repository": "OpenVibers/OpenVibe.Tips", "stage": "alpha", "code": true, "wave": "W9", "plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)", "adr": "ADR-012", "authoritative": false, "deployed": true, "deployment": "Launched 2026-10-17 at https://openvibe.tips (openvibe-contracts 0.200.0 made Tips live; vhost deploy/nginx/openvibe.tips.conf installed): deployed with `sudo ovhost deploy tips`, /opt/openvibe.tips, unit openvibe-tips, 127.0.0.1:4610 behind nginx. Principal tips; Events subscriptions billing.transaction.* and billing.receipt.* -> /internal/events; TIPS_CHAT_ADAPTER=chat (chat lines and alerts through OpenVibe.Chat). OpenVibe.Live subscribes to tips.interaction.ready for its channel goal and tip history. TIPS_POWERCHAT_LINK_TEMPLATE turns Billing's pcorder: ref into PowerChat's canonical tip link on the site account (since 2026-10-17).", "database": "PostgreSQL 18 through PgBouncer (transaction mode) as the system of record, Valkey 9 for shared state (per-actor limits, overlay fan-out, overlay stream slots), ADR-035: database ov_tips from OpenVibe.Host's data role, schema in migrations/ (0001_initial expand, 0002_drop_legacy_import contract), async on openvibe-sdk/db v0.28.0, money paths serializable with row locks, PostgreSQL outbox and inbox.", "contracts": "openvibe-contracts v0.419.0", "sdk": "openvibe-sdk v0.161.0", "shared": "openvibe-shared v4.238.0", "notes": "Runtime, API, SSR pages, overlays, the Billing settlement consumer and the events outbox are built, tested and deployed, together with /metrics (loopback only), truthful /api/ready (Billing and Events checks), supporter privacy (anonymous, hidden amount, private message), goal and supporter-page settings, export and erasure (tips.interaction.erased), moderation (word filter, hide/show, invited moderators, tips.interaction.moderated) and per-actor limits. Capabilities (18 tips.*) and payload schemas are in openvibe-contracts. Billing is the money ledger since the cutover (2026-10-17). A written internal threat review (docs/threat-review.md) with its fixes and test/security.test.js. Paid sounds (creators upload up to 12, supporters pay to play one on the overlay) since 2026-10-17. Not done: an independent security review.", "features": [ "tips, paid messages, TTS and media requests settled by OpenVibe.Billing (never Tips' own money)", "paid sounds: creators upload up to 12 sounds, supporters pay to play one on the overlay, chat names it", "goals counted from settled payments only", "overlays with revocable scoped tokens and replay without recharging", "EXTERNAL PowerChat tips from billing.receipt.external", "supporter privacy, export and erasure", "moderation: word filter, hide and show, invited moderators", "OpenVibe.Chat delivery adapter (typed ingress)", "server-rendered creator pages useful without JavaScript", "/api/v1 by capability", "per-actor limits (openvibe-sdk/limits)", "PostgreSQL + Valkey data tier (ADR-035): serializable money paths, leased background work, shared limits and overlay fan-out", "SDK outbox and inbox on PostgreSQL", "Billing client on openvibe-sdk/commerce (shared with VIP): same capabilities, idempotency keys and retry rule" ], "updated": "2026-11-13" }