Show recorded scores in past attempt rows
Les mainteneurs répondent en général sous 1 jour
@liehcheng y travaille déjà.
Depuis le 7/11/2026.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 78/100
- Type d'issue
- Fonctionnalité
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- javascript, rust
- Domaine
- frontend
Piste de recherche
Lis renderAttemptHistory() dans web/app.js ainsi que les champs enregistrés exposés par normalizeProgressEntry() dans web/progress.js. Ajoute un test de navigateur utilisant des tentatives enregistrées synthétiques et vérifie le texte visible des lignes lorsque les rapports sont réduits pour les entrées d’éditeur, de tableau blanc, incomplètes et anciennes. Le travail est terminé lorsque les lignes affichent des scores enregistrés valides et les libellés spécifiés pour les rapports incomplets ou non notés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Motivation
Candidates comparing their results in Interview progress → Past attempts currently have to open each report to see its scores. The row already shows the date, problem, difficulty, language, and verdict. Showing the saved scores alongside the verdict would let candidates compare attempts while their reports are collapsed.
Expected behavior
The summary will appear in the main attempt row and remain visible while the report is collapsed.
| Saved report | Expected summary |
|---|---|
| Completed editor report | HIRE · Coding 82/100 · Communication 74/100 |
| Completed whiteboard report | NO_HIRE · Board work 55/100 · Communication 68/100 |
| Completed report with communication unassessed | HIRE · Coding 82/100 |
| Completed report with an explicitly recorded zero | NO_HIRE · Coding 0/100 · Communication 45/100 |
| Incomplete report, even if score fields are present | INCOMPLETE |
| Legacy report with a missing or unrecognized verdict | UNSCORED |
For completed reports with a valid verdict, each score will be displayed independently when it was recorded. Missing, null, or nonnumeric scores will be omitted.
Proposed approach
At af66541, renderAttemptHistory() in web/app.js builds the main row, and normalizeProgressEntry() in web/progress.js exposes recordedDecision, recordedCodingScore, recordedCommunicationScore, and interviewMode.
The distinction between recorded and sanitized values matters here. sanitizeReport() supplies defaults for missing fields, including NO_HIRE for an absent verdict. Using the recorded fields prevents those defaults from appearing as an actual evaluation in the summary.
A separate comparison panel would require another interaction, so I propose extending the existing row. The scope is the Past attempts summary, with regression coverage in tests/browser/lobby.test.js. Styling changes, if needed for wrapping, will use the existing tokens.
Validation plan
-
Add browser tests using the existing lobby fixture server. Exercise the display cases above through both signed-in account history and signed-out device history.
-
Before opening any report, assert the visible summary within each attempt row and confirm that its report remains hidden. Verify the work label, verdict, score values, omitted fields, and explicit zero independently.
-
Run the new tests against the base revision and confirm that the score-summary assertions fail. Restore the implementation and confirm that they pass.
-
Verify that filtering and deleting attempts leave the expected summaries on the remaining rows. Open and collapse a report to confirm that its row summary remains visible.
-
Run
node --test tests/browser/progress.test.js tests/browser/lobby.test.js, followed by./scripts/test.sh. Record failures and skipped checks explicitly, including whether the Chromium tests actually ran. -
Capture before-and-after screenshots using synthetic history. Check the rows at desktop and narrow viewport widths for readable wrapping.
These are planned checks. The PR will include the commands, results, screenshots, and any limitations.
Related work
#276 presents phase scores in charts, and #466 compares attempts inside an opened report.
- Langage dominant
- Rust
- Étoiles
- 223
- Forks
- 148
- Merge moyen
- 1 j 7 h
- PR mergées (30 j)
- 225
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de sysprog21/codetrial
-
Difficulté 3/5 1-2 jours Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Let candidates filter problems to their saved listPeut-être pris @hszzt l’a pris aujourd’hui. Ouverte
sysprog21/codetrial#616 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Report credits an inaccurate problem restatement as a strengthPeut-être pris @jserv l’a pris aujourd’hui. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
sysprog21/codetrial#613 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Jim's compact card covers a text box's controls on an expanded Example drawingPeut-être pris @Disesfgewu l’a pris aujourd’hui. Ouverte
sysprog21/codetrial#609 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de sysprog21/codetrial
Issues similaires
-
crate: spate-kafka documentation priority: medium
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
balovess/aria2_rust#88 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour
-
Shell `yoyo <verb> <sub>` missing its required argument prints usage and exits 0: `config get`Ouverteagent-self
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
yologdev/yoyo-evolve#1154 ·