- Add tests/ directory with 12 bash/curl/jq test stages covering all API endpoints
- Add tests/lib/common.sh shared library with assertions and helpers
- Add tests/run-all.sh orchestrator script
- Update CLAUDE.md with test data reference and DevTools MCP docs
- Increase dev rate limit to 5000 for test suite runs
- Configure Chrome DevTools MCP in project settings
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Sort by monthlyPrice when periodType=MONTHLY instead of always dailyPrice
- Fix client-side pagination in MyBookingsPage and LandlordListingsPage
- Compute avgRating in /rentals/mine endpoint so dashboard shows ratings
- Fix falsy filter for avgRating=0 on landlord dashboard
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add subscription tiers (Basic/Pro/Business) with listing limits and dynamic commission
- Add daily/monthly period filter on rentals page
- Add landlord dashboard with earnings chart, stat cards, property performance
- Add landlord subscription management page
- Add tenant dashboard with upcoming stays
- Add business model documentation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace placeholder image paths with actual downloaded images
for all 6 rental categories (15 images total).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move /account-status route before /:id to prevent Express
from matching "account-status" as a payout ID parameter.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Camera button now triggers file input -> uploads to POST /users/avatar -> updates auth context and preview.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use select clause instead of spreading full user object to prevent
resetToken, resetTokenExpiry, and other internal fields from being
returned in the login response.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- SellItemPage: real file upload + API listing creation + activate
- CreateProfilePage: save profile via PUT /users/profile
- ProductDetailPage: wire edit/delete/message buttons, show edit for owner
- ListingCard: persist favorites via API, show real images
- Footer: connect newsletter subscribe to API
- Router: add /dashboard/listings and /dashboard/saved routes
- Backend: add GET /listings/favorites endpoint
- New pages: MyListingsPage, SavedItemsPage
- Fix unused imports causing build failures
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add POST /listings/:id/activate endpoint to bypass Stripe in dev
- Fix chat conversation creation crash when listingId is null/undefined
- Properly handle Prisma unique constraint for conversations
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>