Repository navigation
Conversation
ColtenOuO
left a comment
There was a problem hiding this comment.
Squash the commit and remove Co-authored-by: xxx in commit message.
Addressing review feedback doesn't require adding a new commit message.
8b0e3df to
95a5fd3
Compare
Squashed into "95a5fd3" and removed the "Co-authored-by" trailer. |
| let choices: Vec<_> = problems | ||
| .iter() | ||
| .filter(|problem| difficulties.contains(&problem.difficulty)) | ||
| .filter(|problem| Some(problem.variant().page) != previous) |
There was a problem hiding this comment.
Excluding only previous means the pool never shrinks: each reload is a fresh uniform draw from every other problem at those levels. A candidate who already knows some of them can keep reloading until one of those comes up, which is the "practice a familiar problem" case #185 is about. Each reload also sends out a new agent while the old room keeps its capacity slot. If that is acceptable for a self-assessment mode, say so in the limits paragraph of docs/interview-selection.md. Otherwise, a follow-up could store the draws in a bounded, signed set (or keep them on the server per account) so that reloading moves through the pool instead of re-rolling.
There was a problem hiding this comment.
This is an intentional limitation of the opt-in self-assessment mode. Excluding only the previous problem reduces immediate repetition but does not prevent deliberate re-rolling. Strict retains the existing agent cleanup policy, accepting temporary capacity overlap. Both trade-offs are now documented in docs/interview-selection.md.
You don't have to make statements like this, as GitHub always tracks commits. |
Practice needs reproducible problem links, while strict interviews should prevent candidates from choosing known problems. Preserve difficulty selection in both modes and start a new strict attempt on reload instead of recovering the previous interview.
95a5fd3 to
6e9c9b4
Compare
Summary
Introduce an opt-in Strict Interview mode for more honest self-assessment, reducing the ability to repeatedly practice a familiar problem through URL selection or page refresh.
Strict assigns problems on the server based on the selected difficulty, while Practice remains unchanged. A normal same-tab refresh starts a new attempt and excludes the previous assignment when its receipt is available. Session recovery is not included.
Testing
./scripts/test.shpassed (1,059 tests, no failures or skips; 46 hook checks). Manually verified withmake web.Closes #185
Summary by cubic
Adds an opt-in Strict Interview mode that assigns a matching problem server-side after media preflight, closing #185 by preventing repeated practice of a known problem via URL or refresh. Practice mode keeps its current behavior.
Selection and refresh behavior
Written for commit 6e9c9b4. Summary will update on new commits.