Releases: ranxi2001/OfferPilot
Release list
OfferPilot v0.3.3
v0.3.3 连续诊断与题库升级
修复
- 修复对话式诊断会话上下文丢失:语音或文本回答现在能读取上一轮面试官问题与历史诊断。
- 增加两轮会话回归测试,保证第二轮模型请求包含完整对话历史。
- 修复长篇流式输出强制下拉:向上滚动即可暂停跟随,并可通过悬浮按钮回到最新内容。
更新
- 同步 zero2Agent 最新面试题库,Go 后端知识条目从 404 增至 486。
- 无数据库迁移,无新增环境变量;升级后需重启 Go API 与 Next.js Web。
Full Changelog: v0.3.2...v0.3.3
OfferPilot v0.3.2
模拟面试复盘升级
v0.3.2 为模拟面试增加随时可导出的完整 HTML 复盘档案,并把复盘数据沉淀为稳定的 Agent Harness 工具接口。
完整复盘档案
- 面试进行中或最终报告页均可点击“导出复盘”。
- 单文件
.html包含原始题目、文本回答或语音转写、回答录音、逐轮分析、改进建议、标准答案与知识证据。 - 回答录音以内嵌 data URL 保存,导出文件可离线播放。
- 安全 Agent 执行轨迹保留步骤、状态、耗时与决策摘要,不包含模型私有思维链。
Agent Harness 接入点
- 新增受鉴权的
GET /api/v1/interviews/{interviewId}/review。 - review schema
1.0.0明确划分 question、answer、feedback、reference、trace 和 recording。 - 后续错题聚类、能力趋势、训练计划和复盘 Agent 可复用同一份稳定、可审计数据,不需要重新解析页面。
隐私边界
- 普通面试响应和恢复 snapshot 继续隐藏标准答案。
- 标准答案只来自该题当时固化的 per-question evidence bundle,不检索或泄露其他题目答案。
- 不导出 Prompt、原始 JD/简历正文、原始事件 payload 或私有思维链。
- HTML 对所有用户和模型文本做转义,避免输入内容在导出文件中执行。
- 录音只保留在当前页面内存并嵌入导出文件,不写入面试数据库;刷新后已释放录音无法恢复。
验证
- 108 项 TypeScript 单元/E2E 测试通过。
- Go 全包测试、
go vet和固定离线 Eval 通过。 - Next.js production build、依赖审计、API/Web Docker 镜像和
0.3.2readiness 校验通过。
本版本没有数据库 migration,可直接从 v0.3.1 升级或回滚。
OfferPilot v0.3.1
Web 开发稳定性修复
v0.3.1 修复重复或异常退出的 Next.js 开发进程可能导致端口漂移、开发锁冲突、静态资源加载失败和白屏的问题。
更新内容
- 清理 Next.js 中迁移完成后遗留的
better-sqlite3external package 配置。 npm run dev启动前检查目标端口和.next/dev/lock。- 发现已有开发服务时明确退出并给出 Windows、macOS/Linux 排障命令,不再让 Next.js 自动切换端口后继续争用同一开发锁。
- 预检只读检查,不自动结束进程,也不删除缓存。
- README 新增重复
next dev、端口占用、静态资源失效和白屏排查说明。
验证
- 107 项 TypeScript 单元/E2E 测试通过,包含空闲端口与占用端口预检测试。
- Go 全包测试、
go vet和固定离线 Eval 通过。 - Next.js production build、依赖审计及 API/Web Docker 镜像验证通过。
- Docker readiness 确认运行版本为
0.3.1。
本版本不改变 API、数据库 schema 或部署配置,可直接从 v0.3.0 升级或回滚。
OfferPilot v0.3.0
Go 主后端正式上线
OfferPilot v0.3.0 是 Go 主后端的首个正式版本。Go API 现在承载 typed Agent Harness、面试编排、逐题知识检索、SQLite 持久化、HTTP API 以及 MiMo ASR/TTS。Next.js 继续负责 Web/BFF 和 PDF、DOCX、URL 文档解析;旧 TypeScript API 仅作为迁移期回滚入口保留。
核心更新
- JD 与简历抽取为带原文引用的类型化 Profile,围绕岗位要求、项目责任和量化结果规划问题。
- Interviewer、Assessor、Reporter 使用受约束的证据边界,知识检索按题隔离绑定。
- 回答支持稳定
clientAnswerId与 SQLite 事务幂等提交,避免重试造成重复计分或部分写入。 - 浏览器断开后 Go Harness 可继续有界执行,同一标签页支持 session snapshot 恢复。
- SQLite schema v3 增加 command、event、model invocation、checkpoint、lease 和 outbox 执行账本。
- MiMo TTS 成为题目播报主链路;ASR 支持瞬时故障重试和失败录音重新分析。
- 安全执行轨迹只展示步骤、状态、耗时与决策摘要,不暴露 Prompt、参考答案、材料正文或模型私有思维链。
验证
- TypeScript 类型检查与 105 项单元/E2E 测试通过。
- Go 全包测试、
go vet与固定离线 Eval 通过。 - Next.js 生产构建与根/Web 依赖审计通过。
- API/Web Docker 镜像构建、非 root 用户和 API readiness
0.3.0校验通过。
升级提示
- 从
v0.3.0-alpha.2升级没有新的数据库 migration,继续使用 schema v3。 - 从
v0.2.0升级前,请停止写流量并备份 SQLite 数据库及其 WAL/SHM 文件。 - 若
.env显式配置MIMO_TTS_VOICE=alloy,请改为MIMO_TTS_VOICE=mimo_default。
OfferPilot v0.3.0-alpha.2
语音可靠性修复
- 面试题播报以 MiMo TTS 为主链路,默认音色统一为
mimo_default,浏览器语音仅作故障兜底。 - Go ASR 对 EOF、超时、连接重置、408、429 和 5xx 最多尝试 3 次。
- 转写仍失败时保留当前题的同一段内存 WAV,点击“重新分析录音”即可复用,无需重新回答。
- 415/422、服务配置错误和瞬时故障现在拥有明确的
retryable语义;浏览器不再显示 provider URL、密钥、EOF 或内部响应正文。 - 重置、切题和并发重试会淘汰迟到结果;麦克风启动失败不会提前销毁旧录音。
展示与验证
- README 新增完整 Agent 执行轨迹和证据化回答反馈两张功能截图。
- GitHub Actions 的 test、Go、Web、lint 和 Docker 作业全部通过。
- 本地 105/105 Vitest、Go 全包测试与 vet、固定 Eval、Web production build 和两套依赖审计通过。
- 真实 MiMo 冒烟覆盖 1.12 秒 MP3、65.88 秒 WAV ASR,以及 24 kHz 单声道 MP3 TTS。
升级提示
本补丁没有数据库 migration,继续使用 schema v3。旧 .env 若显式设置 MIMO_TTS_VOICE=alloy,请改为 MIMO_TTS_VOICE=mimo_default 并重启 API 与 Web;未设置时会自动使用正确默认值。
OfferPilot v0.3.0-alpha.1
这是 v0.3.0 质量与故障语义路线的首个 Alpha。
主要变化:
- 按题动态知识检索、严格 evidence bundle 隔离和 grounded typed Profile。
clientAnswerId+ payload hash 幂等;20 个相同并发提交只评估、计分和出下一题一次。- SQLite schema v3:command、event、invocation、checkpoint、lease、outbox,以及 answer 原子提交。
- 浏览器断开不取消五分钟有界 Go Harness run;同标签页可恢复当前题、反馈、进度、历史轮次和安全执行时间线。
- CI Eval:30 个案例、90 道全局唯一问题、121/121 有效引用、120 个公开字段隐私 marker 命中为 0。
GitHub Actions 5/5 job 通过,包括 Node.js 24、Go test/vet/Eval、Web 生产构建、依赖审计和 API/Web Docker 冒烟。
这是 prerelease。SSE Last-Event-ID、跨进程 stale worker 接管、跨设备轨迹同步、真实 provider 双盲质量评审仍是后续版本工作。升级前请先备份 SQLite;schema v3 为 forward-only migration。
OfferPilot v0.2.0
Changelog
本文件记录 OfferPilot 各版本面向用户和部署者的主要变化。项目遵循
Semantic Versioning,在 1.0.0 之前仍可能调整 API,
但持久化数据变更必须提供向前迁移和回滚说明。
0.2.0 - 2026-08-11
Added
- 新增 Go 主后端和 typed Agent Harness,由 Planner、Interviewer、Assessor、
Reporter 分别承担覆盖规划、出题、评估和报告生成。 - 模拟面试支持同时上传、粘贴或通过 URL 获取 JD 与简历,并提供知识拷打、
项目深挖和混合模式。 - 新增基于 SQLite WAL 和乐观版本 CAS 的面试会话持久化,进程重启后可恢复
当前问题。 - 新增 NDJSON 实时执行轨迹,前端保留每次运行及步骤的
queued -> running -> completed/failed状态和耗时。 - Markdown 知识库按原子问答块加载;本版本仓库中的 36 个知识文件可解析为
404 个题块,并通过 BM25 检索。 - 新增 Go API 的
/health/live、/health/ready和运行版本字段。
Changed
- 默认服务入口从 TypeScript API 切换为 Go API;TypeScript API 仅作为
npm run serve:legacy回滚路径保留。 - Node.js 运行时统一为 24,Go 工具链统一为 1.26。
- 固定题单和机械
next被逐轮语义评估与自适应追问取代。 - 混合面试按每道题适用的 rubric 先归一化,再按轮次等权计算总分。
ready至少需要 4 轮有效评估;混合面试要求知识和项目各至少 2 轮,
同时检查 JD 覆盖、项目深挖和明确矛盾。report_only模式不再提前返回逐题 Assessment,最终报告统一给出反馈。
Security
- 知识参考答案只进入 Assessor 私有上下文;Planner、Interviewer、Reporter、
HTTP 响应和执行轨迹只使用候选人可见投影。 - 新增问题、评估、报告及旧缓存报告的跨知识锚点泄漏检测和失败关闭策略。
- URL 材料获取拒绝 loopback、私网和其他不允许的目标,避免 SSRF。
- Agent 调用失败、超时或修复后仍不合法时返回可重试错误,不提交机械兜底分数。
- Web 容器改为非 root 用户运行;Compose 默认只把 Go API 绑定到宿主机
127.0.0.1。 - 修复并锁定受影响的前端构建依赖,根项目和 Web 的高危依赖审计均为 0。
Verification
- Go 全量测试与
go vet通过。 - Node/Vitest 共 66 项测试通过。
- Next.js 生产构建和 Docker Compose 配置检查通过。
- 已在实际模型供应商上完成一场同时包含 JD 与简历的 4 轮混合面试:知识题与
项目题各 2 轮,全部回答成功提交并生成报告。脱敏记录见
v0.2.0 发布验证。 - 已验证持久化旧会话可在 API 重启后继续;Assessor 超时的失败请求不会提交
答案或机械兜底评分。 - 隐私合同测试覆盖问题、评估、报告、旧缓存报告和正向泄漏对照;另对该次真实
会话的 8 个私有知识 reference 做规范化窗口扫描,未观察到报告字段泄漏命中。 - 本次真实供应商请求耗时约 8.4 至 170.8 秒;单场冒烟不能替代下一版本计划的
固定质量 Eval、重复运行和延迟分阶段统计。
Known Limitations
- 执行轨迹是安全的步骤、状态、耗时和决策摘要,不包含模型私有原始思维链。
- PDF、DOCX、TXT、Markdown、TeX 和 URL 的文本提取仍位于 Next.js BFF,尚未
迁入 Go。 - 当前恢复模型以版本化 SQLite aggregate 为主,尚未实现完整追加事件账本、
answer 幂等键和断线事件重放。 - Go 主链路当前使用 OpenAI-compatible 文本接口;其他 provider 仍主要由旧
TypeScript CLI/API 承载。 - 当前知识检索为 BM25;向量召回、重排和可量化的检索评测属于下一版本范围。
- 当前部署使用单机 SQLite 和共享 bearer token,没有账号或 tenant 隔离;JD、
简历和回答以未加密 session snapshot 存盘,尚无 UI 删除和自动保留策略。 - 启用生产配置写入后,provider 密钥以明文
.env保存在app-configvolume;
默认保持配置 API 关闭,并依赖宿主机卷权限、磁盘加密和备份访问控制。 /health/ready验证模型配置存在,但不主动请求供应商;它不等价于供应商实时
可达。- 活跃会话必须继续使用创建它的 Go 或旧 TypeScript 后端,暂不支持中途切换或
自动迁移。 report_only会延迟逐题反馈;慢供应商调用可能接近各角色 90/180 秒的超时
上限。
下一版本计划见 v0.3.0 优化方案。