feat(apps): an image host that copies the link on drop master
The two reference apps both read records somebody else's client wrote. Nothing in examples/ showed the other half: a page that puts bytes into the repo it serves. drop.mjs is that app. Drag, paste or choose an image and it uploads the blob, writes a com.chadtmiller.drop.image record and copies the link, which is the site's own /.blobs/<cid> route. The shared link is the blob, not a page. That route already serves the original bytes immutably under the file's CID, so the link works wherever an image URL does and costs the app no rendering. The consequence is that a crawler asking for a preview card gets the SPA shell instead: per-image Open Graph pages would mean a file entry per upload in the site record, which grows without bound. The single image page carries no account controls. It is the page a link recipient lands on, so Sign in belongs on the index. Paste reads clipboardData.items when files is empty. Chrome and Safari fill files for a pasted screenshot; Firefox describes the image in items only. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>