Show recorded scores in past attempt rows

Offen Anfängerfreundlich
#604 4 Kommentare 0 Reaktionen 1 zugewiesene Person Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@liehcheng arbeitet bereits daran.

Seit 07.11.2026.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
78/100
Issue-Typ
Feature
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
javascript, rust
Bereich
frontend

Rechercherichtung

Lies renderAttemptHistory() in web/app.js und die aufgezeichneten Felder, die normalizeProgressEntry() in web/progress.js bereitstellt. Füge einen Browser-Test mit synthetischen gespeicherten Versuchen hinzu und prüfe den sichtbaren Zeilentext, während die Berichte für Editor-, Whiteboard-, unvollständige und ältere Einträge eingeklappt sind. Fertig ist die Aufgabe, wenn die Zeilen gültige aufgezeichnete Punktzahlen und die angegebenen Bezeichnungen für unvollständige oder nicht bewertete Berichte anzeigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
Rust
Sterne
223
Forks
148
Ø Merge
1 T. 7 Std.
Gemergte PRs (30 T.)
225

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus sysprog21/codetrial

Alle Issues in sysprog21/codetrial

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.