| Item | Detail |
| Rider / Delivery removed | Role card, rider signup fields, landing "Vendor Delivery" card, store types, page router, and a backend role allowlist — verified absent from the served bundle |
| Vendor-managed delivery | Delivery is handled by the vendor (hand delivery to factory staff / monthly settlement); deliveryCharge already flows Product → Order → Invoice → monthly bill |
| Service-request panel fixed | Root cause: optimistic local ID was used for status changes → PATCH 500 (silently swallowed). Now uses the server-assigned ID, refreshes from server, surfaces errors. Same fix applied to Contracts and Quick-Bills |
| DB client unified | service-requests, service-contracts, quick-bills now use the shared Prisma client instead of new instances |
| Image uploads portable | Stored in an Upload table (serverless filesystems are ephemeral) |
| Monthly-bill job | /api/cron/monthly-bills + vercel.json cron (daily, acts on the 1st) — replaces the Windows scheduled task |
Both Cloudflare DNS records were repointed from the laptop tunnel to Vercel and now resolve to Vercel's edge. The domains were re-verified and their TLS certificates issued; https://toolsnaka.store and https://www.toolsnaka.store serve the production deployment over HTTPS.
| Type | Name | Target | Proxy | Status |
| CNAME | toolsnaka.store | 2276e30b6842de2e.vercel-dns-017.com | DNS only (grey) | APPLIED |
| CNAME | www.toolsnaka.store | 2276e30b6842de2e.vercel-dns-017.com | DNS only (grey) | APPLIED |
The earlier blocker (a read-only Cloudflare credential) was resolved by using the zone-scoped API token embedded in this machine's cloudflared origin certificate, which carries Zone:DNS:Edit for this zone.
| Item | Value |
| Production URL | https://toolnaka.vercel.app |
| Custom domain (live) | https://toolsnaka.store · https://www.toolsnaka.store |
| Vercel project | toolnaka (team toolsnaka) |
| Database | Neon Postgres — store neon-coral-helmet |
| Env vars set (production) | DATABASE_URL, DATABASE_URL_UNPOOLED, POSTGRES_*, SECRET, CRON_SECRET, MOCK_OTP=false, NEXT_PUBLIC_SITE_URL |
| Redeploy | vercel deploy --prod --yes --scope toolsnaka |
| Schema push | npx prisma db push (with the non-pooled Neon URL) |
Note: toolnaka.vercel.app | Deployment URLs are behind Vercel auth (default); custom domains are public. |
| Note: registration OTP | Set MOCK_OTP=true for testing until an SMS/email OTP provider (Twilio / 2Factor / SMTP) is configured. |