- 08 Sep, 2026 4 commits
-
-
李文光 authored
- 看板级语义配色(蓝/青/紫/琥珀/绿)映射招聘漏斗,提升白底对比度 - KPI 卡片加图标色块与语义色调;新增关键洞察条(周期/转化) - 漏斗/趋势/来源/ROI 统一看板色;趋势补 Y 轴刻度,漏斗内嵌数值自适应文字色 - 招聘日历改为左侧月格+右侧事件卡片双栏,宽屏自适应多列,加图例与数量角标
-
李文光 authored
粘贴 JD/需求模板解析时不再剥离 1、-、• 等列表符号,让「JD 与匹配标准」下的核心职责、任职要求展示为带序号/符号的列表;匹配评分与对外 JD 导出时统一去掉行首符号,避免污染关键词。
-
李文光 authored
entry 以普通对象 push 进响应式数组后直接改 status,绕过 Vue 代理 set 陷阱,界面停留在解析中且 canImport 不重算。改为 reactive() 包裹 后所有字段变更正常触发更新。
-
李文光 authored
采集 upsert_ingest_candidate 与整包 replace_state 在无 ORM relationship 时,SQLAlchemy 同一 commit 内不保证按外键依赖顺序插入,子表(ingest_items / tasks / recruitment_events)可能在父行(candidates / resume_files / offers)存在前被写入,SQLite 开启 PRAGMA foreign_keys 时报 FOREIGN KEY constraint failed。 - ingest: 在添加 ingest_items 前显式 flush 父行。 - state: 在候选人/Offer/任务各循环后显式 flush,强制 岗位→候选人→Offer→任务→事件 顺序;并对任务/事件的外键做兜底:目标行不存在时置空,避免孤儿引用(如迁入 _pool 又被清空的候选人)导致 500。 - 新增开启外键约束的回归测试(测试夹具引擎未开 PRAGMA,此前掩蔽此类问题)。
-
- 07 Sep, 2026 7 commits
-
-
李文光 authored
- main.py: CORS 放行 chrome-extension 源并开启 Private Network Access,解决扩展跨域预检 400 - security.py: 鉴权中间件放行 OPTIONS 预检,避免需登录接口(如 /api/auth/me)预检被 401 拦截 - popup.js: 令牌仅在 401/403 时清除,瞬态校验失败保留登录信息;测试连接按钮结束后复位 - test_static_security.py: 新增认证接口预检回归测试
-
李文光 authored
/api/ingest 改为依赖 get_current_user, 以登录用户名作为 owner; 移除 ingest_owner 配置与开放模式合成用户/INGEST_OWNER 回落, 采集归属与登录态强绑定 security: /api/ingest 不再豁免 DeploymentAuthMiddleware(改走统一登录); 智能体/外部JD同步等机器调用仍走 INGEST_TOKEN 同步更新后端测试(conftest/auth/ingest/external_claims/pool/reports/recruiting_rules_agent), 122 passed 浏览器扩展 v1.5(弹窗/后台/README) 与 start_server.py 监听 0.0.0.0 新增 docs/adr/0007-per-user-ingest-attribution.md
-
李文光 authored
- 后端: services/job_types.py(data/job-types.json 读写/引用禁删/未分类兜底)+ GET|PUT /api/job-types - 后端: 启动一次性幂等回填旧 category->jobType; main.py 注册路由 - 前端: constants 默认枚举 + store jobTypeOptions + JobEdit 下拉/JobList 筛选与徽标/JobDetail 展示 - 前端: normalize/search 文本改用 jobType 取代 category; admin 页新增岗位类型配置 - 文档: CONTEXT 词表(岗位类型/商务两口径, category 标 _Avoid)+ ADR 0006; requirements 需求3 标记已实现 - 测试: backend/tests/test_job_types.py(6 例); 前端 build/lint/test 通过
-
李文光 authored
-
李文光 authored
generate_jd_draft / analyze_resume / parse_pasted_jd / generate_v2_analysis 在调用 _chat_json 超时(如 'Request timed out.')时原先会直接抛异常,导致 JD 生成/简历分析/粘贴解析/富报告 报错。现在统一捕获 LLM 调用异常并回退本地结构化/规则/小节切分,补充超时回退单测。
-
李文光 authored
模型已允许同一候选人多条 Offer(一条进行中 + 历史已拒绝/已作废),但旧库 offers 表仍残留 UNIQUE(candidate_id);replace_state 写入多条同候选人 Offer 时触发 UNIQUE constraint failed, PUT /api/state 返回 500。启动时自动检测并重建表移除该约束(保留数据/owner_id 索引/外键), 并补充旧库自动修复与多 Offer 写入单测。
-
李文光 authored
内容脚本跨域 fetch 改为经 background Service Worker 转发, 解决同步时本地服务未启动(Chrome MV3 内容脚本跨源请求始终按跨源处理, 即使有 host_permissions 也被 CORS 拦截) 扩展新增 optional_host_permissions + 运行时 chrome.permissions.request 动态授权, 换后端地址只需在弹窗填新地址并点一次测试连接, 无需改 manifest 后端 CORS 默认放宽为 *, 同步更新 test_static_security 的 Access-Control-Allow-Origin 断言
-
- 04 Sep, 2026 6 commits
-
-
李文光 authored
引入 element-plus/es/locale/lang/zh-cn,使组件(日期/分页/弹窗等)显示中文。
-
李文光 authored
- Offer 状态新增 审批驳回(回路)/已拒绝/已作废(终止),流程面板以退回/终止徽标展示,不再硬塞线性五步 - 允许同一候选人重开 Offer:放开 offers.candidate_id 唯一约束,重开带 reofferOf,保留历史 - 审批材料/薪资摘要单源化到 utils/offer.js(buildOfferApprovalMaterials/offerBlockers),删除 store 重复实现与死代码 - 风险作为审批材料一行展示,默认不作流程硬门槛;驳回/作废理由写入 approvalNote 并记事件 - 修复 OfferList 打开未设 selectedOfferId 的入口 bug;修复 OfferList 仍引用已删 store.offerSalarySummary 的回归 - 新增 utils/offer.js Vitest 单测(14 用例);AGENTS/CONTEXT 更新;新增 ADR 0005
-
李文光 authored
- Offer 状态枚举统一为 待 HR 确认/审批中/审批通过/待入职/已入职, 去掉「邮件审批中/邮件审批待发送」双轨(offer.js/recruitment.js/constants.js) - OfferFlow 流程按钮按状态顺序门控,未满足条件禁用并给原因 - 确认已入职前置校验入职日期(startDate),缺失则阻止并提示 - 简历库抽屉 footer 随候选阶段动态渲染;Offer/待入职/已入职只留「去录用入职处理」入口 - reconcileRecruitmentLinks 阶段与 Offer 状态解耦:只做 已入职/待入职 单向推进, 不再强置非 Offer/入职阶段为 Offer 中 - 候选人「评估」页新增 快速匹配/AI 评估 切换,有有效 AI 报告时可随时切回 - CONTEXT.md 增补 Offer 状态词条;新增 ADR 0004
-
李文光 authored
-
李文光 authored
-
李文光 authored
新增 backend/app/services/jd_import.py: build_requirement_template 生成《招聘需求模板》(发给用人部门填写,含对内约束:性别/年龄/试用期/竞业/验证), parse_pasted_jd 把填好的模板或整段 JD 拆成结构化岗位字段(LLM 优先,无 Key/失败回退本地小节切分); 新增接口 /api/jd/parse-pasted 与 /api/jd/requirement-template。前端: 岗位管理列表 hero 新增「从 JD / 需求模板创建」直达(自动打开粘贴), 新建岗位页顶部两步引导卡(01 生成需求模板 / 02 粘贴自动创建), JobEdit JD 页保留编辑老岗位的小入口, 对内约束回填岗位字段持久化(不上对外 JD)。测试: test_jd_import.py, 全量 103 passed。文档 requirements/CONTEXT 同步。
-
- 03 Sep, 2026 5 commits
-
-
李文光 authored
-
李文光 authored
- 规则库: GET/PUT /api/recruiting-rules(登录读/admin写, data/recruiting-rules.json, 不进业务表) - agent 只读: GET /api/agent/recruiting-rules + GET /api/agent/jobs(jobId/title, 含对内字段, X-Ingest-Token), security 放行 - llm.py: internalNote 纳入 _INTERNAL_ONLY_JOB_KEYS, 对内笔记 MD 不出对外/LLM - skill 契约按 battle 定稿校正: 入口2=产出定稿包 -> agent 代建 OA 单(不用"同步到招聘系统"话术); OA bill 双轨(对外MD+执行字段进OA, 对内笔记 internalOnly 载荷按 oaBillNo 认领时合并归档 internalNote); jd-sync 改为内部/QA 导入通道 - 后端 96 passed
-
李文光 authored
- 报告分享: candidate_reports 独立快照表 + 令牌公网只读(reports/report_repository/ShareReportView/security 放行/配置开关) - 外部岗位认领: external_job_claims 待认领区 + sync-external 落区 + 认领行级接口(GET /api/job-claims, POST /api/job-claims/{id}/claim) + 前端「岗位认领」页 + 外部已审批岗位「核对后确认生效」流转 - docs/recruit-grill skill 镜像、CONTEXT.md 术语(外部岗位/待认领岗位/岗位认领/岗位对内档案/招聘规则库/OA 审批直读)、ADR 0003 与落地清单 - 后端 90 passed; vue-app npm run build 通过 -
李文光 authored
新增 backend/app/services/risk_profile.py 本地确定性规则(跳槽频率/竞业协议/职业空窗/高层职业道德),从简历原文按章节提取任职时间线(自动排除教育/实习/项目段);local-structured 与 LLM 评估统一合并 riskProfile,LLM prompt 将 risks 限定固定四维;前端评估报告优先展示固定维度命中项,候选人详情「评估」Tab 新增「风险点评估」面板(正常/提示/需确认 + 依据 + 建议)。测试:test_risk_profile.py + test_ai.py prompt 断言,全量 72 passed。文档 requirements_from_interview.md 同步标注
✅ 。 -
李文光 authored
- 需求14: 评估/解析 prompt 加入「候选人自述优势不作匹配依据、只作面试待验证线索」铁律, 同步 CONTEXT.md 术语与 test_ai.py 单测 - 需求4: 确认入职后 hired>=headcount 自动置「已招满」并记 job_filled 事件, 待办关注/徽标/动作卡口径同步 - 需求22: 简历库顶部「各岗位简历量」统计 chips, 点击按岗位聚焦筛选候选人 - 看板: 修复 dashboardScope 漏返回 filters 导致的 TypeError; 漏斗改按「已达阶段累计」梯形展示(与 KPI 口径一致); 来源环图改数据驱动(扇区=真实占比); 日历跟随筛选月份; 趋势/ROI 明细与转化展示优化
-
- 02 Sep, 2026 8 commits
-
-
李文光 authored
-
李文光 authored
- 人才池 = 总库:新增保留工作区 _pool + 行级 /api/pool(move/claim/read), 跨招聘账号共享;个人工作区整包状态模型不变,池区禁止整包覆盖。 - 前端新增「人才池」页(统计/筛选/详情/认领),简历库卡片与详情抽屉 支持一键移入;联动 pool_moved / candidate_claimed 事件并清理关联待办。 - 候选人标签升级 tags 数组(枚举+自定义,HR 手选,AI 不打标),简历库/ 人才池支持标签与「待跟进」筛选,旧单 tag 自动映射进 tags。 - 测试:新增 test_pool.py 7 例,全量 53 passed;conftest 在收集阶段即禁用 .env,修复测试顺序导致的 qwenpaw 配置泄漏误挂。 - 文档:新增 CONTEXT.md 领域词表与 docs/adr/0001,更新需求文档标注。 - 附带提交 llm.py 解析 prompt 示例去具体化等本地改动。
-
李文光 authored
-
李文光 authored
-
李文光 authored
-
李文光 authored
-
李文光 authored
-
李文光 authored
-
- 01 Sep, 2026 9 commits
- 31 Aug, 2026 1 commit
-
-
李文光 authored
-