fix(share): trailing slash so Bluesky composer treats handle URLs as HTML
Root cause: bluesky-social/social-app classifies pasted URLs with a
client-side `getLikelyType` BEFORE calling Cardyb. It splits the URL
path by `.`, takes the last segment, and looks it up in a baked-in
MIME-type table. For atproto handles like `foo.com` the segment is
`com`, mapped to `application/x-msdownload` (a Windows executable).
The composer therefore returns LikelyType.Other, never calls Cardyb,
and shows a link card without an image.
Source:
https://github.com/bluesky-social/social-app/blob/main/src/lib/link-meta/link-meta.ts
Fix: append `/` to project page share URLs. The composer now sees
extension `com/`, falls through to LikelyType.HTML, calls Cardyb
extract, and unfurls the page (Cardyb follows our 308 to the
canonical no-slash URL and reads the OG meta tags as expected).
This is purely a share-URL change; the canonical Fresh route stays
at `/explore/[handle]`, and `/explore/[handle]/` continues to 308.
Made-with: Cursor