feat(ui): 重新设计判题结果页与提交页

- 判题结果页引入友好错误解释面板,按 verdict 类型给出提示与改进建议
- 新增 dedup_runtimeinfo() 函数将重复 RE 测试点折叠为区间汇总
- 区分管理员/源浏览者与普通用户视图,原始错误默认折叠
- 错误模式匹配扩展至 28 条,覆盖 glibc/Java/Python/Go 等常见运行时异常
- 提交页改用卡片式布局,编辑器工具栏与测试运行区交互优化
- 中英文语言文件补充相关文案与快捷操作标签
- 切换 LLM 点评 API 至 newapi.klarkxy.xyz,模型改为 minimax-m3
- 新增 .codegraph/.gitignore 忽略本地调试数据
This commit is contained in:
2026-07-08 20:56:17 +08:00
parent c4e0f104b4
commit 6c462655b9
7 changed files with 1236 additions and 419 deletions

View File

@@ -358,7 +358,39 @@
$MSG_YOURS="你的程序输出";
$MSG_FILENAME="文件名";
$MSG_SIZE="大小";
// reinfo.php 友好提示
$MSG_RUNTIME_GENERIC_ERROR="程序运行时发生了未明确的错误。建议:检查边界条件、空输入、特殊值处理。";
$MSG_FORBIDDEN_SYSCALL="使用了系统禁止的操作系统调用,看看是否越权访问了文件或进程等资源。";
$MSG_HINT_TLE="程序运行超过了题目设定的时间限制 (TLE)。常见原因:算法复杂度过高(如 O() n 10、死循环、I/O 效率低(建议用 scanf/printf 或更快 I/O";
$MSG_HINT_MLE="程序使用的内存超过了题目设定的限制 (MLE)。常见原因:数组开得过大、递归过深未释放、全局变量占用空间过多。";
$MSG_HINT_OLE="输出内容超过了限制 (OLE)。常见原因:死循环输出、忘记换行、调试信息未删除。";
$MSG_RAW_ERROR="查看原始错误信息";
$MSG_RESULT_BANNER="判题结果";
$MSG_QUICK_ACTIONS="快捷操作";
$MSG_RESUBMIT="重新提交";
$MSG_VIEW_SOURCE="查看我的代码";
$MSG_VIEW_PROBLEM="查看题目";
$MSG_DOWNLOAD_DATA="下载测试数据";
$MSG_FRIENDLY_EXPLAIN="错误解释";
$MSG_DEDUP_HINT="已折叠 %d 个相同测试点";
$MSG_AI_REVIEW_DESC="基于你的代码和判题结果分析";
$MSG_DEDUP_GROUP="%s: %s ( %d 个测试点)";
// 新增 RE 模式(覆盖 glibc / Java / Python / Go
$MSG_STACK_SMASHING_DETECTED="栈保护触发stack smashing detected通常是数组越界写入了栈上的数据。检查字符数组、循环写入是否越界。";
$MSG_TERMINATE_CALLED="C++ 抛出未捕获的异常terminate called after throwing an instance of...)。检查代码中的 throw 语句是否有对应的 try/catch";
$MSG_NULL_POINTER_EXCEPTION="空指针异常NullPointerException。某处对未初始化的对象调用了方法或访问了字段。";
$MSG_NUMBER_FORMAT_EXCEPTION="数字格式异常NumberFormatException。把非数字字符串转换成数字时出错检查输入解析逻辑。";
$MSG_CLASS_CAST_EXCEPTION="类型转换异常ClassCastException。把对象强制转换为不兼容的类型。";
$MSG_NEGATIVE_ARRAY_SIZE_EXCEPTION="数组长度为负数NegativeArraySizeException。检查计算数组长度时是否出现负值。";
$MSG_PYTHON_TRACEBACK="Python 抛出异常,下方是调用栈,从下往上读就是异常发生的位置。";
$MSG_PYTHON_RECURSION_ERROR="递归层数过多RecursionError。递归深度超过了默认限制1000考虑改为迭代或手动加深递归限制。";
$MSG_PYTHON_INDENTATION_ERROR="缩进错误IndentationError。Python 用缩进表示代码块,请检查空格/Tab 是否混用。";
$MSG_PYTHON_ZERO_DIVISION="除以零错误ZeroDivisionError";
$MSG_PYTHON_NAME_ERROR="使用了未定义的变量或函数NameError。检查拼写、是否忘记 import。";
$MSG_GO_PANIC="Go 运行时报错panic通常是越界访问、nil 指针或类型断言失败。";
$MSG_ABORTED_CORE_DUMPED="程序被 abort() 终止Aborted通常源于 assert 失败或 std::terminate。";
// template/../ceinfo.php
$MSG_ERROR_EXPLAIN="辅助解释";