mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-08 23:54:39 +00:00
Closes the highest-leverage gaps from the completeness report (items 2–5). Capability enforcement (#2): - The broker now refuses any request whose capability is not in the manifest's `requires`. The host resolves `requires` to a declared capability set and sends it with every IPC request; the broker denies undeclared capabilities before any consent prompt. Per-operation consent summaries added for the new ops. Read capability (#3): - New QueryEvents request (RELAY capability) → NappletRelayGateway.query, answered from LocalCache (account.cache.filter). window.napplet.queryEvents(filter) added. nsite host wiring (#4): - NappletLauncher generalized to launch any NIP-5A site from paths+servers, so nsites (kinds 15128/35128) open in the sandbox too. The nsite card (StaticWebsite) gets an "Open" button; nsites declare no capabilities, so the broker refuses everything and they render as inert static content. Storage + wallet (#5): - STORAGE fully implemented: StorageGet/Set/Remove + DataStoreNappletStorage, namespaced per applet coordinate. window.napplet.storage.{get,set,remove}. - WALLET modeled with PayInvoice + NappletWalletGateway, but kept Unsupported (no gateway provided) — no money path ships until verified end-to-end. - Inter-applet messaging and live (non-cache) relay query remain v2. commons broker tests cover declaration enforcement, query, and storage round-trip. :commons:jvmTest and :amethyst:compileFdroidDebugKotlin pass; spotless clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016ncMHuBBVHEf7spAoSssde