{ "repository": "OpenVibers/OpenVibe.News", "stage": "alpha", "code": true, "wave": "W17", "plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)", "runtime": "node 22, express 4, PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9", "port": 4820, "domain": "openvibe.news", "contracts": "openvibe-contracts v0.419.0", "sdk": "openvibe-sdk v0.161.0", "shared": "openvibe-shared v4.238.0", "packages": [ "openvibe-publishing v1.7.0", "openvibe-contracts v0.419.0", "openvibe-shared v4.238.0", "openvibe-sdk v0.161.0" ], "capabilities": [ "news.story.create", "news.story.read", "news.story.revise", "news.story.publish", "news.story.retract", "news.cluster.read", "news.cluster.manage", "news.source.attach", "news.timeline.update", "news.perspective.update", "news.topic.manage" ], "capabilitiesRegistered": true, "serviceManifestRegistered": true, "inputs": "OpenVibe.Sources items (category news) via the Events subscriptions sources.item.* and sources.fetch.failed (created in production 2026-09-23) and a cursor pull; in production since 2026-10-11: 70 source items from NASA news releases, GOV.UK news and the EU press corner, grouped into 18 clusters", "ai": "optional seam (news.summarize_story, news.compare_perspectives) tested against a mock; not configured in production (OV_AI_INTERNAL_URL unset); OpenVibe.AI output only ever lands as a draft that needs a person's review", "seed": "topics only (12 in production); stories exist only once an editor opens and publishes one", "deployed": true, "deployment": "Deployed with `sudo ovhost deploy news`: unit openvibe-news on 127.0.0.1:4820 behind nginx; on 2026-09-23 /api/ready answered 200 and the production database held 12 topics and 0 stories. Public at openvibe.news since 2026-10-09, after an independent pre-launch security review whose fixes shipped first; the OpenVibe.Sites placeholder is gone. The database holds 70 source items in 18 clusters and no stories: the first waits on an editor (NEWS_EDITORS or a Network admin) opening one from a cluster at /edit", "placeholderInSites": false, "features": [ "Sources ingestion by Events subscription and cursor pull, with dedupe", "failed ingestion recorded, never fabricated", "deterministic, explained clusters with audited merge and split", "stories whose paragraphs cite Sources items; no publish without sources", "revisions, corrections, timelines, perspectives and final retractions", "independent-source index gate", "licensing limits on stored and shown text", "Community comment threads by reference", "optional OpenVibe.AI drafts that need a person's review", "server-rendered editorial and public pages useful without JavaScript", "/api/v1 by capability", "SDK outbox events and Search index documents", "per-actor limits (openvibe-sdk/limits)" ], "updated": "2026-11-13" }