tia/public
Mannu e99a874309 Wardrobe: gallery picker + non-blocking vision AI; add /api/time endpoint
Wardrobe add page:
- Remove capture="environment" so Android shows the Camera/Gallery chooser
  instead of opening the camera directly
- Vision AI no longer blocks the UI: photo preview + form appear instantly
  after selecting an image; upload spinner shows on the thumbnail while R2
  upload runs; vision AI fires in the background and fills in tags when done
  without interrupting the user (they can pick size/occasions in parallel)
- "AI tagging…" pulsing badge in header while vision runs; " AI pre-filled"
  badge when done; form fields are only overwritten if the user hasn't already
  typed/selected something (functional state updater with prev-value guard)
- Save button is disabled (with "Uploading photo…" label) until R2 upload
  completes — prevents saving a garment with no imageKey

/api/time endpoint (GET, no auth):
- Returns { utc, istDate, istTime, ist, offsetMinutes } for the current server
  time in Asia/Kolkata so the app can verify server clock and surface IST time
  reliably (can be called from browser console at /api/time)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 23:31:18 +05:30
..
icons feat(pwa): add Serwist service worker, manifest, icons, install prompt 2026-05-27 23:20:48 +05:30
file.svg chore: initial setup 2026-05-10 03:33:32 +05:30
globe.svg chore: initial setup 2026-05-10 03:33:32 +05:30
icon.svg polish(marketing): favicon, scroll-reveal nav, Google button, font + hovers 2026-05-26 00:05:10 +05:30
next.svg chore: initial setup 2026-05-10 03:33:32 +05:30
sw.js Wardrobe: gallery picker + non-blocking vision AI; add /api/time endpoint 2026-05-28 23:31:18 +05:30
vercel.svg chore: initial setup 2026-05-10 03:33:32 +05:30
window.svg chore: initial setup 2026-05-10 03:33:32 +05:30