Server-first: page.tsx renders list and compare views as server components,
with <details>/<summary> accordions and URL-param navigation. Only the two
template selects require a client component (TemplateCompareSelects). Diff
highlighting uses a subtle cyan underline; layout is 2-col on desktop.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add RUBRICS_V2 with improved rubrics for prompts, conception, iteration,
evaluation, alignment and cost_control dimensions
- Add "Full - 15 dimensions (V2)" template using RUBRICS_V2; V1 unchanged
- Set V2 as default template by ordering templates by id desc in getTemplates
- Point demo seed evaluations to full-15-v2
- Remove `export type { ActionResult }` from "use server" files (evaluations,
admin, share) — Turbopack treats all exports as server actions, causing a
runtime ReferenceError when the type is erased at compile time
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Introduced useEffect and useState to manage component mounting, ensuring the chart renders correctly on the client side.
- Updated the rendering logic to prevent SSR issues with ResponsiveContainer dimensions, enhancing layout stability.
- Added initial dimensions for height and width based on the compact prop to improve layout handling.
- Updated ResponsiveContainer to utilize the new initialDimension prop for better responsiveness.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Updated RootLayout to fetch the authentication session and pass it to the Header component.
- Modified Header to accept session as a prop, enhancing user experience by displaying user-specific information and sign-out functionality.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Crée src/lib/action-helpers.ts avec ActionResult, requireAuth(),
requireEvaluationAccess() — type et pattern dupliqués 3× supprimés
- evaluations.ts, share.ts, admin.ts importent depuis action-helpers;
admin.ts: "Forbidden" → "Accès refusé" pour cohérence
- parseQuestions/parseRubric exportées depuis export-utils et supprimées
de DimensionCard (copie exacte retirée)
- next-auth.d.ts: Session.user.role passe de optional à required string
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- getEvaluation/getTemplates: retire les $queryRaw qui dupliquaient les
données déjà chargées via Prisma include (2 requêtes DB → 1)
- getTemplates: wrappé avec cache() React pour dédupliquer les appels
dans le même render tree
- Supprime l'import Prisma devenu inutile
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- createEvaluation: remplace N create() par un createMany() (N→1 requête)
- updateEvaluation: regroupe les upserts en $transaction() parallèle
- Ajout d'index sur Evaluation.evaluatorId, Evaluation.templateId,
EvaluationShare.userId et AuditLog.evaluationId
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- iconfull.png comme favicon browser, apple-touch-icon et icône PWA
- manifest.json pour support Android/PWA
- icon.svg clipboard cyan dans public/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Enhanced the matcher configuration to exclude SVG, PNG, JPG, JPEG, GIF, WEBP, and ICO file types from middleware processing, improving asset handling.
- Nouvelle action updateDimensionScore pour sauvegarder un seul champ
en base sans envoyer tout le formulaire
- DimensionCard : blur sur notes, justification, exemples, confiance
→ upsert ciblé + bordure violette 800ms
- CandidateForm : même pattern sur tous les champs du cartouche
- Bouton save passe aussi en violet (cohérence visuelle)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Le champ "Notes candidat" passe en bordure ambre tant qu'il y a des
changements non sauvegardés. Au défocus, la sauvegarde se déclenche
automatiquement et la bordure revient à la normale.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- max-w-5xl → max-w-7xl sur le layout global
- grille auto-fill minmax(300px,1fr) pour grands écrans
- ThemeToggle : bordure + fond permanents, emoji text-lg
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
README entièrement reécrit en français pour les développeurs Peaksys :
architecture server-first, auth bcrypt/rôles, Docker, variables d'env,
pages & fonctionnalités, structure des fichiers à jour.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>