No description
Find a file
Mannu ccae6d85d2 Fix broken memories count + silent upload failures
Memories "count 2 but no images" root cause:
- DB rows exist with processing_status='failed'/'uploading' from aborted uploads
  whose R2 objects never actually landed. The img onError fires and hides the
  tile, but the count still includes these orphaned rows.
- Fix: GET /api/memories now excludes failed rows and uploading rows older than
  30 min from both the SELECT and the count. Also fires a background DELETE to
  clean up orphaned rows so they stop accumulating.

Profile / memories upload silent failures:
- Some Android cameras return file.type="" which caused the avatar API to reject
  the upload with a 400 error. Error was caught but shown in a small text node
  buried below the form — invisible when looking at the avatar area.
- Fix: added resolveContentType() helper (used in profile, memories, home) that
  falls back to extension-based detection when file.type is empty/octet-stream.
- Fix: profile page now uses a separate uploadMsg state rendered immediately
  below the avatar so errors/success are always visible on mobile without scroll.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 10:48:28 +05:30
docker/init-db chore: initial setup 2026-05-10 03:33:32 +05:30
docs Security hardening: auth, bcrypt, rate-limiting, RLS, audit 2026-05-16 23:11:01 +05:30
drizzle feat(settings): add Pediatrician Name field alongside phone 2026-05-28 00:49:05 +05:30
public Fix broken memories count + silent upload failures 2026-05-28 10:48:28 +05:30
scripts feat(pwa): add Serwist service worker, manifest, icons, install prompt 2026-05-27 23:20:48 +05:30
src Fix broken memories count + silent upload failures 2026-05-28 10:48:28 +05:30
.dockerignore feat(db): wire migration runner into the deploy pipeline 2026-05-23 13:40:30 +05:30
.gitignore feat(db): wire migration runner into the deploy pipeline 2026-05-23 13:40:30 +05:30
CLAUDE.md docs+fix: overhaul CLAUDE.md + expose emailStatus in invite response 2026-05-24 15:15:53 +05:30
docker-compose.dev.yml chore(dev): align dev Postgres to pg18 matching production 2026-05-23 14:22:15 +05:30
Dockerfile feat(db): wire migration runner into the deploy pipeline 2026-05-23 13:40:30 +05:30
drizzle.config.ts feat: add Drizzle config and auth/family schema 2026-05-10 04:08:39 +05:30
next-env.d.ts Security hardening - all 8 patches applied 2026-05-16 23:59:43 +05:30
next.config.ts feat(pwa): add Serwist service worker, manifest, icons, install prompt 2026-05-27 23:20:48 +05:30
package-lock.json fix: build errors and simplify auth 2026-05-10 04:14:23 +05:30
package.json feat(pwa): add Serwist service worker, manifest, icons, install prompt 2026-05-27 23:20:48 +05:30
pnpm-lock.yaml feat(pwa): add Serwist service worker, manifest, icons, install prompt 2026-05-27 23:20:48 +05:30
pnpm-workspace.yaml Fix FamilyProvider error handling 2026-05-11 00:12:00 +05:30
postcss.config.mjs chore: initial setup 2026-05-10 03:33:32 +05:30
Project_tia.md chore: initial setup 2026-05-10 03:33:32 +05:30
README.md chore: initial setup 2026-05-10 03:33:32 +05:30
tsconfig.json feat(pwa): add Serwist service worker, manifest, icons, install prompt 2026-05-27 23:20:48 +05:30
vitest.config.ts feat(quota): storage quota + family-member limits for free tier 2026-05-27 23:21:11 +05:30

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.