Skip to content

Releases: ranxi2001/OfferPilot

OfferPilot v0.3.3

Choose a tag to compare

@ranxi2001 ranxi2001 released this 12 Aug 17:57

v0.3.3 连续诊断与题库升级

修复

  • 修复对话式诊断会话上下文丢失:语音或文本回答现在能读取上一轮面试官问题与历史诊断。
  • 增加两轮会话回归测试,保证第二轮模型请求包含完整对话历史。
  • 修复长篇流式输出强制下拉:向上滚动即可暂停跟随,并可通过悬浮按钮回到最新内容。

更新

  • 同步 zero2Agent 最新面试题库,Go 后端知识条目从 404 增至 486。
  • 无数据库迁移,无新增环境变量;升级后需重启 Go API 与 Next.js Web。

Full Changelog: v0.3.2...v0.3.3

OfferPilot v0.3.2

Choose a tag to compare

@ranxi2001 ranxi2001 released this 12 Aug 17:00

模拟面试复盘升级

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.2 readiness 校验通过。

本版本没有数据库 migration,可直接从 v0.3.1 升级或回滚。

完整更新记录

OfferPilot v0.3.1

Choose a tag to compare

@ranxi2001 ranxi2001 released this 12 Aug 16:16

Web 开发稳定性修复

v0.3.1 修复重复或异常退出的 Next.js 开发进程可能导致端口漂移、开发锁冲突、静态资源加载失败和白屏的问题。

更新内容

  • 清理 Next.js 中迁移完成后遗留的 better-sqlite3 external 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

Choose a tag to compare

@ranxi2001 ranxi2001 released this 12 Aug 15:13

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

Pre-release

Choose a tag to compare

@ranxi2001 ranxi2001 released this 11 Aug 17:43

语音可靠性修复

  • 面试题播报以 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

Pre-release

Choose a tag to compare

@ranxi2001 ranxi2001 released this 11 Aug 15:30

这是 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。

完整变更、迁移与回滚:CHANGELOG · 发布验证

OfferPilot v0.2.0

Choose a tag to compare

@ranxi2001 ranxi2001 released this 11 Aug 13:41

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-config volume;
    默认保持配置 API 关闭,并依赖宿主机卷权限、磁盘加密和备份访问控制。
  • /health/ready 验证模型配置存在,但不主动请求供应商;它不等价于供应商实时
    可达。
  • 活跃会话必须继续使用创建它的 Go 或旧 TypeScript 后端,暂不支持中途切换或
    自动迁移。
  • report_only 会延迟逐题反馈;慢供应商调用可能接近各角色 90/180 秒的超时
    上限。

下一版本计划见 v0.3.0 优化方案