📋 项目状态看板 · IT 智能服务台

📅 2026-08-06(GMT+8) 📂 源文件:docs/07-项目管理/项目状态看板.md 🤖 生成:Duckula · scripts/build_kanban_html.py
v1.9.1-FROZEN

项目状态看板

版本: v1.9.1-FROZEN | 更新日期: 2026-08-06(已审核冻结,对外可引用)
变更来源: 2026-08-06 11:46 看板-部署脱节修复(jumpserver-V2 实测 + docker compose 重启 + nginx reload)
执行人: Duckula(AI)· 审核人: Simon(2026-08-06 11:36)

📐 文档管理策略(2026-08-05 锁定 / 2026-08-06 修订 / v1.9.1 生效)
本看板遵循 Markdown 单一源原则
- 权威源 = 本 项目状态看板.md(Git 版本控制 / 程序解析 / PR review 均基于此)
- 人看副本 = 项目状态看板.html(由 scripts/build_kanban_html.py 自动派生,不手维护
- 归档副本 = 项目状态看板-v1.X.Y-FROZEN.html(每次冻结生成一份,永久保留)
- 服务发布 = 文件上传至 jumpserver /opt/wecom-it-desk/docs-public/{kanban,inspection}/✅ v1.9.1 起已可对外访问:nginx.conf 加 location /docs/ 路由 + docker-compose.yml 加 docs-public 挂载 + reload 已生效。外部 URL 实测:
- 看板:https://itsupport.servyou.com.cn/docs/kanban/项目状态看板.html
- 巡检:https://itsupport.servyou.com.cn/docs/inspection/2026-08/2026-08-06-早班.html
- 修改流程:改 .md → 跑脚本生成 .html → 归档副本 → 跑部署脚本上传 → commit & push


📊 看板概览 📑

状态 数量 变化
🔴 P0 必做 5 🆕 -1(P0-NEW7 已修复)、P0-NEW8 新增(host 文件结构差异)
🟡 P1 重要 0 持平
🟢 等用户决策 2 +1 自然日(25→26 天阈值)
🟠 进行中 1 持平
🏷️ 看板治理 1 ✅ P0-NEW7 已修复(nginx /docs/ 路由上线)
🟡 待开始 0 持平
⏸️ 暂停 5 持平
✅ 已完成 94 +2(P1 Nginx 安全响应头关闭 + #104 运行期日志页结案)

🔴 P0 必做(高优先级 / High Priority) 📑

立即推进,需当日 / 次日完成。分类说明:
🆕 新增 = 本次巡检首次发现;♻️ 历史遗留 = 已记录但未关闭;🔥 紧急 = 影响用户可感知功能或多端点

任务ID 任务名称 类别 阻塞时长 状态 说明
P0-1 /itportal/ 入口 500 错误 ♻️ 历史遗留 29 天(自 2026-07-08) 🔴 待部署 2026-08-06 06:00 jumpserver-V2 实测仍 500,nginx error: rewrite or internal redirection cycle while internally redirecting to "/itportal/index.html"。根因:容器内 /usr/share/nginx/html/itportal/ 空目录 + nginx location /itportal/ 仍配置 try_files $uri /itportal/index.html。建议:docker compose up -d --force-recreate nginx(前提:commit 21830d5 中 nginx.conf 已删除该 location 块)
P0-3 closing_service.py:467 datetime 时区错位 ♻️ 历史遗留 2 天(自 2026-08-03) 🔴 待修复 datetime.now() - close_timeTypeError: can't subtract offset-naive and offset-aware datetimes。影响 POST /h5/conversations/current/reopen。同文件 18 处 datetime.now() 全是 naive,且 from datetime import datetime, timedelta 未 import timezone。24h 内未触发,但用户使用 H5 重开会话即会爆
P0-4 employee_profile_service.py:236 SessionLocal NoneType 🔥 🆕 位置修正 <1 天 🔴 待修复 看板 v1.8 行号描述错误:实际错误位置是 app/services/employee_profile_service.py:236 而非 h5_ai_task.py:1198db = SessionLocal() 返回 None → TypeError: 'NoneType' object is not callable。2026-08-05 24h 内累计 10+ 次(01:33 / 03:25 / 04:07 / 04:11 多波次),影响 H5 IT 资产推荐异步推送。同根因 P0-5
P0-5 容器 app/constants/ 打包错误 🔥 🆕 新增 🆕 🔴 待修复 容器内 /app/app/constants/__init__.py 11635 bytes 内容是 automation.py(两个文件互换了),/app/app/constants/automation.py 不存在。直接后果:连续 10+ 次 ModuleNotFoundError: No module named 'app.constants.ai_reply_mode' + 同根因连锁导致 P0-4(SessionLocal 绑定失败)。建议:① 临时 docker cp 修补 → ② 长期排查 backend 镜像构建流程(Dockerfile COPY . . 是 OK 的,最可能是 deploy 脚本里将 automation.py 重命名为 __init__.py
P0-6 后端 OAuth 40029 抖动(用户码失效) ℹ️ 信息类 持续 🟢 已知噪声 218.75.34.87 等外部 IP 持续试探 /api/auth/validate-sso + 偶发 OAuth code 失效。属 WAF 扫描背景噪声,已 fail2ban 监控。无需主动处理
P0-NEW7 看板-部署脱节:nginx /docs/ 路由缺失 ✅ 已修复 🆕 ✅ 已修复 2026-08-06 11:46 已完成:① docker-compose.yml 加 docs-public 卷挂载 ② nginx.conf 加 location /docs/ { alias /opt/wecom-it-desk/docs-public/; charset utf-8; add_header Cache-Control "no-cache, must-revalidate"; ... }docker compose up -d --force-recreate nginx + nginx -t + nginx -s reloadjumpserver-V2 实测:容器内 curl -sI http://127.0.0.1/docs/kanban/项目状态看板.html200(30765B,Cache-Control no-cache)。外部 URL https://itsupport.servyou.com.cn/docs/kanban/项目状态看板.html 实测完整渲染 v1.9.0-FROZEN 内容 ✓
P0-NEW8 host 文件结构 vs git 仓库结构差异 🆕 新增 🆕 🔴 待修复 2026-08-06 11:46 P0-NEW7 修复期间发现:本地 git 仓库结构是 src/backend/,主机实际结构是 app/(admin:admin, Aug 3),两者不一致。docker-compose.ymlbackend.context: ./src/backend + ./src/backend/app:/app/app 在主机上不存在对应目录,导致 docker compose up -d --force-recreate backend 时挂载空目录、容器内 /app/app 为空、uvicorn 找不到 app.main、启动失败。临时回退:docker-compose.yml 改 context: ./backend + - ./app:/app/app 适配主机,backend 容器已恢复。但长期需要:① 决定 host 是否同步 git 仓库 ② 是否启用 build context 镜像构建 ③ 迁移路径方案评估

滴答清单跟踪:6 项 P0 已在滴答清单 wecom_it_smart_desk 项目下建任务(标签 work)。新增项 T5 (P0-5 打包错误) + T6 (P0-4 实际位置修正) + T7 (P0-NEW7 看板-部署脱节),due 2026-08-06 17:00。


🟡 P1 重要(待办 / Medium Priority) 📑

v1.9 已无独立 P1 条目(P1-1 已完成,见最近完成区)。如发现新 P1 在此处新增。


🟢 等用户决策(阻塞项 / Awaiting Decision) 📑

均超 3 天阈值,需 PM 升级催办

任务ID 任务名称 阻塞时长 卡点 / Owner 说明
BLK-A 企微会议室 Secret ⚠️ 26 天(自 2026-07-11) 需企业微信管理后台申请 / Owner: 平台组 影响会议室预定功能 / /itterminal/
BLK-B ITSM API 授权 ⚠️ 26 天(自 2026-07-11) 需向 ITSM 平台方申请 app_id/app_secret / Owner: 平台组 影响 ITSM 工单卡片跳转

催办机制:建议 PM 每周一 review(滴答清单循环任务)。


⏸️ 安全策略检查平台 (REQ-集成-001) — 已暂停 📑

任务ID 任务名称 优先级 状态 说明
#118 火绒API集成 P0 ⏸️ 暂停 复用现有功能,必要性未确认
#119 联软Excel导入 P0 ⏸️ 暂停 用户-终端关联导入
#120 数据融合引擎 P0 ⏸️ 暂停 IP/主机名/MAC三级匹配
#121 策略规则与通知模板 P1 ⏸️ 暂停 命中管理、通知发送
#122 调度执行与导出 P0 ⏸️ 暂停 定时任务、Excel导出

暂停原因: 必要性未确认,待进一步评估后再启动

关联文档保留
- PRD: 01-产品文档/08-集成生态/PRD-REQ-集成-001-OpenClaw合规检查-v1.0.md
- 原型: 01-产品文档/08-集成生态/原型-REQ-集成-001-OpenClaw合规检查-v1.0.html
- 技术方案: 02-技术文档/技术架构/技术方案-REQ-集成-001-OpenClaw合规检查-v1.0.md


🟠 进行中 (In Progress) 📑

任务ID 任务名称 优先级 状态 说明
#81 敏感词检测 + 语气优化 P0 🔄 v1.1 阶段1 已完成(07-28) 词库入库 + 后台管理 UI(增删改查 + 灰度开关)+ 12 个配套 API 已落地。剩余阶段(语气优化、灰度策略细化)待 v1.2 排期。详见 docs/01-产品文档/00-产品规划/PRD-REQ-通用-004-敏感词检测-v1.2-AI辅助.md

🟡 待开始 (To Do) 📑

任务ID 任务名称 优先级 说明
(当前无待开始任务) #104 已于 2026-08-07 结案并迁入「最近完成」区

✅ 最近完成 (Recently Completed) 📑

任务ID 任务名称 优先级 负责人 完成日期
#104 运行期结构化日志查看页(筛选 + 下载命中行) 🔴 P0 Duckula 2026-08-07
- 【P1】补齐 Nginx 生产安全响应头(复制 7 个 add_header) 🟡 P1 Duckula 2026-08-07
- sensitive_words.py 13 端点补 require_admin 🔴 P0 Duckula 2026-08-04
- 前端 console.log 残留 208 行清理 🟡 P1 Duckula 2026-08-05
- /itportal 500 修复(nginx 配置清理) 🔴 P0 Duckula 2026-08-03
- troubleshooting_templates.py 5 端点补 auth + MOCK 替换 ORM 🔴 P0 Duckula 2026-08-03
#133 voice_asr.py POST /asr auth 加固(P0 安全巡检) 🔴 P0 Duckula 2026-08-03
- 批次1 P0重构(超时预算切分/RecommendCard/WS全字段) P0 宋献 2026-07-18
- 批次2 P1基础重构(AIService单例/Dify调用点/Matcher/WS/Redis) P1 宋献 2026-07-18
- 批次3 P1核心重构(process管线化/结单确认断链修复) P1 宋献 2026-07-18
- 批次4 P2收尾(死代码大扫除) P2 宋献 2026-07-18
- D1合并(双模支持/kfid路由/C7/C8/上下文超限重置) P0 宋献 2026-07-18
- 文档重组(docs目录9→10类/PRD合并/技术文档关联REQ) P2 宋献 2026-07-19
#82 H5右侧栏布局调整 P2 宋献 2026-07-17
#76 ITSM工单卡片跳转(桥接页一步直达 + 扫码登录定为人机校验) P1 宋献 2026-07-17
BUG-AI-001 打印机路由到行政前台 + [object Object]显示异常 P2 Duckula 2026-07-23
- H5用户端原型图 v2.0 更新 - Duckula 2026-07-24
#124 坐席端接单按钮状态优化 P1 宋献 2026-07-24
#125 H5选项交互消息重复处理 P0 Simon/Duckula 2026-07-24
BUG-用户-003 H5 员工端"结束会话失败,请稍后重试"修复 P2 Duckula 2026-07-30

✅ 近期完成 (2026-07-15~16) 📑

任务ID 任务名称 优先级 负责人 完成日期
#117 Neo4j 知识图谱连接修复 P0 宋献 2026-07-16
#118 粘贴图片边框问题 P2 宋献 2026-07-16
#80 企微图片消息无法预览 P1 宋献 2026-07-16
#75 头像同步功能完善 P1 宋献 2026-07-15
#74 IT资产升级卡片免登录修复 P1 宋献 2026-07-15
#73 H5截图功能 P2 宋献 2026-07-14

📌 重要技术决策与限制记录 📑

日期 决策 / 限制 影响范围 说明
2026-07-18 D1合并:后端双模支持 H5 AI对话 intent_type/business_category字段透传,主Dify结果直接判断路由
2026-07-18 kfid路由窗口配置化 H5业务路由 12个职能部门窗口(行政/人力资源/财务/法务/物业),business_contacts表查具体处理人
2026-07-18 Redis密码轮换 生产环境 新密码32位字母数字,仅存服务器.env,轮换后验证通过
2026-07-18 process_h5_ai_reply管线化 H5 AI对话 9步骤函数式拆分,try/except 11对→1对
2026-07-18 结单确认功能断链修复 坐席端 WS类型resolve_confirm,前端case改对应监听+ChatPanel挂载
2026-07-19 docs目录重组 文档管理 9类→10类(新增运营文档),PRD合并,技术文档关联REQ编号
2026-07-17 H5 答题功能实现 H5 右侧栏 答题区域通过 showQuiz prop 控制显隐,QueueWaiting 组件始终挂载但默认折叠。修复了答题默认显示和重复出现的 bug。详见任务说明书 #82 v1.1
2026-07-17 ITSM 工单跳转:扫码登录定为人机校验 8 个运维平台审批卡片 Web ITSM 深链不支持静默企微 OAuth,桥接页跨域预热被拒,仍弹扫码。产品决策保留该扫码环节(企业安全合规可接受的二次身份确认),不视为缺陷。详见 PRD §v2.3、架构 §15.4.9、任务说明书 #76 v3.0
2026-08-05 看板 v1.8 分区升级 看板管理 新增 🔴 P0 必做 / 🟡 P1 重要 / 🟢 等用户决策三个正式分区,4 维分类(新增/历史遗留/信息/建议)正式纳入看板流转
2026-08-06 看板 v1.9 看板-现实一致性巡检 看板管理 2026-08-06 06:00 巡检发现 v1.8 中 2 项描述(P0-2 sensitive_words / P1-1 console.log)与现实脱节(代码已修复 / 已清理),v1.9 已迁移至已完成。新发现:v1.8 顶部"对外发布"声明与现实脱节——nginx 无 /docs/ 路由,外部 URL 404。v1.9 修正声明并新增 P0-NEW7(看板-部署脱节治理)。新增治理原则:① 看板冻结前由自动化扫描 P0/P1 条目对应的源码/容器状态 ② 看板顶部"服务发布"声明须配套 curl 实测验证,否则标"已上传服务器,服务状态待验"
2026-08-06 看板 v1.9 新增治理:自动扫描防脱节 看板管理 未来由 scripts/build_kanban_html.py --check 模式在生成前对每条 P0/P1 描述做源码关键字 / 容器文件存在性校验,避免看板-现实脱节再次发生
2026-08-06 P0-NEW8:host vs git 仓库结构差异 部署架构 P0-NEW7 修复期间触发——本地 git 仓库 src/backend/ 与主机实际 app/ 结构不一致,docker-compose.yml 路径配置失配引发 backend 容器启动失败。需 PM 决策:① host 是否同步 git 仓库 ② 是否启用 build context 镜像重建 ③ 迁移路径方案

📈 任务统计 📑


🔗 相关文档 📑


📝 看板版本变更记录 📑

版本 日期 变更内容 变更人
v1.9.1 补录2 2026-08-07 ✅ 【P0】#104 运行期结构化日志查看页 结案:jumpserver-V2 生产实测四项证据齐备(管理页 200 / 前端 chunk 含筛选+下载命中行 / 后端端点已挂载(4004 = #48 IP 白名单预期门禁,非故障)/ 日志源 JSON 持续写入)。从「待开始」区迁入「最近完成」区;待开始 0 项;已完成 93→94。滴答清单同步完成 Duckula (AI)
v1.9.1 补录 2026-08-07 ✅ P1【补齐 Nginx 生产安全响应头】已修复并关闭:生产 nginx.conf 注入 7 安全头(server 级 + 各含 add_header 的 location 内,均带 always),nginx -t 通过 + docker restart wecom_it_nginx,origin 与公网(WAF)双验证通过。补录至最近完成区;已完成 92→93 Duckula (AI)
v1.9.1-FROZEN 2026-08-06 11:50 ✅ 冻结:P0-NEW7(看板-部署脱节)已修复。nginx /docs/ 路由上线 + docker-compose.yml docs-public 挂载生效;外部 URL 实测 200。修复期间发现并新增 P0-NEW8(host 文件结构 vs git 仓库结构差异)。归档副本 项目状态看板-v1.9.1-FROZEN.html Duckula (AI)
v1.9.0-FROZEN 2026-08-06 11:36 ✅ 冻结:v1.9-DRAFT 内容经 PM 审核通过正式生效;归档副本 项目状态看板-v1.9.0-FROZEN.html修正 v1.8.0 起"对外发布"声明与现实脱节(nginx /docs/ 路由从未生效,已添加 P0-NEW7 看板-部署脱节);HTML 文件已上传至 jumpserver /opt/wecom-it-desk/docs-public/kanban/ + /inspection/2026-08/,但 nginx 服务不可达(详见 P0-NEW7) Simon(审核)
v1.9.0-DRAFT 2026-08-06 🆕 草稿:① P0 必做 4→5(P0-2 修复迁移至已完成 + P0-5 打包错误 + P0-6 OAuth 信息类 + P0-4 行号描述修正)② P1 重要 1→0(P1-1 清理迁移至已完成)③ 已完成 88→91 ④ 等用户决策 25→26 天阈值 ⑤ 总任务数 96→99 ⑥ 看板顶部版本号自动切换为 draft badge ⑦ 看板与现实脱节条目得到修正 Duckula (AI)
v1.8.0-FROZEN 2026-08-05 19:37 ✅ 冻结:v1.8-DRAFT 内容经 PM 审核通过正式生效;归档副本 项目状态看板-v1.8.0-FROZEN.html⚠️ 服务发布声明脱节(声称发布至 https://itsupport.servyou.com.cn/docs/kanban/ + /docs/inspection/ 实际 404——nginx 无 /docs/ 路由,v1.9 已修正声明并新增 P0-NEW7 治理) Simon(审核)
v1.8-DRAFT 2026-08-05 🆕 草稿:新增 🔴 P0 必做分区(4 项)/ 🟡 P1 重要分区(1 项)/ 🟢 等用户决策分区(2 项,25 天阈值);总任务数 92→96;引入 4 维分类(新增/历史遗留/信息/建议);附 HTML 巡检报告归档路径 Duckula (AI)
v1.7 2026-08-03 #81 状态反转:v1.1 阶段1 已完成(07-28)→ 进行中;新增今日完成项 troubleshooting_templates 5 端点 + /itportal 500 修复;统计 92/87/1/1/5/2 Duckula (AI)
v1.5 2026-07-30 追加 BUG-用户-003 修复完成项(H5 结束会话失败回归);总任务数 90→91;已完成 84→85;关联 TC-用户-008;待开始不变 Duckula (AI)
v1.4 2026-07-24 批量完成项入库(批次 1-4 重构 / D1 合并 / 文档重组 / #124 坐席接单按钮 / #125 H5 选项消息) Simon