Updated forgot-password and reset-password pages to use stone-based
color tokens with proper dark mode variants, matching the unified
marketplace style. Also removed the dashboard PublicHeader/Footer
from these pages (always embedded=true) to eliminate the duplicate
navbar and footer when accessed via the marketplace proxy.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add inline script to root layout that reads the stored theme preference
from cookie/localStorage synchronously before React hydrates, eliminating
the light→dark flash for users who prefer dark mode.
Also guard the theme storage write with the hydrated flag so the initial
render does not overwrite a stored 'dark' preference with 'light'.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove 'medium' theme from dashboard and marketplace; keep only light/dark
- Marketplace: move public pages into (public)/ route group so header/footer
persist across navigations without re-rendering (eliminates usePathname)
- MarketplaceShell is now a pure context provider; chrome lives in
(public)/layout.tsx which Next.js holds stable across navigations
- WorkspaceFrame: remove history.replaceState and standalone-route logic
- Docker API: bypass npm run dev to avoid node --env-file in containers
- Add scripts/run-with-env-file.cjs for Node.js < 20.6 compatibility;
update apps/api/package.json dev script to use it
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Node.js was loading src/index.ts at runtime (raw TypeScript) because
main pointed to the source. At runtime it tried to resolve './damage'
without an extension which fails in Node's ESM resolver.
Pointing main to dist/index.js makes Node load the compiled CommonJS
output produced by `tsc` during the build step.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Both must use the same value. Previously POSTGRES_PASSWORD was set to a
real password near the bottom of the file while DATABASE_URL used 'change-me',
making the mismatch easy to miss.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All apps use Next.js App Router. A leftover pages/index.tsx on the server
was conflicting with app/page.tsx and breaking the build. Adding the glob
to .dockerignore prevents any pages/ directory from leaking into the image.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add typescript.ignoreBuildErrors to public-site next.config.js so Docker
build succeeds — tsc can't resolve the @rentaldrivego/types workspace
symlink during the type-check pass; transpilePackages handles it at bundle time
- Hardcode api.rentaldrivego.ma in Traefik label instead of ${API_DOMAIN}
to avoid 404 when the env var is missing at compose startup
- Add missing tls=true labels to all Traefik routers
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>