Merged into file-hub to share the same environment (platform resource
quota limits to one web_function). Routes: /api/photos/upload,
/api/photos, /api/photos/:id/url, /api/photos/:id/ai-caption.
String(s == null ? "") was missing the ':' branch, producing a
SyntaxError that prevented all JS from executing. Replaced with
nullish coalescing: String(s ?? "").