pr-daaif
|
ce24d9c32b
|
build(r0.13): Dockerfiles api/web + compose Dokploy + runbook — R0 prêt à déployer
- image api : multi-stage (pnpm deploy --legacy --prod), client Prisma
régénéré dans l'arborescence déployée, binaryTargets explicites
(debian/arm64 openssl-3), entrypoint migrate deploy → seed optionnel
(SEED_ON_START, compilé dist/seed) → API ; non-root, healthcheck /health
- image web : nginx alpine, statique Vite, proxy /api résolu À LA REQUÊTE
(resolver Docker + variable — nginx démarre sans l'API), fallback SPA,
cache immuable /assets, healthcheck IPv4 (127.0.0.1)
- infra/docker-compose.dokploy.yml : 5 services préfixés siop2-, secrets
exigés, seul siop2-web rejoint dokploy-network (API jamais exposée)
- runbook docs/06-production/runbook-dokploy.md : topologie, profils
d'environnement, checklist première prod, rollback, répétition locale
- répétition locale validée de bout en bout : migrate+seed au boot,
parcours demo-login → /users/me à travers nginx conteneurisé, conteneurs
healthy ; le double verrou ADR-002 (DEMO_MODE sans I_KNOW en production)
a refusé de démarrer — observé en situation réelle
- prisma passe en dépendance de production (migrations au boot)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-15 22:58:42 +01:00 |
|
pr-daaif
|
36de93bb7e
|
test(r0.12): ESLint monorepo + parcours démo Playwright — R0.12 clos
- ESLint 10 flat config racine (typescript-eslint, react-hooks) ; règle
ADR-001 codée : no-restricted-imports interdit « minio » partout sauf
minio-storage.service.ts (violation vérifiée) ; jobs lint par paquet
- Playwright apps/web/e2e : redirection sans jeton, connexion démo 1 clic,
coquille (rail actif, chip DÉMO), bascule de rôle chronométrée < 3 s
(ADR-002), /design, déconnexion avec purge ; webServer api dist + vite,
seed idempotent en globalSetup, PW_CHANNEL=chrome en local
- CI : jobs lint + e2e (services PostgreSQL/Redis, artefact
playwright-report sur échec) ; vitest restreint à src/
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-15 22:36:17 +01:00 |
|
pr-daaif
|
4f3af5af4f
|
feat(r0.11): apps/web — connexion + sélecteur démo, coquille, /design, client typé
- React 19 + Vite + Tailwind v4 : tokens.css copié tel quel (source de
vérité), classes composants extraites de la maquette validée, Manrope
auto-hébergée, primitives shadcn-style possédées (Button cva, menu Radix)
- connexion fidèle à la maquette ; liste démo affichée seulement si
/auth/demo-accounts répond (404 ⇒ rien — ADR-002, l'API seule source)
- coquille : sidebar 4 groupes avec rail safran actif (écrans futurs marqués
R1-R3), topbar recherche/thème/chip DÉMO + sélecteur de rôle (bascule 101 ms,
critère < 3 s) ; page /design = référence vivante des revues pixel
- règle d'or : schema.d.ts généré depuis docs/openapi.json et committé
(openapi-typescript + openapi-fetch)
- tokens.css : tokens --nav-* ajoutés (valeurs de la maquette validée) ;
seed réaligné sur les personas de la maquette
- vérifié en navigateur réel (Playwright + Chrome headless) : 7 captures,
parcours démo complet, bi-thème, zéro erreur console ; typecheck + vitest + build OK
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-15 22:09:40 +01:00 |
|