openvibers/openvibe.inventory CHANGELOG.md

CHANGELOG.md

main 3.4 KB · 54 lines · markdown

1# Changelog
2
3What changed in OpenVibe.Inventory, newest first. Each site also publishes its patch notes at /updates.
4
5## Unreleased
6
7- Workshop images reach OpenVibe.Media with Inventory's Network service token (audience `openvibe.media`, grant
8 `media.object.upload` on namespace `inventory`). `INVENTORY_MEDIA_APP_KEY` is gone (compatibility register C-71).
9
10## 0.4.1 — 2026-10-09
11
12- Workshop takedown (ADR-054 §6): `/workshop/review` lists the published community badges. Staff can retire one (nobody
13 gives it any more) or retire it and revoke every copy (taken off whoever wears it, each owner told through
14 `inventory.item.revoked`). Both need a reason, which goes to the ledger.
15
16## 0.4.0 — 2026-10-09
17
18- **The Workshop** (ADR-054 §6 amendment, openvibe-contracts 0.124.0): community badges, free.
19 - **The kind:** `network.badge`, the first Workshop kind (`migrations/0003_workshop.sql`).
20 - **Making one:** `/workshop/new` takes the image as a no-JavaScript multipart upload, checked by its header bytes
21 and stored in OpenVibe.Media (`INVENTORY_MEDIA_APP_KEY`).
22 - **Review:** staff review at `/workshop/review` and `POST /api/v1/definitions/:id/review` (publish with a rarity, or
23 reject with a reason).
24 - **Giving:** creators give their badges by `@name` from `/workshop/mine`, through the Network's username lookup.
25 - **Rendering:** the equipped read carries `media_id`.
26 - **Account data:** export includes `made.json`; on deletion a creator's badges pass to the kind's issuer, retired.
27
28## 0.3.0 — 2026-10-09
29
30- **Grantors** (ADR-054 §3 amendment, openvibe-contracts 0.123.0): a definition may name the services or apps that may
31 grant it. A grantor only grants (earned or granted, idempotent per its own key, within the cap), and the ledger and
32 the `inventory.item.granted` event record it as the actor with the issuer kept. The issuer sets and clears the list
33 with `PATCH /definitions/:id`; a person is never a grantor (`migrations/0002_grantors.sql`).
34- Live lets OpenVibe.Quest give six common items as quest rewards: Sparkle, Hearts, Basic Cap, Fire Name, Ice Name
35 and Rainbow Name (`server/data/live-grantors.json`, set at boot). Their item pages say how to get them.
36- The public reads answer every origin (#4), and the sitemap and llms.txt list every item, kind and the public API (#3).
37
38## 0.2.0 — 2026-10-09
39
40- **The inventory (ADR-054, plan T21 step 2).**
41 - **Storage:** kinds, definitions, instances, the equipped set and an append-only ledger
42 (`migrations/0001_initial.sql`).
43 - **Code:** the domain in `server/inventory/store.js`, the API in `server/http/api.js` (seven capabilities) and the
44 pages: home, `/items`, `/items/:id`, `/me` and `/u/:subject`.
45 - **Seed:** Live's five kinds and 70 cosmetics at boot.
46 - **Events and account data:** `inventory.*` events through the outbox, and account export and deletion at
47 `/internal/events`.
48 - **Migration:** `scripts/import-live.js` moves Live's unlocks and equipped slots here and verifies them row for row.
49 - **The money rule:** no route or column sells, buys, trades or converts an item, and a test holds that.
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