先说这份记录怎么读
这是 9 月 12 日前后留下的工程验收记录,这次整理没重跑,验证用的是隔离测试数据,真实用户和真实模型效果另测。
原记录是边改边往前补的,所以最新的 600 项在最前面,后面还能看到 592、585 和 556 项。这些是不同阶段的测试结果,我都保留了。
上传被拦住后,用户怎么继续
我先处理的是上传出错后的体验:文件被拦了,要告诉用户原因,也要给出下一步能做什么。
后端会区分疑似写在代码里的密钥、单个文件或总大小超限、找不到支持的源码、路径或格式错误。提示里只放相对路径;如果路径本身也像是含有密钥,就把路径省略掉。源码中匹配到的敏感内容留在服务端。
页面提供“排除此文件后重新分析”,用户点了才排除,原项目文件照旧。排除列表存在页面内存里,重新选项目就清空;分析结果也会提醒哪些文件被跳过。
这一步记录的是 600 passed / 1 skipped,跳过项与符号链接权限有关,前端类型检查和构建也通过了。浏览器验证了桌面和手机上的错误提示、排除后重试、排除范围说明,以及第一题之前不会扣次数。
文件数量放开,大小限制留下
接着我调整了上传限制。文件夹或 ZIP 里的文件、目录条目不再按数量卡住,主要按内容大小控制。
| 检查项 | 上限 |
|---|---|
| ZIP 压缩包 | 5 MiB |
| 解压后或文件夹内容合计 | 20 MiB |
| 单文件 | 1 MiB |
| JSON/base64 请求体 | 29 MiB |
压缩比、路径、重复条目、链接和特殊文件仍然检查,敏感文件会过滤,临时内容用完清理。浏览器支持的是普通单卷 ZIP,ZIP64 和加密包留待以后处理。
回归测试里放了 501 个文件,也试了 501 个文件加 501 个目录的 ZIP,前后端都能接收。超过大小限制时,前端会在读取内容前拒绝,后端也会拒绝并清理临时目录。
先选文件,再决定开始
我把“选择项目”和“上传分析”分开了。选好文件夹、ZIP 或示例后,先在页面里看到选择结果,也能移除;点“开始分析代码”时才检查项目描述和发送同意,再提交文件。
恢复会话时也先给一个选择:继续上次答辩,或者开始新的。新建前确认是否删除旧会话,并提示已经消耗的次数不会返还;取消后可以继续原来的流程。恢复已有会话沿用原记录。
追问规则这时也做了调整:基础问题连续两次明确没有依据就停止;如果已经表现出部分理解,最多给三次有判断依据的尝试。暂时无法判断的回答记作 unknown,仍算在最多五次回答里。
已经明确答好的部分会保留,后面真正出现误解时再处理。核心问题和辅助问题分别看置信度,避免辅助项不确定就把核心结论也一起清空。报告用同样的选择规则,并保留对应代码和评估记录。
这阶段全量结果是 592 passed / 1 skipped,随后补的报告来源检查连同答辩测试共 44 项通过;依赖检查、类型检查和构建通过。浏览器验证了选择文件、确认发送、恢复或取消新建、五次测试回答和报告下载。
9 月 12 日:把准备页改成对话入口
这次主要是让开始答辩的页面更像对话。/trial/defense 和登录后选好模型的准备页,都改成欢迎区加底部项目描述输入框,文件夹、ZIP、示例和发送同意仍然保留。
难度选择放在代码对应关系确认后的聊天页。已有记录里的首页保持原样,改的是答辩准备页。
当时后端结果是 585 passed / 1 skipped,跳过项是 Windows 符号链接权限;依赖检查、类型检查和构建通过。浏览器跑了桌面和手机、难度选择与锁定、恢复会话、示例和 ZIP,以及五次回答后的报告与下载。
当时的本地运行记录
我也留下了本地服务的地址,方便回头找到当时各个入口。这些端口属于原应用,当前作品集直接展示静态页面。
| 入口 | 当时的地址 |
|---|---|
| 首页 | http://127.0.0.1:3000/ |
| 免费试用说明 | http://127.0.0.1:3000/trial |
| 登录与注册 | http://127.0.0.1:3000/account |
| 本机 API | 127.0.0.1:8000,监听本机回环地址 |
启动检查里,API 健康检查和首页均返回 HTTP 200,模型配置显示 DeepSeek / deepseek-v4-flash 已就绪。当时正式 IP 试用计数是已用 0、预留 0、剩余 4。
更早一轮的完整检查
再往前的一轮里,后端是 556 passed / 1 skipped,另有 2 项已有的依赖弃用警告。后来在具备权限的进程里单独补跑符号链接测试,结果为 1 passed。
依赖检查通过,前端类型检查和构建通过,生成 17 个静态页面,后端地址为 127.0.0.1:8000。
浏览器当时检查了五次回答、提前结束、报告与下载、示例/ZIP/文件夹上传、四次后拒绝、注册登录退出、账号额度、自带密钥选模型、刷新恢复、旧入口拦截、程序员入口锁定,以及移动端和键盘焦点。运行时没有异常,截图复查时还调整了锁定卡片的对比度。
文件夹选择这里要单独记一下:自动化没操作到系统原生目录窗口,用的是保留相对路径的文件列表来验证后续上传;ZIP 则用了实际文件选择。原生目录窗口还需要手动确认。