diff --git a/AGENTS.md b/AGENTS.md index c6a18d5..ba8fda7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -135,6 +135,14 @@ session with **no other memory of this project**. So: 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). + **NFC (2026-10-02):** `src/lib/nfc.ts` writes the card/pass **verify URL** — + **Web NFC** (`NDEFReader`) on Chrome/Android, or the **local Android plugin** + `packages/skatespots-nfc` (`SkateSpotsNfc`, registered **by name** via + `@capacitor/core`) in the APK, because Web NFC isn't exposed in the Capacitor + WebView. `NfcWriteButton` renders **nothing** where unsupported (iOS/desktop), + wired to the issuer lists + the holder's "My passes". ⚠️ **UNVERIFIED** (needs + `cap sync` + a device); iOS can't write tags. A tag carries only the pointer — + trust is still the relay signature. - **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