Plan: ruff for Python3, clang-format (LLVM/4-space/Attach) for C/C++,
called via new /api/format_code endpoint before submission.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Reorganize the spec from 6 incremental updates into a well-structured
document with numbered sections, consistent formatting, and no
redundancy.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add contest behavior section: AST check is skipped when contest_id
is set. Contest AST support with enable_ast_check flag deferred to
Phase 2.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Enumerate every location that checks JudgeStatus.ACCEPTED across
backend (dispatcher, account, comment, contest views) and frontend
(SubmitCode, SubmissionResult, api.ts). Key finding: user profile
status must store ACCEPTED(0) not AST_CHECK_FAILED(10) to keep
my_status green.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Existing submissions are not retroactively checked. AST re-check
for existing AC submissions deferred to Phase 2.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- AST check moves to AFTER judging (only on AC submissions)
- AST_CHECK_FAILED treated as AC for accepted_number and user profile
- statistic_info keeps separate count for drill-down visibility
- Status code changed to 10 (9 conflicts with frontend submitting)
- Added frontend impact analysis for SubmissionResult, WebSocket, problem list
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tree-sitter based code structure validation for submissions,
with per-problem per-language rule configuration.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>