Show recorded scores in past attempt rows
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
-
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.
- Vorherrschende Sprache
- Rust
- Sterne
- 223
- Forks
- 148
- Ø Merge
- 1 T. 7 Std.
- Gemergte PRs (30 T.)
- 225
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus sysprog21/codetrial
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Let candidates filter problems to their saved listEvtl. vergeben @hszzt hat das vor 1 Tag übernommen. Offen
sysprog21/codetrial#616 · 1 Kommentar · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
Report credits an inaccurate problem restatement as a strengthEvtl. vergeben @jserv hat das vor 1 Tag übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
sysprog21/codetrial#613 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Jim's compact card covers a text box's controls on an expanded Example drawingEvtl. vergeben @Disesfgewu hat das vor 1 Tag übernommen. Offen
sysprog21/codetrial#609 · 1 Kommentar · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in sysprog21/codetrial
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
RustCrypto/utils#1597 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
max-sixty/worktrunk#4727 · 7 Kommentare · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
Maintainer antworten meist innerhalb von 1 Tag
-
follow-up
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 73/100
carrick-sh/carrick#1859 ·
Maintainer antworten meist innerhalb von 1 Tag