openvibers/openvibe.quest CHANGELOG.md
CHANGELOG.md
| 1 | # Changelog |
| 2 | |
| 3 | ## Unreleased |
| 4 | |
| 5 | - Pin the released Contracts 0.406.0, SDK 0.148.0 and Shared 4.209.0 libraries for guided quests. |
| 6 | - Let the owning site's verified service report an opaque guided step by source event id, with idempotent progress; allow the DNS tool's guide preflight and exclude Meme from daily choices until its event feed is enabled. |
| 7 | - Count public Meme captions without their content, add the caption maker and Video upload controls to guided daily choices, and order personal steps from easier to harder. |
| 8 | - Address Chat's public composer and the DNS tool from the personal catalogue; keep Wiki edits and world publishing out of automatic choices until the person has permission or a draft. |
| 9 | - Catalogue Live's seventeen individually guided setup tasks, and count only the matching task event for each step. |
| 10 | - Keep personalized AI wording off until the person records an explicit choice and language; choose only guided step kinds for that person. |
| 11 | - Give guided picture, thread and calendar steps opaque per-person links and an authenticated step reader for the host page. |
| 12 | - Let a channel owner save a quest made from guided catalogue steps through a default-off API. |
| 13 | - Add the authenticated, network-origin CORS reader `GET /api/v1/quests/today`; keep progress private to its person. |
| 14 | |
| 15 | What changed in OpenVibe.Quest, newest first. Each site also publishes its patch notes at /updates. |
| 16 | |
| 17 | ## 0.3.0 — 2026-10-09 |
| 18 | |
| 19 | - **Item rewards** (plan T21): six quests also give one of Live's items for the person's OpenVibe.Inventory: say hello |
| 20 | in chat (Sparkle), follow someone (Hearts), go live (Basic Cap), stream three times (Fire Name), start a thread (Ice |
| 21 | Name), improve a wiki page (Rainbow Name). |
| 22 | - **How:** `server/quests/items.js` grants each in Inventory after the completion commits, with Quest's own token, |
| 23 | origin `earned` and the completion id as the idempotency key. |
| 24 | - **Failures:** a failed grant is recorded (`migrations/0004_item_rewards.sql`) and retried by a timer, which also |
| 25 | reaches completions from before this release. |
| 26 | - **Pages:** the quest pages, `/me` and `/api/v1/quests` name the item. |
| 27 | |
| 28 | ## 0.2.0 — 2026-10-08 |
| 29 | |
| 30 | - **The product.** One quest log across the whole network: |
| 31 | - a catalog of 12 first-party quests in code (`server/quests/catalog.js`), grouped by the site whose events each |
| 32 | one counts, each with a badge and OpenCoins; |
| 33 | - `POST /internal/events` (`server/events-consumer.js`), exactly as OpenVibe.Space does it — raw body, signature |
| 34 | v2, the `openvibe-sdk` inbox for once-only application, forwarding headers refused, 503 without |
| 35 | `QUEST_EVENTS_SECRET` — with the person taken from the field each event's own schema defines |
| 36 | (`server/quests/apply.js`) and an ignored outcome for anything that names nobody Quest may credit; |
| 37 | - `quest_progress`, `quest_completions`, `quest_badges` and the Events receipts (`migrations/0002_quest.sql`), all |
| 38 | keyed by the canonical subject and safe under a redelivery; |
| 39 | - OpenCoins through OpenVibe.Network's wallet (`server/quests/coins.js`): `idempotency_key` is the completion id, |
| 40 | `QUEST_COINS` is off by default, per-person and network-wide daily caps, a failure recorded with its reason and |
| 41 | retried by a timer; |
| 42 | - the API: `GET /api/v1/quests`, `/quests/:id`, `/me/quests`, `/profiles/:subject/badges`; |
| 43 | - pages: home, a quest, your quest log (plain `<progress>` bars), the rules, and a sitemap that lists every quest |
| 44 | page — all server-rendered and complete without JavaScript; |
| 45 | - the test suite grew two files: `test/events-consumer.test.js` and `test/quests-api.test.js`, and the mock |
| 46 | Network now serves `/internal/identity/resolve` and `/internal/coins/credit` the way Network checks them. |
| 47 | - The home page grew by about 9 KB with the catalog and the event list; the perf budget was raised to match |
| 48 | (`test/perf-budget.test.js`, measured 34.0 KB raw / 7.7 KB brotli). |
| 49 | - nginx: `/internal/` is answered 404 from outside; Events posts to the loopback address directly. |
| 50 | |
| 51 | ## 0.1.0 — 2026-10-08 |
| 52 | |
| 53 | - **First release:** the service starts from the OpenVibe skeleton — sign-in with OpenVibe.Network (OAuth 2 + PKCE), server-rendered pages through the OpenVibe Frame, the `/api/v1` mount with per-caller limits, crawl artifacts, PostgreSQL migrations, the deploy files and the test suite. |
| 54 |