diff --git a/AGENTS.md b/AGENTS.md index ccb6108..c6a18d5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -128,6 +128,13 @@ session with **no other memory of this project**. So: an organiser's **EVENT · HOST** (never a self-made "issued" pass); a ticket's QR carries **`?h=`** so `/verify` checks the holder's **RSVP** (kind 31925) and shows Ticket holder + RSVP status. + **Ownership model + badges (2026-10-02):** owner = the event's **author key** + (spot 30818 / shop 30017 / event 31923 / crew 35006); crew **delegated admins** + = `admin`-marker `p` tags (`useCrewRole(crew).isElevated`); platform moderators + = hardcoded `ADMIN_PUBKEYS`. `ControllerBadge` (`components/ControllerBadge.tsx`) + surfaces the viewer's role — spot=Owner, shop=**Verified owner** (NIP-05 domain + match), crew=Owner/Admin, event=Organiser — on detail pages **and** on the card + studio's type chips (`role.*` i18n). - **Marketplace**: `GearSwapPage` (grid) + `MarketplaceItemCard` and a listing detail page at **`/listing/:pubkey/:identifier`**. Trade/escrow actions live in the shared **`ListingTradeActions`** (used by BOTH the card and the detail page