Skip to content

feat: add job export scopes and recycle bin lifecycle - #40

Open
zhenian-666 wants to merge 1 commit into
powerycy:mainfrom
zhenian-666:codex/bosshunter-local-improvements
Open

feat: add job export scopes and recycle bin lifecycle#40
zhenian-666 wants to merge 1 commit into
powerycy:mainfrom
zhenian-666:codex/bosshunter-local-improvements

Conversation

@zhenian-666

Copy link
Copy Markdown
Contributor

变更概览

本 PR 汇总了 BossHunter 的本地增强改造,目标是提升岗位采集、AI 评分、招呼语生成、任务恢复、求职资料管理、岗位导出和岗位生命周期管理的稳定性与可操作性。

主要变更

1. 岗位采集与城市

  • 增加全国城市数据和城市编码支持
  • 扩展城市选择能力
  • 将岗位采集目标细化为“关键词 × 城市”
  • 改善岗位池完整加载,移除原有固定 100 条限制
  • 保留岗位链接、城市信息和筛选结果
  • 防止重复岗位静默覆盖已有数据

2. AI 设置与连接诊断

  • 增加独立 AI 设置页面
  • 增加 AI 服务配置和模型配置入口
  • 支持 Base URL 规范化
  • 增加 AI 连接诊断和服务状态检查
  • 兼容不同 AI 服务的响应格式
  • 处理 Thinking 参数、空响应、HTML 响应和非法 JSON
  • 保持凭据脱敏,不在前端或日志中暴露 API Key

3. 独立 AI 评分

  • 增加独立岗位评分入口,不必重新采集岗位
  • 支持评分预览、数量确认和人工确认
  • 支持全部岗位、选中岗位和可重评分岗位
  • 单条岗位评分失败时继续处理其他岗位
  • 全局 Token 或账户错误时安全暂停
  • 保存评分失败原因并支持后续重试
  • 完善评分进度和任务状态展示

4. 招呼语与任务流程

  • 改善招呼语生成失败后的岗位保留和错误展示
  • 支持岗位级失败记录和后续重新生成
  • 完善暂停、恢复和停止语义
  • 增加可恢复任务和 checkpoint 持久化
  • 应用重启后恢复任务状态
  • 处理迟到控制事件和任务冲突
  • 保留发送前人工确认原则

5. 求职资料方案

  • 增加候选人资料方案和候选人文档管理
  • 支持默认求职资料、多个文档和补充事实
  • 为 AI 评分、招呼语和简历相关流程提供受控上下文
  • 避免把本地简历原文直接暴露到浏览器端
  • 对候选人事实和文档元数据进行安全处理

6. 岗位导出

  • 修复“导出全部岗位”
  • 修复“导出筛选结果”
  • 修复“导出所选岗位”
  • 筛选结果由后端根据搜索词、城市和状态查询数据库
  • 导出不受前端分页影响
  • 所选岗位支持跨分页选择
  • 已软删除岗位不会混入普通导出
  • 支持 CSV 和 XLSX
  • CSV 保留 UTF-8 BOM
  • 增加 CSV 公式注入防护
  • 保留完整岗位 URL
  • XLSX 支持可点击超链接
  • 导出数据始终基于数据库岗位 ID,不信任前端伪造岗位内容

7. 岗位软删除与回收站

  • 增加单条软删除
  • 增加批量软删除
  • 增加回收站入口
  • 支持单条和批量恢复
  • 支持单条和批量永久删除
  • 软删除保留岗位状态、评分、招呼语、链接和历史
  • 恢复不会自动评分、生成招呼语、发送或访问 BOSS
  • 已软删除岗位不会进入评分、确认、招呼语、发送、监测或恢复任务队列
  • 页面刷新后删除状态从 SQLite 恢复

8. 永久删除保护

  • 已发送、已回复、已发简历、已跟进或存在发送/回复历史证据的岗位禁止永久删除
  • 已发送或已回复岗位仍允许软删除,但保留历史
  • 永久删除需要前端二次确认和后端确认字段
  • 运行中、暂停中或 checkpoint 引用的岗位禁止永久删除
  • 批量永久删除混入受保护岗位时整体拒绝并回滚
  • 再次采集相同 ID 或 URL 时不会静默恢复软删除岗位

9. 数据库与兼容性

  • 增加幂等 SQLite 迁移
  • 为岗位增加软删除字段和索引
  • 增加任务、候选人资料和历史相关数据表
  • 兼容旧版 SQLite 数据库
  • 不读取、不提交真实数据库和真实简历数据

10. 前端与构建产物

  • 更新岗位工作台、岗位表格、侧边栏和配置页面
  • 增加 AI 设置页面
  • 增加全国城市选择器
  • 增加评分任务弹窗
  • 增加回收站面板
  • 更新并提交前端生产构建产物

验证结果

  • 后端全量测试:245 个测试全部通过
  • 前端构建:通过,Vite 转换 1523 个模块
  • git diff --check:通过
  • 使用临时 SQLite 完成迁移、导出、软删除、恢复、永久删除和保护逻辑验证
  • 未访问或修改真实数据库
  • 未读取或提交真实简历、API Key、Cookie、OAuth、Token 或浏览器凭据
  • 未运行真实 AI、BOSS 采集、招呼语发送或监测

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant