Conversation
What was broken Checkpoint attempts consumed final-submission slots, the regular My Submissions page could navigate past a reached limit, and concurrent client checks could create duplicate attempts. Entry-point checks also relied on a partial challenge submission page. Root cause Submission-limit checks counted every submission phase together, were missing from the regular submission-management route, and started the submit pending state only after an asynchronous lookup. What was changed Centralized active submission-type handling, counted checkpoint and contest attempts independently, and bypassed concept limits for final fixes and non-Design tracks. Added complete member-and-type history checks to the challenge header, regular My Submissions route, and upload boundary, with synchronous in-flight guards and fail-closed lookup handling. Any added/updated tests Added and updated utility, service, header, challenge-detail, Submission Management, and upload tests covering phase separation, full-history checks, reached and below-limit navigation, concurrent attempts, lookup failures, final fixes, unlimited challenges, and Development challenges.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What was broken
Checkpoint submissions consumed final-submission slots, the regular My Submissions page could route users to upload after a finite Design limit was reached, and concurrent client checks could allow duplicate attempts. Entry-point checks also depended on a partial challenge-wide submission page.
Root cause
The prior client implementation counted checkpoint and contest submissions together, did not guard the regular Submission Management route, and did not mark a submission attempt in flight until after its asynchronous limit lookup.
What was changed
Centralized active submission-type handling and count checkpoint and contest attempts independently. Added complete member-and-type history checks to the challenge header, the regular My Submissions route, and the upload boundary. Added synchronous in-flight guards and fail-closed lookup behavior while preserving unlimited Design challenges, final fixes, and non-Design tracks.
Any added/updated tests
Added and updated utility, service, header, challenge-detail, Submission Management, and upload tests for phase separation, complete-history checks, reached and below-limit navigation, concurrent attempts, lookup failures, final fixes, unlimited challenges, and Development challenges.
Validation completed successfully: