Commit Graph

  • e42cfac3ce feat: 班级号位数不合法直接报错,规则收敛到一处 yuetsh yuetsh 2026-08-06 00:15:47 -06:00
  • 625f2466e5 refactor: 统一用户名的 ks 班级前缀处理 yuetsh 2026-08-05 23:58:13 -06:00
  • fda7515263 refactor: 移除注册验证码,删掉 pillow yuetsh 2026-08-05 23:48:00 -06:00
  • 12c12b1840 refactor(submission): 删掉提交接口里走不到的验证码分支 yuetsh 2026-08-05 23:35:24 -06:00
  • 927f235537 refactor: 移除邮件功能 yuetsh 2026-08-05 23:17:48 -06:00
  • 8d35d5c2de chore: psycopg 改用 binary extra,精简 Dockerfile 的 apt 依赖 yuetsh 2026-08-05 23:11:33 -06:00
  • 8557f8a5f5 refactor: python-dateutil 换成标准库 yuetsh 2026-08-05 23:05:50 -06:00
  • 989b33d827 refactor: 移除 2FA 功能与三个冗余依赖 yuetsh 2026-08-05 23:00:45 -06:00
  • 7be5975d88 feat(problemset): 用户奖章接口带出所属题单 yuetsh 2026-08-05 13:53:03 -06:00
  • 8f5fee1719 docs(achievement): 部署手册补充阈值调法与实际配置状态 yuetsh 2026-08-05 11:10:33 -06:00
  • e9c7793714 feat(achievement): 添加按难度的 AC 题数指标,删除 min_ac_code_chars yuetsh 2026-08-05 11:02:16 -06:00
  • c50f7b7269 feat(achievement): 添加早起提交次数指标 yuetsh 2026-08-05 10:58:30 -06:00
  • e1ed78e7d9 feat: 成就摘要最近解锁从 5 个放宽到 10 个 yuetsh 2026-08-05 10:27:46 -06:00
  • 92e1c2b75d refactor(deploy): 容器内 nginx 换成 Caddy yuetsh 2026-08-05 09:50:46 -06:00
  • 8d6f4616b9 perf(nginx): 修复 JS 未压缩,静态资源加不可变缓存 yuetsh 2026-08-05 09:11:48 -06:00
  • 502078b51b update yuetsh 2026-08-05 08:18:02 -06:00
  • fbbbe11388 feat: 后台题目列表支持按标签筛选 yuetsh 2026-08-05 06:00:03 -06:00
  • f37ad5823b docs: 标签管理点击查看对应题目的实现计划 yuetsh 2026-08-05 05:55:26 -06:00
  • a8399ad201 docs: 标签管理点击查看对应题目的设计文档 yuetsh 2026-08-05 05:51:04 -06:00
  • 3a9ab83ba5 style: ruff format 全仓库 yuetsh 2026-08-05 04:45:26 -06:00
  • db104ac091 fix(problem): resolve_tags 的 create 包一层 atomic yuetsh 2026-08-05 04:29:48 -06:00
  • 5b393a3b4c feat(problem): 新增批量给题目添加/移除标签接口 yuetsh 2026-08-05 04:21:08 -06:00
  • c775ae4b22 feat(problem): 新增标签管理接口 yuetsh 2026-08-05 04:18:41 -06:00
  • ec7cf71ea7 refactor(problem): 标签创建逻辑收敛到 services.resolve_tags yuetsh 2026-08-05 04:15:36 -06:00
  • e698ef8bfa docs: 约束 ruff format 只作用于任务改动文件 yuetsh 2026-08-05 04:09:21 -06:00
  • f0da3de9c0 feat(problem): 标签名去空格并加大小写不敏感唯一约束 yuetsh 2026-08-05 04:07:53 -06:00
  • 6ab336ee8f docs: 计划改为纯代码实现,跳过需要数据库和浏览器的验证步骤 yuetsh 2026-08-05 04:06:36 -06:00
  • bffda7aa95 docs: 修正计划中 Task2/Task3 的 import 顺序,避免 ruff F401 yuetsh 2026-08-05 01:23:01 -06:00
  • 196e8a4532 docs: 题目标签重构实施计划 yuetsh 2026-08-05 00:42:56 -06:00
  • 9e0fb40f6c docs: 题目标签重构设计文档 yuetsh 2026-08-05 00:24:16 -06:00
  • b5702147b8 feat(achievement): 成就图标从 emoji 换成 iconify 图标名 yuetsh 2026-08-04 19:20:02 -06:00
  • cf5c3c5d2f fix(achievement): 管理接口序列化 create_time 为字符串 yuetsh 2026-08-04 09:56:16 -06:00
  • 1504164ae8 fix(achievement): distinct() 前必须 order_by() 清掉默认排序 yuetsh 2026-08-04 09:50:19 -06:00
  • f95c3a8bae docs: 成就系统上线与运维文档 yuetsh 2026-08-04 07:30:51 -06:00
  • 8ada9f72ed feat(achievement): 添加部署后自检命令 yuetsh 2026-08-04 07:27:29 -06:00
  • 8ecfeb5e36 fix(problemset): 奖章判定修复 N+1 与并发冲突并接入通知 yuetsh 2026-08-04 04:40:17 -06:00
  • 1ef681d5e9 fix(achievement): 重算时重建增量辅助键,避免指标回退 yuetsh 2026-08-04 01:39:29 -06:00
  • 72fec2ca61 fix(plan): 重算必须重建增量辅助键 yuetsh 2026-08-04 01:36:41 -06:00
  • 13e2f6df08 feat(achievement): 添加全量重算管理命令 yuetsh 2026-08-04 01:33:20 -06:00
  • d14251b53d fix(achievement): 补发标记 backfilled、放宽补发触发条件、校验稀有度 yuetsh 2026-08-04 01:28:31 -06:00
  • 054d4d5c32 fix(plan): 修正补发触发条件与 backfilled 标记 yuetsh 2026-08-04 01:27:09 -06:00
  • 46e5d774f1 feat(achievement): 添加管理侧成就 API 与阈值补发 yuetsh 2026-08-04 01:20:58 -06:00
  • b9caf55c4c fix(achievement): 隐藏成就的条件字段一并遮码 yuetsh 2026-08-04 01:14:52 -06:00
  • 562cf4f0b4 fix(plan): 隐藏成就的条件字段也必须遮码 yuetsh 2026-08-04 01:14:07 -06:00
  • 1d66e2be1f feat(achievement): 添加用户侧成就 API yuetsh 2026-08-04 01:12:16 -06:00
  • 8ce3660c87 fix(achievement): 元指标回写改为重新取锁重读,避免丢失更新 yuetsh 2026-08-04 01:08:06 -06:00
  • 73789bda0c fix(plan): 修正元指标回写的丢失更新缺陷 yuetsh 2026-08-04 01:07:21 -06:00
  • 95bf02efbd feat(achievement): 添加判定核心、通知模块并接入判题链路 yuetsh 2026-08-04 01:02:29 -06:00
  • 9e0bc1fa8c fix(plan): 修正 unlock() 的并发重复计数缺陷 yuetsh 2026-08-04 00:59:49 -06:00
  • c1081e6193 fix(achievement): 指标的 AC 口径改用 is_accepted,与全项目一致 yuetsh 2026-08-04 00:56:32 -06:00
  • d9840910e6 feat(achievement): 添加指标注册表与 16 个内置指标 yuetsh 2026-08-04 00:49:49 -06:00
  • 456c435289 feat(achievement): 添加成就系统数据模型 yuetsh 2026-08-04 00:44:35 -06:00
  • d4d700782b docs: 成就系统实施计划 yuetsh 2026-08-04 00:03:02 -06:00
  • 8d9dc7b521 docs: 修订成就系统设计,修复对现有代码的错误假设 yuetsh 2026-08-03 23:51:08 -06:00
  • c51e9332d1 docs: 成就系统设计方案 yuetsh 2026-08-03 23:46:55 -06:00
  • 75ff10d9fe fix yuetsh 2026-07-26 07:21:56 -06:00
  • 224960ac0f fix yuetsh 2026-07-26 07:20:16 -06:00
  • 66fac1f66d update yuetsh 2026-07-05 03:12:34 -06:00
  • 70fed2d15d fix yuetsh 2026-07-05 01:33:33 -06:00
  • 10af0256b8 移除 OI 残留:UserProfile 的 oi_problems_status / total_score / add_score yuetsh 2026-07-04 11:40:45 -06:00
  • 9535b64a4b 精简 Problem 模型:移除 rule_type / total_score / io_mode yuetsh 2026-07-04 11:40:38 -06:00
  • 4743b0398a update yuetsh 2026-07-04 11:07:24 -06:00
  • deae73cd88 feat: SQL 题测试点脚本回显接口 yuetsh 2026-07-03 19:29:51 -06:00
  • 803d6ca58d feat: SQL 题测试点预览接口 yuetsh 2026-07-03 19:25:47 -06:00
  • f77b98d4d7 fix yuetsh 2026-07-03 18:34:12 -06:00
  • fc09d291a7 fix yuetsh 2026-07-03 18:28:25 -06:00
  • 979c709333 fix yuetsh 2026-07-03 18:19:16 -06:00
  • 16ec78beae feat: SQL 提交前自动格式化(sqlparse) yuetsh 2026-07-03 10:05:38 -06:00
  • 2ec036ac37 feat: 新增 rebuild_sql_display 管理命令,为存量 SQL 题回填展示数据 yuetsh 2026-07-03 09:42:11 -06:00
  • 5af9d67fe2 fix: 终审修复——test_case_id 格式校验、modify 空变更报错、异常兜底与文档补充 yuetsh 2026-07-03 06:26:00 -06:00
  • 67079b5304 fix: _build_sql_display 兜底 info 结构损坏,避免 KeyError 导致 500 yuetsh 2026-07-03 01:22:27 -06:00
  • 06642b8131 feat: 保存 SQL 题时自动生成 sql_display 展示数据 yuetsh 2026-07-03 01:15:58 -06:00
  • 90531720bb fix: build_display modify 模式补齐被 DROP 的表条目 yuetsh 2026-07-03 01:10:04 -06:00
  • 09501469e2 feat: SQL 题展示数据生成 build_display yuetsh 2026-07-03 01:01:32 -06:00
  • caec69c809 docs: SQL 题数据化展示实施计划 yuetsh 2026-07-03 00:56:10 -06:00
  • e244030e7a docs: SQL 题数据化展示设计文档 yuetsh 2026-07-03 00:49:03 -06:00
  • 1e6041d13d fix yuetsh 2026-07-02 19:16:09 -06:00
  • 9f7f818d51 新增 SQL 题型:SQLite 内联判题(不依赖外部沙箱) yuetsh 2026-07-02 17:23:13 -06:00
  • d1a1c05b9f add new type of self-learning yuetsh 2026-06-29 19:37:59 -06:00
  • 180d75cb97 fix yuetsh 2026-06-29 06:41:18 -06:00
  • c1ec9eab8f update yuetsh 2026-06-14 09:43:27 -06:00
  • 124a1d84d3 update yuetsh 2026-06-14 09:42:25 -06:00
  • 9949ebf1c5 fix yuetsh 2026-06-14 09:27:21 -06:00
  • 90d1a2aa30 fix yuetsh 2026-06-14 09:19:01 -06:00
  • dab6734d03 switch docker image yuetsh 2026-06-14 09:13:05 -06:00
  • fa6736b855 docs: design Debian slim backend image yuetsh 2026-06-14 09:08:36 -06:00
  • 322acc543f build: install clang-extra-tools for clang-format in backend image yuetsh 2026-06-14 08:07:50 -06:00
  • 7974d12475 build: move ruff from dev to main dependencies (needed at runtime for code formatting) yuetsh 2026-06-14 08:05:12 -06:00
  • f7fbfdba7d fix(submission): revert unnecessary CSRF exemption on FormatCodeAPI yuetsh 2026-06-14 08:02:06 -06:00
  • 5cc5c64625 feat(submission): register /api/format_code route and fix CSRF exemption yuetsh 2026-06-14 07:57:24 -06:00
  • be1610faa6 feat(submission): add FormatCodeAPI view yuetsh 2026-06-14 07:51:41 -06:00
  • bfeb69434e feat(submission): add FormatCodeSerializer yuetsh 2026-06-14 07:48:58 -06:00
  • 4cd37cef78 feat(submission): add ruff/clang-format code formatting helper yuetsh 2026-06-14 07:46:41 -06:00
  • 69eb15ac27 Add implementation plan for pre-submit code auto-formatting yuetsh 2026-06-14 07:43:51 -06:00
  • 1bbc149e55 Add design spec for pre-submit code auto-formatting yuetsh 2026-06-14 07:41:03 -06:00
  • 95949e565c update yuetsh 2026-06-09 05:04:43 -06:00
  • 69bd6af6ec update yuetsh 2026-06-05 09:58:52 -06:00
  • d7e04adf07 fix yuetsh 2026-06-05 09:46:49 -06:00
  • 2b65acf91a update yuetsh 2026-06-05 08:51:57 -06:00
  • 84e972b174 update yuetsh 2026-06-05 00:58:51 -06:00