Commit Graph

  • ca1df38440 chore(web): 构建配置清理 —— 别名读 tsconfig、调高 chunk 警告阈值、删死掉的 browserslistrc xuyueandClaude Opus 5.5 2026-09-27 16:15:05 +08:00
  • 9412ba3cf6 refactor(契约): 展示题号统一叫 problemDisplayId,题单 id 统一叫 problemSetId xuyueandClaude Opus 5.5 2026-09-27 16:08:31 +08:00
  • 5ae830a7f9 refactor: 一批名不副实的命名改掉(只动一端,不碰契约) xuyueandClaude Opus 5.5 2026-09-27 16:08:21 +08:00
  • 572a818d49 style: 按 Oxfmt 重新格式化 xuyueandClaude Opus 5.5 2026-09-27 15:37:23 +08:00
  • 44295188b9 chore: 格式化、lint、任务编排换成 Vite+ xuyueandClaude Opus 5.5 2026-09-27 15:37:23 +08:00
  • f8b04af4ea chore: 加 oxlint,现存 19 条 warning 清零 xuyueandClaude Opus 5.5 2026-09-27 15:25:27 +08:00
  • 83b9d23c68 perf(前端): zod 移出首屏包,首屏 JS 721KB → 594KB(gzip 237 → 199KB) xuyueandClaude Opus 5.5 2026-09-27 15:23:31 +08:00
  • 6b2da41882 refactor(题单后台): 添加 / 编辑弹窗两两合并成 ProblemModal、BadgeModal xuyueandClaude Opus 5.5 2026-09-27 15:15:37 +08:00
  • f49834f19f refactor(班级 PK): 十个柱状图 computed 合成 barChart 工厂 xuyueandClaude Opus 5.5 2026-09-27 15:15:32 +08:00
  • e17da63fc6 fix(上传): 头像和题面插图按文件头认格式,不信扩展名 xuyueandClaude Opus 5.5 2026-09-27 15:15:36 +08:00
  • b105fe3cbd fix(测试点): 解压前按条目头拦大小,防 zip bomb xuyueandClaude Opus 5.5 2026-09-27 15:14:12 +08:00
  • 7a390323fe refactor(前端): 接口错误改成 ApiError 类,catch 不再写 any xuyueandClaude Opus 5.5 2026-09-27 15:12:40 +08:00
  • 6406794971 refactor(AI): 学情统计查询从 routes/ai.ts 挪到 services/learning-stats.ts xuyueandClaude Opus 5.5 2026-09-27 15:09:21 +08:00
  • 925cecb389 refactor(题目): 新建 / 复制题目收成 validateProblem、insertProblem、copyProblem xuyueandClaude Opus 5.5 2026-09-27 15:07:13 +08:00
  • f2ca34fd4b refactor(api): 请求体解析收成 readJson / parseBody xuyueandClaude Opus 5.5 2026-09-27 15:04:19 +08:00
  • c43da01ff2 refactor(AI): 四份 SSE 请求代码合成 streamAI + useAIStream xuyueandClaude Opus 5.5 2026-09-27 15:01:43 +08:00
  • 09030240b8 fix(AI): 流式调用加空闲超时、客户端断开即停上游、错误原因不下发 xuyueandClaude Opus 5.5 2026-09-27 15:01:43 +08:00
  • 04c0ccd304 fix(AI): Bun.serve 空闲超时调到 60 秒,AI 流不再在 10 秒静默后被掐断 xuyueandClaude Opus 5.5 2026-09-27 15:01:43 +08:00
  • b38ad8ccee feat(配置): 启动时用 zod 一次解析环境变量,有错拒绝启动 xuyueandClaude Opus 5.5 2026-09-27 14:53:51 +08:00
  • ca0dbbf0c5 fix(登录态): 退出和换人登录时整页重载,不留上一个人的数据 xuyueandClaude Opus 5.5 2026-09-27 14:51:52 +08:00
  • fb240d4254 feat(限流): 登录、注册、比赛密码防爆破 xuyueandClaude Opus 5.5 2026-09-27 14:51:52 +08:00
  • 5813981bb1 fix(部署): Redis 强制口令,外接形态部署前实测 xuyueandClaude Opus 5.5 2026-09-27 14:51:52 +08:00
  • 9d271942aa feat(AI 提示): 题面补上输入输出说明和样例,HTML 去标签 xuyueandClaude Opus 5.5 2026-09-27 14:28:21 +08:00
  • 22fc8d63e2 feat(AI 提示): 阶梯延到 L3 思路 / L4 示例 xuyueandClaude Opus 5.5 2026-09-23 09:20:24 +08:00
  • b16e11e85d fix(题目推荐): 已 AC 过滤下推 SQL、难度按语义排序、难度标签渲染 xuyueandClaude Opus 5 2026-09-22 09:24:46 +08:00
  • 954797a9a5 feat(AI 提示): 提示分级(L0 反问 / L1 定位 / L2 概念)与输出后过滤 xuyueandClaude Opus 5 2026-09-21 19:03:21 -06:00
  • 8b4d8899f9 feat(判题机): 自建镜像升级工具链,语言收敛到 C / C++ / Python xuyueandClaude Opus 5 2026-09-20 06:24:05 -06:00
  • a872e8365b fix xuyue 2026-09-19 07:10:49 -06:00
  • b4c0f89291 fix(个人主页): 总共学习天数改为有提交的天数 xuyueandClaude Opus 5 2026-09-19 07:07:57 -06:00
  • 06ad6745b7 feat(AI 提示): 两段式提示——先诊断出错误标签,再生成提示 xuyueandClaude Opus 5 2026-09-19 06:56:38 -06:00
  • 47d8f46bdb feat(AI 提示): 提示落库并收集学生评价,落进 ai_hint xuyueandClaude Opus 5 2026-09-19 06:00:10 -06:00
  • a0ef204bd2 feat(提交): 采集编辑过程信号,落进 submission_trace xuyueandClaude Opus 5 2026-09-19 05:46:55 -06:00
  • 20a6ddc79c feat(自学): 重做学生端页面与教师端学情概览 xuyueandClaude Sonnet 5 2026-09-19 05:07:37 -06:00
  • c228b164cf refactor(提交): 教师统计路由拆出 submission-statistics.ts,check:routes 支持嵌套挂载 xuyueandClaude Sonnet 5 2026-09-19 04:40:30 -06:00
  • b5ba56ccd0 refactor(契约): 判题状态码收进契约唯一一份,并收紧 18 处 as any xuyueandClaude Sonnet 5 2026-09-19 04:40:30 -06:00
  • f90d01338e feat(自学情况): 按学生加姓名/学号搜索,后端补稳定排序 xuyueandClaude Opus 5 2026-09-17 02:23:01 -06:00
  • 3cc2be77a9 fix xuyue 2026-09-17 02:12:04 -06:00
  • 905ba2ee03 fix xuyue 2026-09-17 02:07:52 -06:00
  • a8de8f3932 feat(排名): 本周进步榜移到全服 Top100 右边,左 2/3 右 1/3 xuyueandClaude Opus 5 2026-09-17 02:03:04 -06:00
  • 24af385f33 feat(排名): 加本周进步榜,按本周首次 AC 数排,每周一清零 xuyueandClaude Opus 5 2026-09-17 01:53:37 -06:00
  • ad858ed864 feat(提交列表): 代码详情弹框支持方向键翻阅,到头自动翻页 xuyueandClaude Opus 5 2026-09-16 19:26:51 -06:00
  • 88b695d34f feat(课堂求助): 教师端接单直接跳题目页协作,删掉 CollabModal xuyueandClaude Opus 5 2026-09-16 19:13:42 -06:00
  • ed56a209ea chore(格式): Prettier 统一到全仓,后端和契约一次性格式化 xuyueandClaude Opus 5 2026-09-16 08:27:34 -06:00
  • e600fd24cf feat(提交列表): 今日提交数旁加「统计」按钮,弹框给今天的提交统计 xuyueandClaude Opus 5 2026-09-16 08:23:45 -06:00
  • 5eee13fe81 chore: 删掉两个跑完的一次性订正脚本,recount 留着 xuyueandClaude Opus 5 2026-09-16 08:03:57 -06:00
  • 6fdc3c588e chore(开发环境): 本机库改成靠迁移自举,db:migrate 换成线上同一个执行器 xuyueandClaude Opus 5 2026-09-16 08:03:40 -06:00
  • a8408c0bb5 docs: 文档整理,CLAUDE.md 瘦身一半,删掉重写期已完成的 22 份阶段产物 xuyueandClaude Opus 5 2026-09-16 08:03:26 -06:00
  • 3559ae4d6f chore(前端): 浏览器基线从 Chrome < 94 提到 105,删掉 mermaid@9 那套 fallback xuyueandClaude Opus 5 2026-09-16 07:43:21 -06:00
  • 688005c081 perf(流程图): 列表裁掉整行 select、count 去掉 join,统计面板的数值全下推 SQL xuyueandClaude Opus 5 2026-09-15 22:19:21 -06:00
  • ed3b2cf6de feat(课堂求助): 教师协作弹框左侧直接显示题面 xuyueandClaude Opus 5 2026-09-15 08:48:40 -06:00
  • 4189c59162 update xuyue 2026-09-14 08:39:58 -06:00
  • cc51e305cf refactor(时区): 常量收进契约、SQL 统一走 localTime,去掉会话时区与 TZ 兜底 xuyueandClaude Opus 5 2026-09-14 06:06:52 -06:00
  • 3921c496cb fix(成就): 后台补发成就后重算已解锁数并接着判「奖杯收藏家」;recount 订正存量 xuyueandClaude Opus 5 2026-09-14 05:55:38 -06:00
  • f6995c841b ops(成就): 加 fix-achievement-hours,订正时区丢失期间误发的「夜猫子」「早起的鸟儿」 xuyueandClaude Opus 5 2026-09-14 05:55:27 -06:00
  • 4c0c38445c fix(时区): 日历口径收回东八区,读出的时刻统一成 ISO 并保留微秒 xuyueandClaude Opus 5 2026-09-14 05:55:17 -06:00
  • 6e63866cc9 perf(提交列表): 按用户名、题号筛选走索引,不再扫全表 xuyueandClaude Opus 5 2026-09-13 23:47:24 -06:00
  • fe4fc46243 fix xuyue 2026-09-13 23:40:58 -06:00
  • 271123179a fix xuyue 2026-09-13 19:29:45 -06:00
  • 9132901cc7 feat(提交结果): 没通过时显示「通过 x/y 个测试点」;编译失败不等三次就能用 AI 分析 xuyueandClaude Opus 5 2026-09-13 07:25:00 -06:00
  • a833819679 fix(统计面板): 班级选择不再记本地,别让上一个人的班悄悄留在框里 xuyue 2026-09-10 20:57:34 -06:00
  • 2b07040aee refactor(时段): 两份手抄的选项列表与五份 "weeks:1" 解析收成一处 xuyueandClaude Opus 5 2026-09-10 20:28:33 -06:00
  • 8eae4bea7b feat(统计面板): 展开一个学生后按题目分组,每道题画一条「状态轨迹」 xuyueandClaude Opus 5 2026-09-10 20:09:09 -06:00
  • f581029eb2 refactor(统计面板): 抽出 useHiddenStudents,两份逐字相同的「请假隐藏」合成一份 xuyueandClaude Opus 5 2026-09-10 19:46:32 -06:00
  • eda1eb7eee chore(题单): 删掉客户端自报进度的 PUT /problem-set-progress xuyueandClaude Opus 5 2026-09-10 19:42:17 -06:00
  • 79bfd28b07 chore: 删掉 369 行没有任何调用方的代码 xuyueandClaude Opus 5 2026-09-10 19:38:16 -06:00
  • 91712b482d fix(AST): f-string 规则从上线起就没生效过;加 check:ast 把这类静默错判变成机器检查 xuyueandClaude Opus 5 2026-09-10 19:33:19 -06:00
  • a6ba5cdf07 refactor(AST): 两张 target 表合成一张,加节点类型漏配在结构上不再可能 xuyueandClaude Opus 5 2026-09-10 19:30:35 -06:00
  • 8520192a98 refactor(前端): websocket 合并三层继承与三份重复 composable,803 → 660 行 xuyueandClaude Opus 5 2026-09-10 18:25:47 -06:00
  • ab47e71d6f refactor(契约): 出参不再 parse,后台老题详情和站内信页不再 500 xuyueandClaude Opus 5 2026-09-10 05:45:15 -06:00
  • b9a80d62bc docs(CLAUDE.md): 合并顶部叠着的更正块,订正前端验证方式,补上契约收紧的边界 xuyueandClaude Opus 5 2026-09-10 04:57:34 -06:00
  • 7d15e6aeaa refactor(契约): 判题产物退回不校验,练一练的形状闸挪到写入侧,运行时闸门收回三处 xuyueandClaude Opus 5 2026-09-10 04:53:28 -06:00
  • 684f2d29a5 feat(契约): 练一练的内容按题型收进契约,7 个题型组件不再裸读 data xuyue 2026-09-10 04:28:26 -06:00
  • 5da661d7f0 refactor(契约): 补上 AI / 站内信 / 自学留痕等接口的闸门,并订正前端 CLAUDE.md 的过期内容 xuyue 2026-09-10 04:25:24 -06:00
  • de34a47996 refactor(契约): 契约闸门铺到其余学生端接口,并清掉与契约等价的重复类型 xuyue 2026-09-10 04:23:41 -06:00
  • aab0404ed7 refactor(契约): 语言与判题产物的形状收进契约,学生端高频响应接上运行时校验 xuyue 2026-09-10 04:19:41 -06:00
  • a475cac128 fix(数据库): 生产库里还留着一张空的 django_migrations,补一条迁移删掉 xuyue 2026-09-10 04:02:33 -06:00
  • 78a42a42e7 update xuyue 2026-09-10 03:44:32 -06:00
  • 26b23aa7c0 fix(统计): 「提交记录」列出所有交过的人,不再只有做完的 xuyueandClaude Opus 5 2026-09-08 23:52:34 -06:00
  • 6bef55904f fix(题目分析): 「卡住的题」只看公共题,别把比赛题也算进来 xuyueandClaude Opus 5 2026-09-08 18:30:05 -06:00
  • 80f3b21e95 perf(索引): 0012 删 21 个冗余索引,0013 加 4 个筛选/聚合索引 xuyueandClaude Opus 5 2026-09-08 18:29:53 -06:00
  • a5b57d8ab8 fix(判题): 任务被遗弃时给提交落一个终态,别永远停在「等待评分」 xuyueandClaude Opus 5 2026-09-08 18:29:30 -06:00
  • 64ad6139f5 fix(后台用户): 删账号前拦住还有提交的人,改名回填按 user_id xuyueandClaude Opus 5 2026-09-08 18:29:19 -06:00
  • a89eed7bdd fix(提交统计): 按 user_id 归属提交,不再按提交时冻结的用户名 xuyueandClaude Opus 5 2026-09-08 18:29:02 -06:00
  • 9c5a1d551d perf(教师统计): 展开行的明细改成按需拉,统计响应不再背着 4.9 万行没人看的数据 xuyueandClaude Opus 5 2026-09-08 05:43:32 -06:00
  • fdfb064d0c fix(备份): 磁盘余量检查在老 mawk 上崩掉 xuyueandClaude Opus 5 2026-09-08 05:26:09 -06:00
  • 2bf0e7bfc1 ops(备份): 加 backup-db.sh,按容器名导出、校验完整性、带保留策略 xuyueandClaude Opus 5 2026-09-08 05:21:13 -06:00
  • f66bafafaf feat(教师统计): 提交统计面板返修 —— 统计口径、未完成分两栏、多题、自动刷新 xuyueandClaude Opus 5 2026-09-08 05:20:51 -06:00
  • 3a8f4fcd51 fix(后台用户): 管理员密码显示出来之后能再隐藏 xuyueandClaude Opus 5 2026-09-07 19:59:54 -06:00
  • 6a438872b9 feat(排行榜): 页头显示当前在线人数,在线绿点只给老师 xuyueandClaude Opus 5 2026-09-07 19:36:12 -06:00
  • 856b7a280e feat(后台用户): 新增「在线优先」排序,列表直接显示在线标记 xuyueandClaude Opus 5 2026-09-07 19:30:45 -06:00
  • 5222e012e1 fix(比赛): 修四处 —— 倒计时两倍速、排名不自动刷新、题目状态恒空、比赛隐藏后审核页取不到代码 xuyueandClaude Opus 5 2026-09-07 19:19:29 -06:00
  • ddc3f05bc3 fix(运维脚本): clear-sessions.sh 补上 dash 垫片 xuyueandClaude Opus 5 2026-09-07 18:49:24 -06:00
  • 5d60bb15bb perf(redis): 热路径合并往返,限流脚本改走 EVALSHA xuyueandClaude Opus 5 2026-09-07 18:44:59 -06:00
  • 01d7924faa ops(会话): 加一次性脚本清掉全部会话,闭掉存量会话吊销不掉的空窗 xuyueandClaude Opus 5 2026-09-07 07:45:47 -06:00
  • 57bc652629 perf(数据库): user 表补两个索引,班级过滤和活跃人数统计不再全表扫 xuyueandClaude Opus 5 2026-09-07 07:42:46 -06:00
  • ec1509c46d perf(限流): 桶参数加 60 秒进程内缓存;Redis 连接补 error 监听 xuyueandClaude Opus 5 2026-09-07 07:41:09 -06:00
  • 22a7700b89 fix(会话): touchSession 续期时一并续反向索引,否则会话吊销不掉 xuyueandClaude Opus 5 2026-09-07 07:40:58 -06:00
  • 25b86ec17e refactor(提交): 删掉从来没用起来的「提交互相可见」 xuyueandClaude Opus 5 2026-09-07 07:18:41 -06:00
  • 2256597838 fix(后台建题): 修好 dev 代理走错服务,以及新建页带出上一题 id、超长标签报英文 xuyueandClaude Opus 5 2026-09-07 07:18:23 -06:00
  • d1d071ff7b fix(后台): 测试用例生成器允许无输入的测试点 xuyueandClaude Opus 5 2026-09-07 06:29:23 -06:00