旧 Django 后端 2026-08-26 下线、回滚路径作废,代码里还留着几处以它为前提的 死代码和过期注释。 - PUBLIC_WS_URL / PUBLIC_OJ_URL 全部删除。BaseWebSocket 的 `${PUBLIC_WS_URL}/${path}/` fallback 是 Channels 时代的写法,而三个子类 早就各自传 url,等于永不执行;config.vue 里 PUBLIC_OJ_URL 只是个会被 getWebsiteConfig() 立刻覆盖、且指着 :8000 的假初值。WebSocketConfig.path 随之去掉,url 改成必填。 - vite.config:删掉 /api2、/ws2 的迁移期注释,换成还成立的约束(代理这三段 要和 docker/Caddyfile 同步);newBackend 改名 backend。 - 六处 “回滚时旧后端还要读” 换成真实理由:snake_case 保留的结论不变,但因为 判题机按这套键名写、存量 JSONB 就是这形状。 - CLAUDE.md:数据库一节开头「不写迁移 + 先想清楚回滚」与下一节的 drizzle migration 自相矛盾,改掉;判题状态码不再要求同步到 OnlineJudge,理由换成 历史 submission.result 和沙箱用的就是这套编码。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>