Show recorded scores in past attempt rows

Ouverte Adaptée aux débutants
#604 4 commentaires 0 réactions 1 personne assignée Voir sur GitHub

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

  1. 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.

  2. 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.

  3. Run the new tests against the base revision and confirm that the score-summary assertions fail. Restore the implementation and confirm that they pass.

  4. 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.

  5. 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.

  6. 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

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de sysprog21/codetrial

Toutes les issues de sysprog21/codetrial

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.