Repository navigation
chore: remove code review defect comments (exercise code, no hints) - #2
Draft
hashcode-adrien with Copilot wants to merge 3 commits into
Draft
hashcode-adrien with Copilot wants to merge 3 commits into
hashcode-adrien with Copilot wants to merge 3 commits into
Conversation
Agent-Logs-Url: https://github.com/hashcode-adrien/tests/sessions/14486ffb-9243-44be-b4d8-ca792fa3f80a Co-authored-by: hashcode-adrien <137324736+hashcode-adrien@users.noreply.github.com>
Agent-Logs-Url: https://github.com/hashcode-adrien/tests/sessions/14486ffb-9243-44be-b4d8-ca792fa3f80a Co-authored-by: hashcode-adrien <137324736+hashcode-adrien@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Chore: remove code review defect comments (exercise code, no hints)
chore: remove code review defect comments (exercise code, no hints)
Apr 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Strips all in-source comments that explicitly signal intentional defects from the interview exercise codebase. The bugs, security flaws, and bad practices are fully preserved — only the hint text is removed so candidates can't trivially locate issues by searching for
Defect,TODO,N+1, etc.Removed comment categories
// Defect: …,// TODO: fix later, inline catch annotations, and relational hints (e.g.// Relation Orders (pour N+1)) acrossProgram.cs,UsersController.cs,UserService.cs,User.cs,CreateUserRequest.cs// Defect: …and{/* Defect: … */}blocks acrossusersApi.ts,useUsers.ts,UserList.tsx,UserCard.tsx,UserForm.tsx,App.tsxWhat is unchanged
All intentional defects remain intact: SQL injection via string concatenation,
async void,.Resultblocking call, SingletonDbContext, open CORS, XSS viadangerouslySetInnerHTML, direct state mutation, missingclearInterval,key={index}, hardcoded secrets, etc.Original prompt
À partir de la branche/source de la PR #1 (
feature/user-management), crée une nouvelle branche.Sur cette nouvelle branche :
main— le code doit être identique à la PR feat: user management feature (C# API + React frontend) — interview code review exercise #1 mais sans les commentaires explicitement liés aux défauts/test exercices interview.Titre PR suggéré :
chore: remove code review defect comments (exercise code, no hints)Description : “Supprime tous les commentaires signalant explicitement un défaut (‘defect’, ‘TODO’, ‘exercice’, etc.) du code backend et frontend. Le code conserve ses défauts d’origine pour l’entretien, mais n’affiche plus de remarques dans les commentaires sources.”
The following is the prior conversation context from the user's chat exploration (may be truncated):
User: Je vais faire passer un entretien technique à un développeur fullstack Sénior C# et React.
Je souhaite l'interroger en lui posant des questions techniques sur une pull request sur laquelle il y aurait plusieurs points à revoir.
Créer le code (qui contient des erreurs) et fais la PR. Explique moi tous les points pour lesquels il devrait faire un commentaire.
Assistant: J'ai lancé la création de la Pull Request avec un code volontairement truffé de défauts (C# + React) — en attente de ta confirmation pour que l'agent démarre.
En parallèle, voici la grille de revue (tous les points sur lesquels le candidat devrait commenter). Tu pourras l'utiliser pendant l'entretien :
🎯 Grille d'évaluation — points attendus en revue
🟦 Backend C# / ASP.NET Core
🔴 Sécurité (bloquants)
UserService.GetByName— concaténation denamedansFromSqlRaw/ExecuteSqlRaw. Doit utiliser des paramètres (FromSqlInterpolatedou paramètres nommés) ou passer par LINQ.Usercomplète (Password, InternalNotes, Email). Doit utiliser un DTO / ViewModel.AllowAnyOrigin— beaucoup trop permissif, à restreindre à une liste d'origines connues.appsettings.json+ constantes dans le code) — doivent venir de variables d'environnement / User Secrets / Key Vault.[AllowAnonymous]sur le contrôleur entier — aucune authentification sur des endpoints sensibles.DELETEexposé enHttpGet— viole les conventions REST et permet la suppression par simple URL (CSRF trivial).🟠 Architecture / Async
async voidsurCreateUser— impossible à attendre / catcher, doit êtreasync Task..Result/.Wait()dans le contrôleur — risque de deadlock, à remplacer parawait.CancellationTokenpropagé jusqu'à la DB.DbContexten Singleton —DbContextn'est pas thread-safe. Doit êtreAddDbContext(Scoped).SqlConnectionsansusing— fuite de ressources.🟠 Performance
GetAll—Skip/Takeattendus.Ordersdans une boucle. Utiliser.Include(u => u.Orders).🟠 Qualité / Observabilité
[Required],[EmailAddress], pas deModelState.IsValid.catch (Exception) { }silencieux — avale les erreurs.Console.WriteLineau lieu deILogger<T>.[Route]/[HttpGet("users")], verbes HTTP mal utilisés.🟩 Frontend React / TypeScript
🔴 Sécurité
dangerouslySetInnerHTMLsuruser.biosans sanitization (DOMPurify).API_KEY = "sk-live-...") — une clé côté client n'est jamais secrète.type="text".process.env.REACT_APP_*/ config.🟠 Bugs React
useEffectdeps manquantes —searchTermnon listé → stale closure.key={index}dans.map()— bug de réconciliation sur tri/suppression.users.push(...)) — React ne re-render pas correctement.document.getElementById) — anti-pattern React.setIntervalsansclearIntervaldans le cleanup duuseEffect— fuite mémoire.🟠 UX / Robustesse
loading/error, pas detry/catchautour desfetch.This pull request was created from Copilot chat.