mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-08 23:54:39 +00:00
Two shared extractions so the future desktop host reuses the exact same sandbox and feed UI as Android, with no chance of drift: Shared web contract: - Move shell.html + shim.js into commons composeResources (files/napplet/), read via Res.readBytes on any platform. - New NappletWebContract (commons/commonMain) single-sources the whole web contract: the shell/shim loaders plus the internal origin/host/URLs and both Content-Security-Policies (SHELL_CSP, APP_CSP). The Android host preloads the bytes in onCreate and reads every origin/CSP constant from NappletWebContract instead of its own duplicated constants and assets.open() calls. Shared feed card: - New StaticWebsiteCard (commons/.../ui/note) renders the inert NIP-5A / NIP-5D preview card: self-contained with commons compose-resource strings, LocalUriHandler for links, and inlined card chrome. It takes an isNapplet flag and an onOpen launch slot, so it never executes applet code itself. - amethyst's note/types/StaticWebsite.kt becomes thin event->card adapters that supply the sandboxed onOpen launch. Card strings move to commons strings.xml. Both napplet test suites (commons jvmTest + amethyst) stay green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016ncMHuBBVHEf7spAoSssde