.niceeval/record.sqlite,这就是 Record。
Record 里有什么
Run、运行中的汇总、已发布的 Attempt,以及它们的附件和内容,都保存在这个文件里。缓存、凭据和用户级服务状态不在里面。 Run 一创建就能被查到。Attempt 跑完并发布后,就能被读取,不必等所在的 Run 结束。已发布的 Attempt 不会再被修改。query、show 和 view 都只读已发布的结果。
把结果交给别人
运行完整结束后,直接复制这个文件:record.sqlite 本身。不要复制旁边的 WAL、checkpoint 或 staging 文件,复制后也不要修改里面的 SQLite 内容。
拿到别人的文件后,用 --record 指向它:
view 只读当前项目的 .niceeval/record.sqlite,不接受 --record。
读取外部文件前会先校验
query 和 show 把 --record 指定的文件当作不可信输入。只有格式版本完全匹配、SQLite 完整性检查通过、内部数据一致时,命令才会读取。校验不通过时,命令直接报错,不会迁移、修补或只读一部分。
文件被拒绝时,先确认它是运行结束后复制的完整单文件,复制期间没有别的进程在写。具体错误和下一步见排查失败的评估结果。
Record 可能包含敏感的业务内容,例如对话原文和文件改动。分享前由你负责权限、脱敏和保留期限。
Record 不负责什么
Record 只保存结果,不做统计、比较或页面。NiceEval 内置的固定查询读取已发布的结果,再把完整的查询结果交给query、show 或 view。外部代码拿不到数据库连接、读取对象或 SQL 能力。
选择哪种查看方式见 CLI。