openvibers/openvibe.quest STATUS.json

STATUS.json

main 4.7 KB · 54 lines · json

1{
2 "repository": "OpenVibers/OpenVibe.Quest",
3 "stage": "alpha",
4 "code": true,
5 "wave": "W20",
6 "plan": "OpenVibe.Quest — the network's shared quest and rewards system: one quest log across every OpenVibe site, rewards as badges and OpenCoins (loyalty, never money), community-made quests later",
7 "runtime": "node 22, express 4, PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9",
8 "port": "4980",
9 "domain": "openvibe.quest",
10 "contracts": "openvibe-contracts v0.419.0",
11 "sdk": "openvibe-sdk v0.161.0",
12 "shared": "openvibe-shared v4.237.0",
13 "packages": [
14 "openvibe-contracts v0.419.0",
15 "openvibe-sdk v0.161.0",
16 "openvibe-shared v4.237.0",
17 "openvibe-publishing v1.7.0"
18 ],
19 "summary": "OpenVibe.Quest: one quest log across every OpenVibe site. OpenVibe.Events delivers the domain events the sites already emit to POST /internal/events (signed v2, once-only through the openvibe-sdk inbox), the person taken from the field each event's own schema defines, and a progress count, a completion and a badge move because of it. 12 first-party quests in code, grouped by the site whose events each counts. Rewards are badges and OpenCoins — credited through OpenVibe.Network's wallet, off by default (QUEST_COINS), with per-person and network-wide daily caps, failures recorded and retried. Public API and server-rendered pages, complete without JavaScript. OpenCoins are off until Network grants the two capabilities.",
20 "works": [
21 "The quest catalog in code (12 quests, 8 sites) and the whole list of events it listens to, with a load-time check that no quest counts an undocumented event",
22 "POST /internal/events exactly as OpenVibe.Space does it: raw body, parseDelivery requireV2, the openvibe-sdk inbox, forwarding headers refused, 503 without QUEST_EVENTS_SECRET",
23 "Subscriptions created at boot for the catalog's events (idempotent, off without QUEST_EVENTS_URL / QUEST_EVENTS_SECRET)",
24 "The person taken from the event's own schema field (channel.subject, follower, author, user_subject, player.subject, owner); an event with no usr_ subject, a guest or a service is ignored",
25 "Progress per step, one completion per person per quest and one badge per person, all once-only under a redelivery",
26 "OpenCoins through OpenVibe.Network's wallet (network.coins.credit, app_id quest), idempotency_key = the completion id, subject resolved to the wallet's user id through identity.resolve",
27 "QUEST_COINS off by default (coins_state=skipped, the pages say the rewards start soon); per-person (50) and network-wide (5000) daily caps; a failure recorded with its reason and retried by a timer",
28 "GET /api/v1/quests, /quests/:id, /me/quests (a signed-in person's own log), /profiles/:subject/badges (id, name and date only)",
29 "Pages: home (the quests grouped by site, how progress works), a quest, your quest log (plain <progress> bars), the rules, the update log; robots, sitemap with every quest page, llms.txt, llms-full.txt",
30 "Tests on temp PGlite databases with a mock Network that also serves the wallet: signature refusal, idempotent replay, counting to completion, badge once, coins off, coins on with caps and a retry, events with no subject ignored, /me requires sign-in, hostile titles escaped",
31 "Account export and deletion (ADR-033): the quest progress, completions and badges a person has are exported to OpenVibe.Network on network.account.export_requested and deleted whole on network.account.deleted, with the counts confirmed back; the two account topics join the catalog's events in the boot subscriptions (server/identity/account-data.js)",
32 "App quests (contracts 0.193.0, capability quest.app_quest.manage): a developer app defines quests on its own project's app.<project_key>.* events; only production counts, the reward is a badge named for the app, at most 20 active a project, listed on the home under \"Made by apps\""
33 ],
34 "notYet": [
35 "Community-made quests (streamers, communities, mods): they need moderation, which this release does not have",
36 "Repeatable quests and seasonal resets: every quest completes once per person",
37 "Quest chains, leaderboards and per-community quests; a streamer's getting-started steps still live on OpenVibe.Live"
38 ],
39 "capabilitiesRegistered": true,
40 "serviceManifestRegistered": true,
41 "deployed": true,
42 "placeholderInSites": false,
43 "features": [
44 "quest catalog",
45 "OpenVibe.Events consumer",
46 "OpenCoins through Network's wallet",
47 "public API",
48 "server-rendered pages",
49 "crawl artifacts"
50 ],
51 "deployment": "openvibe-ovh: unit openvibe-quest.service on 127.0.0.1:4980 (git checkout /opt/openvibe.quest, env /etc/openvibe/quest.env, database ov_quest), deployed with `sudo ovhost deploy quest`; public at https://openvibe.quest since 2026-10-08.",
52 "updated": "2026-11-13"
53}
54