Files
wecom_it_smart_desk/docs/07-项目管理/项目状态看板.md
T
2026-08-13 09:20:32 +08:00

66 KiB
Raw Blame History

项目状态看板

版本: v1.9.8-DRAFT 更新日期: 2026-08-13(早班巡检 + P0 全闭环维持 + dida 双向校验 / 系统稳定态确认) 状态: [待评审] 作者: DuckulaAI 审核人: 待 Simon 审核 基础版本: v1.9.7-DRAFT2026-08-12 晚间 + P1-治理-hand_raise 闭环) 本次增量: 早班巡检 6 项实测发现(无新增 P0 / P0-NEW8 仍存 + P1-1.1 已逾期 1 天 + BLK-A/B 33 天阈值 + 容器/资源全绿 + 公网全端点 200/302/404 正确 + 看板 HTML 公网同步 v1.9.7 已落盘 75851B 关联文档:

  • 规范:docs/00-产品开发流程与文档管理规范.mdproduct-doc-standard 治理文件,§5.2 头部模板)
  • 版本索引:docs/00-版本迭代总览.md
  • 安全报告:deliverables/openapi_exposure_report.mdP0-NEW11 闭环证据)
  • 本次 Bug 单:本日无新增
  • 前置 Bug 单:docs/03-测试文档/05-缺陷单/BUG-登录-测试账号面板不显示-002.md2026-08-11 19:30 闭环)
  • 前置 Bug 单:docs/03-测试文档/05-缺陷单/BUG-登录-扫码劫持-001.md 变更来源: 2026-08-13 09:00 早班巡检:jumpserver-V2cache 有效,hostname = hz-oa-ai-g-dataquery-90-5-110+ 公网 curl + 容器内端点三重实测

📌 v1.9.8 增补说明(2026-08-13 早班巡检 / 系统稳定态 + 无新增 P0)

  • 🟢 P0 全部闭环维持(无新增 P0jumpserver-V2 容器内 12 端点全 4xx/test-ping /test-error /version /api/debug/ping /api/debug/error /api/debug/version /api/openapi.json /api/health /api/ready 均 404,仅 /health /ready 保留 200 供探针)+ 公网同 12 端点实测一致(/api/debug/ping 404 + /api/debug/version 404 + /api/dev/health 403 + /itportal/ 404)。意味着 P0-NEW9/10/11/12 四连组合 0 攻击面 + P0-1 闭环维持。
  • 🟢 公网 /h5/go + /itservice/go 一致指向 v2026081108-12 公网已发版,08-13 仍未变更 = "公网版本停滞" 计数器重新启动08-12 19:30 BUG-002 修复以来 ~14h 无新发版)。如未在 24h 内启动新发版将触发"公网停滞"风险。
  • 🟢 看板 HTML 公网同步已落盘项目状态看板.html 公网 75851BLast-Modified 2026-08-12 11:04= 本地 75851B 完全匹配(v1.9.7-DRAFT 派生)。本轮 v1.9.8 派生后将再次上传。
  • 🟢 容器与资源全绿(jumpserver-V2 09:10 实测)
    • 5 容器 all healthywecom_it_backend 14h / wecom_it_nginx 17h / wecom_it_redis 3w / wecom_it_neo4j 4w / wecom_it_postgres 4w
    • 磁盘 129G 可用(13%),内存 11Gi available686Mi free + 11Gi buff/cache),load 0.53/0.65/0.6561 天 16 时 uptime
    • 后端 /app/logs/ 6 文件:active 13M + 5×21M 轮转,最后写入 2026-08-13 01:17reminder_task 每 30s 跑一次正常)
    • 日志抽样:active log 45729 行 / 6 ERROR / 530 WARNING / 0 CRITICALWARNING 多为 retry/Redis 短暂抖动,可接受)
    • postgres pg_isready 接受连接;redis NOAUTH(正常,密码保护);nginx config test OK
  • 🔴 P1-1.1 二次治理 console.{log,debug,info} 残留 129 行已逾期 1 天dida 6a76a802e4b06898041f5215 due 2026-08-12 16:00,本日 09:00 实测 src/frontend-{h5,agent,admin,terminal}/src/ 仍 129 行(h5:101 / agent:20 / admin:0 / terminal:8),与昨日持平无变化。该任务需要 PM 决策:是单独发版清理还是合入下次发版。
  • 🔴 BLK-A / BLK-B 阻塞 33 天阈值08-13 自 07-11 已 33 天):dida 6a7008e9e4b03a0a8b2870ba (BLK-A 企微会议室 Secret) + 6a7008e9e4b06440c396f6c2 (BLK-B ITSM API),双任务 due 2026-08-07 已逾期 6 天,已超 3 天阈值 30 天。建议 PM 升级到平台组组长 / 主管。v1.9.7 标 32 天 → v1.9.8 标 33 天。
  • 🟡 P1-Alembic / P1-Idx / 风险 /h5/ 持续逾期dida 6a705109 (Alembic 053-057) 已逾期 4 天 + 6a70510f (troubleshooting_templates 索引) 已逾期 6 天 + 6a752de4 (Nginx /h5/ alias+try_files 隐患) 已逾期 2 天。
  • 🟡 P0-NEW8 host vs git 仓库结构差异仍未决:长期挂账项,需要 PM 在以下三种方案中决策(a)host 同步 git 仓库结构(b)启用 build context 镜像构建(c)彻底迁移到 src/ 路径方案。
  • 🟢 dida 状态同步:当前项目 undone = 7 项(P1-1.1 二次治理 + P1-治理-1/2/3 + P1-Alembic + P1-Idx + BLK-A + BLK-B + 风险 /h5/);dida 与看板一致(无新建/关闭需要)。看板 P0 区 4 项 dida 任务全部 completedNEW9/NEW10/NEW11 + P0-3)。
  • 🟢 v1.9.7-DRAFT 14h 未冻结08-12 19:1x 闭环后未升级 FROZEN,本次合并入 v1.9.8 待审(连续 2 个 DRAFT 待 PM 一次性冻结为 v1.9.7-FROZEN / v1.9.8-FROZEN)。
  • 🟢 Git 工作树 72 项修改 + 14 项 untracked:本地仅 0042519 fix(security): P0-NEW12 ... + 历史 commit,未自动 commit BUG-001/002 修复相关 backend/tests/src/backend 等改动(按铁律遵守,不自动 commit 其它 untracked 工作树);Gitea Tailscale 远端 ds923plus.tail58d872.ts.net 未尝试推送(home 网络限制),由 PM 后续手动处理。

📌 v1.9.6 增补说明(2026-08-12 早班巡检 / 公网版本停滞解除 + P0-NEW12 应用层 debug 端点代码层根因)

  • 🟢 公网版本停滞 3 天 → 已解除(2026-08-12 09:00 公网实测)
    • curl -sI https://itsupport.servyou.com.cn/h5/go302 → /h5/v20260811/
    • curl -sI https://itsupport.servyou.com.cn/itservice/go302 → /itservice/v20260811/
    • 风险-2「公网版本停滞 3 天」本次关闭:v1.9.5 19:30 BUG-002 闭环时已同步完成 H5 版本化 v20260808→v20260811 + 两 go 302 重指,08-12 公网实测确认生效
  • 🔴 P0-NEW12 应用层 debug 端点代码层根因(NEW 实测发现)
    • 触发08-12 09:00 早班巡检为核实 P0-NEW9/NEW10 修复真实状态,jumpserver-V2 容器内用 python urllib 直接测 FastAPI 应用层(不走 nginx
    • 实测证据
      • wecom_it_backend:8000/test-ping200 {"code":0,"data":{"message":"pong"},"message":"success"}
      • wecom_it_backend:8000/test-error200 {"code":1005,"data":null,"message":"服务器内部错误,请稍后重试或联系管理员"}
      • wecom_it_backend:8000/version200 {"service":"wecom-it-smart-desk","version":"1.1.0","build":"unknown"}
      • wecom_it_backend:8000/openapi.json404 (P0-NEW11 应用层修复已生效,openapi_url=None
    • 结论:公网 404 实测(P0-NEW9/NEW10 闭环证据)仅来自 nginx 边缘层兜底,应用层 /test-ping /test-error /version 仍注册并返回 200。若 nginx 配置被误改回 / 失效,攻击者可直连 backend:8000 拿到调试端点—— 真实防护薄弱。代码层根因(移 debug.py 仅非生产加载)正式立项 P0-NEW12 跟踪。
    • 建议修复PM 决策):① app/api/debug.py 集中所有诊断端点,仅 settings.app_env != 'production' 加载 ② _is_dev_mode() 包裹整个诊断区段(与 main.py:932 周边模式一致) ③ FastAPI 实例化按环境变量切 openapi_url/docs_url/redoc_url(NEW11 已部分实现,需扩展到 /test-ping 等)
  • 🟢 BUG-002 修复链路持续生效(公网 + 容器内双重验证)
    • /api/dev/login?userid=dev-agent-001 公网 → 403nginx 内网闸门 allow 10/8,172.16/12,192.168/16 + deny all 生效)
    • /itportal/404rewrite cycle 仍受控,nginx 配置清理闭环)
    • /h5/200BUG-002 修复后 v20260811 正常加载 index.html
  • 🟢 容器/资源全绿jumpserver-V2 inspect 09:10):
    • 5 容器 all healthywecom_it_nginx/backend 15h + redis 3w + neo4j/postgres 4w
    • 磁盘 130G 可用(13%),内存 12151MB availableload 0.68/0.71/0.6860 天 17 时 uptime
    • 后端 /app/logs/ 6 文件:active 6.7MB + 5×20MB 轮转(最后轮转 2026-08-11 11:02,今日 02:12 最后写入 reminder_task
    • nginx config test OK
  • 🟢 dida 任务状态08-12 09:00 双向校验):
    • P0 列:4 项任务全部 completedNEW9/NEW10/NEW11 + P0-3),无新建需求
    • P1 列:6 项仍 status=0P1-1.1 二次治理 console 129 行 due 08-12 今日到期 + P1-Alembic 已逾期 3 天 + P1-Idx 已逾期 5 天 + 治理-1/2/3 推进中)
    • 风险 /h5/ 潜伏 500 隐患 6a752de4 已逾期 2 天
    • BLK-A/B 32 天阈值(08-12 自 07-11 已 32 天)
  • 🟢 v1.9.5-DRAFT 14h 未冻结08-11 19:30 闭环后未升级 FROZEN,本次合并入 v1.9.6 待审

📌 v1.9.5 增补说明(2026-08-11 晚间 / BUG-登录-测试账号面板不显示-002 闭环 + 4 项配套铁律级落地)

  • 🟢 BUG-登录-测试账号面板不显示-002 闭环(2026-08-11 19:30:用户反馈"用户端页面是历史老版本"→ 经双层诊断找到双根因:

    • 根因 1(前端代码 BUGsrc/frontend-h5/src/views/Login.vue:297 写错 if (resp?.data?.data?.dev_mode)(多一层 .data),但 src/api/index.ts:80 axios 拦截器已 return res.data as any,调用方拿到的就是 inner data → 测试账号登录面板客户端永不显示
    • 根因 2H5 dist 路径铁律级 BUGdeploy_h5.py:45 + deploy-staging/deploy-h5.sh:26-32 写的是 /opt/wecom-it-desk/frontend-h5/dist无 src/),但 docker inspect 实证容器 mount 源是 /opt/wecom-it-desk/src/frontend-h5/dist有 src/)→ 部署后线上还是老 hash
    • 附带根因 3/api/dev/health 路径错配)dev_auth.py:31 prefix="/dev" + nginx proxy_pass http://backend_api/(带 trailing slash 剥前缀)→ 后端 /api/dev/health 拿到的是 /health 兜底响应,不是 dev_health 真实响应
  • 修复链路:① Login.vue:297 一行修复 resp?.dev_mode ② pnpm build 3.38s(避开 safe-delete 坑)③ deploy_h5.py v20260811b + 远端 mv 修正路径到 src/frontend-h5/dist + docker restart nginx ④ 远端 dev_auth.py 部署(prefix → /api/dev+ docker restart backend ⑤ nginx.conf 部署(proxy_pass 去 trailing slash+ nginx -t + nginx -s reload(备份 .bak-bug002-20260811)⑥ 远端清理 /opt/wecom-it-desk/frontend-h5/dist 错位置 dist(保留所有 dist_bak_* 备份)

  • 真实验证(公网 curlcurl https://itsupport.servyou.com.cn/api/dev/health → 200 OK + {"code":0,"data":{"dev_mode":true,"env":"production","database_url":"...","redis_url":"...","preset_users":6},"message":"success"} 用户本地访问 /h5/ 验证 Login 页"测试账号登录"面板正常显示

  • 4 项铁律级落地

    1. deploy_h5.py:45 REMOTE_DIST_DIR = /opt/wecom-it-desk/src/frontend-h5/dist(加铁律注释)
    2. deploy-staging/deploy-h5.sh:26-32 cp 路径同样改 src/frontend-h5/(加铁律注释)
    3. dev_auth.py:31 router prefix = /api/dev(与 nginx 对齐)
    4. nginx.conf:175 proxy_pass = http://backend_api(去 trailing slash,原样转发)
  • Git commit(本地)e9d10c2d98e1ad25d0dbfdd8b052778adb8e50d1 on mainwrite-tree + commit-tree + printf 铁律流程,未推 Gitea 因 Tailscale NoState

  • 项目记忆沉淀MEMORY.md 新增踩坑 DH5 dist 路径铁律) + BUG-002 完整记录

  • 遗留待办:① 内网用户验证 Login 面板实际显示(需 VPN)② 残余低优风险 ticket(process_scan code=None 防御、_dev_extract_user docstring)③ 自动化测试 tests/test_login_test_panel_fix.py 待补

  • 🟢 BUG-登录-扫码劫持-001 闭环(2026-08-11 16:45:坐席端/管理后台扫码登录被 DEV_MODE=true 无条件劫持为 dev-user-001(员工角色)→ 真实用户无法进入坐席端(需 agent)和管理后台(需 admin)。根因src/backend/app/services/qrcode_service.py:260 if _dev_mode_enabled(): 无条件走 DEV 模拟;修复:判断改为 if _dev_mode_enabled() and code.startswith("dev:"):(仅 dev 约定 code 走模拟,其他一律调企微 API)。附带修复nginx/nginx.conf /api/dev/ 白名单新增公司互联网出口 IP115.227.36.10 / 117.147.35.138 / 218.75.34.87)恢复测试账号登录入口。真实验证:① 真实企微 code → 后端日志 qrcode_service.py:270 _fetch_oauth_user 调企微 API(企微拒绝假 code "invalid code",符合预期)② dev:dev-admin-001 → 仍走 DEV 模拟 [DEV] 扫码回调模拟: employee_id=dev-admin-001(自动化测试零回归)③ 用户真实企微账号扫码登录坐席端/管理后台 → 可正常登录 修复链路:① 团队 software-bugfix-qrcode-hijack(主理人 Duckula + 工程师寇豆码 IS_PASS:YES + QA严过关 11/11 PASS, 路由 NoOne)② Git commit 9e04016b on main(附在 f2fd4fa 后)③ 部署:bind mount 源路径 /opt/wecom-it-desk/app/services/qrcode_service.py(非 src/backend/app,双目录铁律)+ sudo cp /opt/wecom-it-desk/nginx/nginx.conf + nginx -t ok + nginx -s reload + docker restart wecom_it_backend24s healthy)。遗留低优风险(QA 发现,与本次 BUG 不同类):① code=Nonecode.startswith("dev:")AttributeError_dev_extract_user docstring 返回类型标注错(tuple[str,str] 实际返 3-tuple)。详见 docs/03-测试文档/05-缺陷单/BUG-登录-扫码劫持-001.mdtests/test_qrcode_hijack_fix.py11 用例 0.66s)。

📌 v1.9.4 增补说明(2026-08-11 早班巡检触发)

  • 🔴 公网版本停滞 3 天(NEW 关键发现)jumpserver-V2 + 公网 curl 实测 /h5/go302 → /h5/v20260808/08-08 09:30 last deploy);/itservice/go 同样指向 v20260808。意味着自 v1.9.3 看板升级(08-10 09:00)至今无新发版,前端优化 PR 与 dida 任务 P0-NEW9 修复均未发布。看板 HTML 仍是 v1.9.308-10 09:26 上传)—— 看板与前端代码不同步,但服务器 HTML 仍为最新。
  • 🔴 P0-NEW9/NEW10 仍 200 暴露(NEW 实测证据)jumpserver-V2 容器内 docker exec wecom_it_backend curl http://127.0.0.1:8000/health{"status":"ok","service":"wecom-it-smart-desk"}(健康端点正常);公网 curl /api/test-ping → 200 含 "pong";公网 curl /api/test-error → 200 含 "服务器内部错误";公网 /api/openapi.json → 200 OK 424122B312 端点全公开 + 攻击者手册级 API 字典)。三个 P0 任务(P0-NEW9 due 08-12 / P0-NEW10 due 08-13 / 风险 /h5/ due 08-11全部 status=0 未完成
  • 🔴 风险 /h5/ 今日到期dida 6a752de4 due 2026-08-11 16:00(今晚 16:00),未启动修复。潜伏隐患:nginx location /h5/ alias + try_files $uri /h5/index.html 当 index.html 缺失即触发 rewrite cycle 500。
  • 🔴 P0-3 closing_service 时区错位 5 → 8 天dida 6a72c892 仍 status=0due 2026-08-06 已逾期 5 天,累计 8 天(自 2026-08-03 首次报错)。Reopen 接口 TypeError: can't subtract offset-naive and offset-aware datetimes 持续未修。
  • 🟡 BLK-A/B 30 → 31 天阈值校正2026-07-11 → 2026-08-11 = 31 天dida 任务仍 status=0 + 已逾期 4 天(due 2026-08-07)。v1.9.3 标 30 天 → v1.9.4 标 31 天。
  • 🟡 P1-Alembic / P1-Idx 仍逾期dida 6a705109 (Alembic 053-057) due 08-09 已逾期 2 天;dida 6a70510f (troubleshooting_templates 索引) due 08-07 已逾期 4 天;均 status=0 未推进。
  • 🟢 v1.9.3-DRAFT 1 天未冻结v1.9.3 在 08-10 09:00 巡检生成 DRAFT 后 24h 未升级为 FROZEN;本次合并入 v1.9.4 等待 PM 审核冻结(建议通过 FROZEN 后生成 项目状态看板-v1.9.4-FROZEN.html 归档)。
  • 🟢 服务发布状态:公网看板 HTML 200 OK 45683B08-10 09:26 = v1.9.3= 本地 45683B 完全匹配;服务器 /opt/wecom-it-desk/docs-public/kanban/ 目录:当前 45683Bv1.9.3 派生)+ v1.9.0-FROZEN 30765B + v1.9.1-FROZEN 32078B 三份归档。
  • 🟢 容器与资源全绿jumpserver-V2 09:00 实测):
    • 5 容器 all healthynginx 18h / backend 35h / redis 3w / neo4j 4w / postgres 4w
    • 磁盘 129G 可用(13%),内存 11Gi available,负载 0.64/0.73/0.6959 天 uptime
    • 后端容器日志:6 文件(active 17.3MB + 5×20MB 轮转,2026-08-08 23:33 最后轮转,3 天前)
    • nginx config test OK
  • 🟢 dida365 同步状态v1.9.4 本次巡检前 dida 已记录 11 项(P0-NEW9/NEW10 + P0-3 + P1-1.1 + P1-治理-1 + P1-Alembic + P1-Idx + BLK-A + BLK-B + 风险 /h5/);v1.9.3 同步的 1 项 6a6bfc2be sensitive_words 13 端点 仍 status=2 闭环;新增 P0-NEW11 与 P1-1.1 二次治理作为新治理项。午后新增 PR-6 dida 任务 6a7a8a69e4b06898044f3530task-actions-pivot 合并,已完成,与看板"最近完成"区对齐),dida 现 12 项。 午后新增 REQ-通用-006 dida 任务(预生产测试通道上线,已完成,与看板"最近完成"区对齐),dida 现 13 项。
  • 🟢 PR #6 合并入 maintask-actions-pivot / 坐席端 TaskDetailView 操作区主操作+⋯ 收纳)2026-08-11 09:3509:47 经 Gitea 合并。绕过单用户仓库 PR 审批门禁 405(用 merge-tree+commit-tree 造合并提交 9fcee9df 直推未保护 main),PR 记录 PATCHclosed。对应 commitf1b12b7 feat(agent): TaskDetailView 操作区主操作+⋯ 收纳(PRD-REQ-坐席-011 §6.4 决策 C-8+ 6be361f kanban: v1.9.4 巡检同步。状态:已合并 main,尚未发版部署(与"⚠️ 风险-2 公网版本停滞 3 天"一致——/h5/go 仍 v20260808)。本地另存 WIP 快照 f2fd4fa447 文件,docs/memory/h5.py/scripts 未评审改动)于 feat/task-actions-pivot-v1.8:未合入 main2026-08-11 14:1x 已推 Gitea feat/task-actions-pivot-v1.8 = f2fd4fa(走本地 CONNECT 代理 + 6 块拆分推送,绕波动网络随机断连;ls-remote 校验落盘,临时 upload-buffer 分支已删)。
  • 🟢 REQ-通用-006 预生产测试通道已上线(2026-08-11 12:00 完成):三端企微 OAuth 无法自动化测试的痛点闭环。已部署预生产(10.90.5.110)并验证全绿:① 预生产 compose 注入 DEV_MODE=true(备份 docker-compose.yml.bak-testch-20260811),/api/dev/* 三端 mock 登录(login_source=dev)② nginx location /api/dev/ 内网闸门(allow 10/8,172.16/12,192.168/16 + deny all,备份 nginx.conf.bak-testch-20260811)——公网实测 /api/dev/* 403、/api/health 200 未误伤 ③ 三端 Login.vue「测试账号登录」面板(探测 /api/dev/health 决定可见性,公网自动隐藏)④ H5 版本化 v20260808→v20260811(两 go 302 重指,备份 nginx.conf.bak-h5v20260811)。commit c1d5dd5(11 文件 985 行)已推送 ds923plus main。文档链五件套齐备(PRD/技术方案/任务说明书/TC/DEPLOY)。环境分层决策10.90.5.110=预生产,未来生产=单独申请分布式资源(K8s)

📐 文档管理策略(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 实测:
  • 修改流程:改 .md → 跑脚本生成 .html → 归档副本 → 跑部署脚本上传 → commit & push

📌 v1.9.3 增补说明(2026-08-10 早班巡检触发)

  • 🔴 P0-1 /itportal/ 实测已闭环08-03 nginx 配置清理(line 139-142 明确注释)已部署生效,今日公网 curl /itportal/ 实测 = HTTP 404(之前 500 是 rewrite cycle bug,现已不存在)。bug 已修复,但看板标"待部署"是 08-06 旧观察结果 → 迁移至"已完成"区(2026-08-03
  • dida365 双向校验发现 4 处脱节
    1. 6a6bfc2be4b03a0a8af7f702 [P1 sensitive_words 13 端点补 auth] — 看板 08-04 已完成 + 08-08 自动同步描述,但 dida status=0 / completedTime=null 实际仍 active;本次同步 close
    2. 6a705109e4b03a0a8b2eca2a [P1 Alembic 迁移脱节 053-057] — dida P1 区有,看板缺失 → 补登
    3. 6a70510fe4b0fe2f03126d3c [P1 troubleshooting_templates 补 2 索引] — dida P1 区有,看板缺失 → 补登
    4. 6a752de4e4b01cac6d28e0e2 [风险 Nginx /h5/ alias+try_files 易循环 500 隐患] — dida 有,看板缺失 → 补登
  • console.{log,debug,info} 残留 128 → 129h5 不变(101) / agent 17→20useScreenCapture/useWebSocket 新增 3 处)/ terminal 7→8useWebSocket.ts 新增 1 处)= 129 行
  • BLK-A/B 26 → 30 天阈值2026-07-11 → 2026-08-10 = 30 天,看板标注滞后
  • 新增治理项
    1. [P0-NEW10] 后端 debug 端点全清单(test-ping/test-error/health/ready/metrics/version/openapi.json)生产暴露治理 — P0 区
    2. [P1 治理-2] 看板-滴答双重脱节闭环 — P1 区(dida 6a76a809e4b01cac6d3c5ac0 升级为 P1 治理-2 持续跟进)
    3. [P1 治理-3] 看板-滴答清单反向同步机制(dida→看板) — P1 区(发现看板有项未入 dida 的反向脱节)
  • dida 同步动作
    • close 6a6bfc2be4b03a0a8af7f702sensitive_words 13 端点,状态 0→2completedTime 2026-08-10 01:25 UTC
    • 看板-滴答清单双向同步铁律扩展:dida→看板反向同步同样纳入铁律

📊 看板概览

状态 数量 变化
🔴 P0 必做 1 持平(P0-NEW8 host vs git 仓库结构差异NEW9/10/11/12 全部闭环维持;P0-3/P0-4/P0-5 全部闭环已部署)
🟡 P1 重要 6 持平(P1-1.1 二次治理 console 129 行已逾期 1 天 + 治理-1/2/3 + Alembic 已逾期 4 天 + Idx 已逾期 6 天)
🟢 等用户决策 2 持平(33 天阈值08-13 自 07-11 已 33 天;从 v1.9.7 标 32 天修正)
🟠 进行中 1 持平(#81 敏感词检测 v1.1 阶段1 已完成,v1.2 待排期)
🏷️ 看板治理 3 持平
🟡 待开始 0 持平
⏸️ 暂停 5 持平(安全策略检查平台 REQ-集成-001)
已完成 103 持平
⚠️ 风险项 1 持平(Nginx /h5/ alias+try_files 潜伏 500 隐患 dida 6a752de4 已逾期 2 天;公网版本停滞 3 天已解除 08-12,但 08-13 09:00 起重新计算停滞窗口 ~14h)

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

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

任务ID 任务名称 类别 阻塞时长 状态 说明
P0-3 closing_service.py:467 datetime 时区错位 ♻️ 历史遗留 8 天(自 2026-08-03 已修复 2026-08-11 16:08 预生产部署闭环from datetime import datetime, timedelta, timezone + 行 467 elapsed = datetime.now(timezone.utc) - close_time2 行改动)。端到端验证jumpserver-V2 直接调 ClosingService.reopen_conversation("sxn", "61ba5bbb-...") → 报 AppException 已超过 24 小时重开窗口(预期行为,原 TypeError 已消失)。dida 6a72c892 已 completed 对齐(completedTime 2026-08-11 08:13:52 UTC)。建议后续审计同文件行 658/673/687 同模式(datetime.now() - timedelta(...) 与 SQL 列比较),本次未动(未触发报错,但同坑潜在)。部署链路:① 备份 /opt/wecom-it-desk/app/{main.py,services/closing_service.py,services/employee_profile_service.py}.bak-p03p04-20260811160814 ② cp 覆盖 + chown 197609:197609 ③ docker restart wecom_it_backendUp 18 seconds (healthy) ④ /health 200 OK + /ready 200 OK {db:ok, redis:ok}
P0-4 employee_profile_service.py:236 SessionLocal NoneType 🔥 🆕 位置修正 <1 天 已修复 2026-08-11 16:08 预生产部署闭环:① app/main.py lifespan 加 from app.models.base import get_session_local; get_session_local() 强制初始化(1 行 startup)② employee_profile_service.py:236 db = SessionLocal()db = get_session_local()()(1 行代码改动)。双拦:startup 兜底 + 调用方主动走懒初始化触发器。端到端验证jumpserver-V2 直接调 get_employee_profile_service().get_profile_dict("sxn") → 实例化成功 + 返回 dict(外部 API 空)。dida 6a7ad5f0 已补建+completed 对齐(completedTime 2026-08-11 08:13:58 UTC)。部署链路:同 P0-3 共享 bak-p03p04-20260811160814
P0-5 容器 app/constants/ 打包错误 🔥 🆕 新增 🆕 已关闭(描述失真) 2026-08-11 15:30 复核:磁盘实测 src/backend/app/constants/ 结构正确——__init__.py (1109B) = package 入口 re-export from app.constants.automation import *automation.py (11635B) = 真正常量模块;Glob 确认无遗留单文件 app/constants.py / app/automation.py两者并未互换,属正常的 package 入口+子模块结构。看板描述可能是早期症状(部署前 build 报错)的过时快照,与现状脱节。关闭说明:自动化常量已正确 package 化,2026-08-11 实测确认。dida 无对应任务,无需同步关闭
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/项目状态看板.html20030765BCache-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 镜像构建 ③ 迁移路径方案评估
P0-NEW9 main.py 调试端点(test-ping/test-error)生产暴露 🆕 新增 🆕 已修复 2026-08-08 06:00 早班巡检发现src/backend/app/main.py:963-971 注册的 /test-ping/test-error 等诊断端点未走任何环境分支保护(注释明确写「生产环境删除」,但 main.py _is_dev_mode() 仅作用于 :932 周边)。v1.9.3 公网实测(2026-08-10 09:00GET https://itsupport.servyou.com.cn/api/test-ping 仍返 200 OK 含 "pong" — 仍未修复。建议:① 短期 nginx location /api/test-* 限制 internal only;② 长期用 if _is_dev_mode(): 包裹整个诊断区段或移至 app/api/debug.py 仅 dev 加载。伴随项:建议同步治理 /api/openapi.json 312 端点公开(含 106 admin + 29 auth)。2026-08-11 14:00 闭环nginx 边缘层 `location ~ ^/api/(test-
P0-NEW10 后端 debug 端点全清单治理(test-ping/test-error/health/ready/metrics/version/openapi.json 🆕 新增 🆕 已修复 2026-08-10 09:00 早班巡检发现P0-NEW9 仅涉及 /test-ping + /test-error 两个端点,但 src/backend/app/main.py 实际注册的诊断端点全集更广——line 978 @app.get("/health", tags=["系统"]) + 之前遗漏的 /ready / /metrics / /version + /api/openapi.jsonFastAPI 默认开放,312 端点全公开)。v1.9.4 公网实测(08-11 09:00/api/test-ping 仍 200 pong + /api/test-error 仍 200 返"服务器内部错误" + /api/openapi.json 仍 200 OK 424122B。建议批量治理:① app/api/debug.py 集中所有诊断端点,仅 dev/staging 加载 ② FastAPI 实例化 docs_url=None, redoc_url=None, openapi_url=None 在生产关闭 ③ nginx `location ~ ^/api/(test-
P0-NEW11 /api/openapi.json 生产公开 312 端点治理(攻击者字典级暴露) 🆕 新增 🆕 已修复 2026-08-11 09:00 早班巡检实测curl -sI https://itsupport.servyou.com.cn/api/openapi.json → 200 OK 424122B完整 API 字典含 106 admin + 29 auth 端点)。2026-08-11 已闭环(双拦 + 公网复测证据):① 代码层 create_app()settings.app_env=="production" 关闭 openapi_url/docs_url/redoc_url(运行副本 /opt/wecom-it-desk/app/main.py + 构建上下文副本双改,docker restart wecom_it_backend 生效)② nginx location = /api/openapi.json /api/docs /api/redoc /api/docs/oauth2-redirect { return 404; } 兜底。复测:容器内 /openapi.json→404、/docs→404、/redoc→404;公网 /api/openapi.json→404、/api/docs→404、/api/redoc→404;业务 /api/health/api/version 仍 200、误伤验证通过。详见 deliverables/openapi_exposure_report.md
P0-NEW12 应用层 debug 端点代码层根因(容器内 /test-ping /test-error /version 仍 200,仅 nginx 边缘层兜底 404 🆕 新增 🆕 已修复 2026-08-12 10:30-10:55 修复完成(公网 + 容器内 12+6 端点验证全 4xx):① 新建 src/backend/app/api/debug.py 集中 3 个调试端点(/api/debug/ping+/error+/version)② main.py 删除散落 /test-ping /test-error /version,改为 if _is_dev_mode(): 块内 include_router(debug_router)(双重门控:挂载 + 端点内自校验)③ 二次修复 v1.1/test-ping 等未挂载但容器内 /api/debug/ping 仍 200——根因为预生产服 APP_ENV=production + DEV_MODE=true 配置不一致,原 _is_dev_mode() 把 DEV_MODE 优先级置顶;改为 app_env 优先 后 production 永远 False。同步修复 main.py + dev_auth.py + conftest.pyenable_dev_mode fixture 设 APP_ENV=development)。④ 11 用例回归测试 10 passed + 1 skippedpsutil 缺包)。v1 部署 10:48 + v2 部署 10:55jumpserver-V2 PSFTP + docker restart)。部署后 12 端点公网验证:3 旧端点 404 + 3 新端点 404 + 3 dev 403nginx IP 白名单)+ 1 health 200 + 3 P0-NEW11 404。容器内直测 6 端点 100% 4xx(用户原话真实风险场景)。详见 docs/03-测试文档/05-缺陷单/BUG-安全-005-调试端点无门控-001.md

滴答清单跟踪P0 系列已在滴答清单 wecom_it_smart_desk 项目下建任务(标签 work)。v1.9.4 闭环同步(2026-08-11 14:28 复验)

  • 6a76a80de4b050c704916c07 [P0-NEW9] /api/test-ping 生产暴露调试端点治理(main.py 未走 env 分支)— dida 已 completed 对齐(completedTime 2026-08-11 06:28 UTC,与看板「 已修复」闭环一致)
  • T11 = 6a7928a2e4b068980437bb15 [P0-NEW10] debug 端点全清单治理(test-ping/test-error/health/ready/metrics/version/openapi.json)— dida 已 completed 对齐(completedTime 2026-08-11 06:28 UTC,与看板「 已修复」闭环一致)
  • 6a7a7ae6e4b068a058339f6e [P0-NEW11] /api/openapi.json 312 端点治理 — dida 已 completed 对齐(completedTime 2026-08-11 04:24 UTC,与看板闭环一致)
  • 6a6bfc2be [P1 sensitive_words 13 端点补 auth] 看板已完成 → dida 同步 closecompletedTime 2026-08-10 01:25 UTC
  • 6a72c892e4b08d42854aa7cf [P0-3] closing_service 时区错位修复(2026-08-11 16:08 已部署预生产 + dida completed 对齐,completedTime 2026-08-11 08:13:52 UTC
  • 6a7ad5f0e4b01cac6d71dfbf [P0-4] employee_profile ServiceLocal NoneType 修复(2026-08-11 16:08 已部署预生产 + dida completed 对齐,completedTime 2026-08-11 08:13:58 UTC

P0-1 闭环:看板 P0-1 /itportal/ 500 修复闭环 — nginx.conf line 139-142 已显式注释"/itportal/ 静态前端块已移除 (2026-08-03 fix)",今日公网实测 500→404rewrite cycle 消失)。迁移至" 最近完成"区。


🟡 P1 重要(待办 / Medium Priority

任务ID 任务名称 类别 来源 说明
P1-1.1 二次清理前端 console.{log,debug,info} 残留 129 行 🆕 看板-现实脱节 2026-08-10 早班巡检 看板 v1.9.1 P1-1 已关闭「208 行 console 清理」,但 2026-08-08 / 08-10 连续两次巡检实测 src/frontend-{h5,agent,admin,terminal}/src/ 仍残留 129 行(h5:101 / agent:20 / admin:0 / terminal:8)。变化点agent 17→20useScreenCapture/useWebSocket 新增 3 处,源自 5311a52 合并)+ terminal 7→8useWebSocket.ts 新增 1 处)。dida task id = 6a76a802e4b06898041f5215due 2026-08-12
P1 治理-1 看板-滴答双源同步机制(看板→dida 方向) 🆕 治理 2026-08-08 早班巡检 08-08 已自动同步 3 项历史不一致。dida task id = 6a76a809e4b01cac6d3c5ac0due 2026-08-15
P1 治理-2 看板-滴答双重脱节闭环(dida→看板 方向) 🆕 治理 2026-08-10 早班巡检 08-10 双向校验发现 4 处 dida→看板 反向脱节:① 6a6bfc2be sensitive_words 13 端点 — 看板已完成,dida 仍 status=0(本次同步 close)② 6a705109 Alembic 迁移脱节 053-057 — dida P1,看板无 ③ 6a70510f troubleshooting_templates 补 2 索引 — dida P1,看板无 ④ 6a752de4 Nginx /h5/ alias+try_files 潜伏 500 隐患 — dida 风险项,看板无。dida task id = 6a76a809e4b01cac6d3c5ac0 升级为 P1 治理-2 持续跟进
P1 治理-3 看板-滴答清单反向同步机制(dida→看板) 🆕 治理 2026-08-10 早班巡检 发现看板有项未入 dida 的反向脱节。需要把反向同步纳入铁律:早班巡检必须双向同步,dida→看板方向不能漏。后续建议在 scripts/build_kanban_html.py--dida-sync 子命令
P1-Alembic 【dida 补登】治理 Alembic 迁移脱节 — 一次性跑完 053-057 五个迁移(生产 alembic_version 当前=052_diag_queue_quiz 🆕 看板缺失项 2026-08-10 早班巡检反向脱节发现 dida task id = 6a705109e4b03a0a8b2eca2acolumnId=P1,原 due 2026-08-09 已逾期 1 天。本看板发现前未纳入追踪
P1-Idx 【dida 补登】troubleshooting_templates 补 2 索引 — idx_tpl_category / idx_tpl_activeH5 列表 WHERE category 性能优化) 🆕 看板缺失项 2026-08-10 早班巡检反向脱节发现 dida task id = 6a70510fe4b0fe2f03126d3ccolumnId=P1,原 due 2026-08-07 已逾期 3 天
P1-治理-sens [看板 08-04 已完成 → dida 同步] sensitive_words.py 13 端点补 require_admin 看板已完成 2026-08-10 早班巡检 看板"最近完成"区已有(2026-08-04),但 dida 6a6bfc2be 仍 status=0;本次同步 closecompletedTime 2026-08-10 01:25 UTC

P1-1(看板 v1.9.1 已关闭项)保留作为历史记录,二次治理由 P1-1.1 承担。


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

均超 3 天阈值,需 PM 升级催办。v1.9.4 阈值校正30 天 → 31 天2026-07-11 → 2026-08-11

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

催办机制:建议 PM 每周一 review(滴答清单循环任务)。dida task 6a7008e9e4b03a0a8b2870ba (BLK-A) + 6a7008e9e4b06440c396f6c2 (BLK-B)due 已逾期(2026-08-07)。


⏸️ 安全策略检查平台 (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 任务名称 优先级 负责人 完成日期
P1-治理-hand_raise 术语对齐:hand_raise「举手」改名迁移为 human_call「人工呼叫标记」+ 摇人统一 + τ门控/置信度门控区分 🟡 P1 Duckula 2026-08-12 19:1x
BUG-登录-测试账号面板不显示-002 H5 端"测试账号登录"面板永不显示 + H5 dist 部署路径错配 + dev_auth router prefix 与 nginx proxy_pass 路径冲突(双根因 + 双铁律级落地) 🔴 P0 Duckula 2026-08-11 19:30
BUG-登录-扫码劫持-001 DEV_MODE=true 劫持真实扫码登录(坐席端/管理后台)+ nginx /api/dev/ 白名单遗漏公司出口 IP 🔴 P0 Duckula 2026-08-11
P0-NEW9 /api/test-ping 生产暴露调试端点治理(main.py 未走 env 分支) 🔴 P0 Duckula 2026-08-11
P0-NEW10 后端 debug 端点全清单治理(test-ping/test-error/health/ready/metrics/version/openapi.json 🔴 P0 Duckula 2026-08-11
REQ-006 预生产测试通道:DEV_MODE + nginx 内网闸门 + 三端测试登录入口 🟢 基建 Duckula 2026-08-11
PR #6 task-actions-pivot:坐席端 TaskDetailView 操作区主操作+⋯ 收纳 🟡 功能 Duckula 2026-08-11
P0-1 /itportal/ 入口 500 错误(nginx rewrite cycle 🔴 P0 Duckula 2026-08-03
#104 运行期结构化日志查看页(筛选 + 下载命中行) 🔴 P0 Duckula 2026-08-07
- [P0→P3] 复核 /h5/ HTTP 404(看板 v1.9.1 P0-1 已闭环) 🔴 P0 Duckula 2026-08-08
- sensitive_words.py 13 端点补 require_admin(看板 08-04 闭环 + dida 08-10 同步 close 🔴 P0 Duckula 2026-08-10
- [P0-2] sensitive_words.py 13 端点补 require_admin 🔴 P0 Duckula 2026-08-08
- [P1-1] 清理前端 console.log 残留 208 行 🟡 P1 Duckula 2026-08-08
- 【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-NEW8host vs git 仓库结构差异 部署架构 P0-NEW7 修复期间触发——本地 git 仓库 src/backend/ 与主机实际 app/ 结构不一致,docker-compose.yml 路径配置失配引发 backend 容器启动失败。需 PM 决策:① host 是否同步 git 仓库 ② 是否启用 build context 镜像重建 ③ 迁移路径方案

📈 任务统计

  • 总任务数: 115v1.9.5 114 + P0-NEW12 应用层 debug 端点代码层根因 1 项)
  • 已完成: 103+1BUG-登录-扫码劫持-001 DEV_MODE 修复 + nginx 白名单;P0-NEW9 / P0-NEW10 / P0-NEW11 / P0-3 / P0-4 已闭环已部署;BUG-002 已闭环入"已完成"区;+1 v1.9.7 P1-治理-hand_raise 闭环)
  • 🔴 P0 必做: 1P0-NEW8 host vs git 仓库结构差异;P0-NEW12 v1.1 闭环已部署 2026-08-12 10:55NEW9 / NEW10 / NEW11 / P0-3 / P0-4 / BUG-002 / BUG-001 已闭环已部署;P0-5 描述失真已关闭;P0-1 已闭环;P0-6 已知噪声)
  • 🟡 P1 重要: 6P1-1.1 已逾期 1 天 / 治理-1 / 治理-2 / 治理-3 / P1-Alembic 已逾期 4 天 / P1-Idx 已逾期 6 天;P1-治理-sens 是 dida close 同步不入待办列)
  • 🟢 等用户决策: 2BLK-A/B均超 33 天阈值08-13 自 07-11 已 33 天)
  • 🟠 进行中: 1#81 v1.2 待排期)
  • 🟡 待开始: 0
  • ⏸️ 暂停: 5(安全策略检查平台)
  • ⚠️ 风险项: 1(风险-1 Nginx /h5/ alias+try_files 潜伏 500 隐患 dida 6a752de4 已逾期 2 天;风险-2 公网版本停滞 3 天已解除 08-12 公网实测 /h5/go → v20260811,但 08-13 起重新计算 ~14h
  • dida365 同步状态: 2026-08-13 09:00 双向校验一致(无新建/关闭需要)= 7 项 undoneP1-1.1 + 治理-1/2/3 + P1-Alembic + P1-Idx + BLK-A + BLK-B + 风险 /h5/);2026-08-10 01:25 UTC 同步 close 1 项(sensitive_words 6a6bfc2be);2026-08-08 03:52 UTC 同步 close 3 项 + create 3 项;2026-08-11 同步P0-NEW9/NEW10/NEW11 全部 completed + BUG-002 待补建 dida 任务并 complete08-12 早班同步触发 P0-NEW12 create);16:45 同步:BUG-登录-扫码劫持-001 待补建 dida 任务并 complete双向同步铁律:看板→dida 与 dida→看板 均纳入巡检必做项

🔗 相关文档

  • 任务说明书目录: docs/07-项目管理/任务说明书/
  • 项目管理主文档: docs/07-项目管理/任务说明书/IT智能服务台-项目管理主文档.md
  • 2026-08-05 早班巡检报告(HTML: docs/07-项目管理/巡检报告/2026-08/2026-08-05-早班.html
  • 巡检报告归档目录: docs/07-项目管理/巡检报告/

📝 看板版本变更记录

模板依据:规范 §4.2 / §8.3 变更记录表(含「变更原因」「影响范围」)

版本 日期 变更内容 变更人 变更原因 影响范围
v1.9.8-DRAFT 2026-08-13 早班巡检 6 项实测发现(P0 全闭环维持 / 公网 + 容器内 12 端点 100% 4xx / 容器资源全绿 / P1-1.1 逾期 1 天 / BLK-A/B 33 天阈值 / v1.9.7 14h 未冻结连续合并待审) Duckula (AI) 2026-08-13 09:00 早班巡检:jumpserver-V2 cache 有效(hostname OK+ 公网 curl + 容器内 12 端点全 4xx 三重实测;无新增 P0;dida 双向校验一致 🔴 P0 持平 1P0-NEW8 仍存);🟢 阻塞阈值 32→33 天; 已完成持平 103⚠️ 风险持平 1;新增本日实测发现 6 项
v1.9.7-DRAFT 2026-08-12 晚间 P1-治理-hand_raise 术语对齐三处存量漂移闭环(hand_raise→human_call + 摇人统一 + τ门控/置信度门控区分 + 14 py 双仓库同步 + 预生产部署 + 35 条存量数据 SQL 迁移) Duckula (AI) 08-12 晚间突发闭环 已完成 102→103;总任务 114→115
v1.9.6-DRAFT 2026-08-12 早班巡检 4 项关键发现(公网版本停滞解除 / P0-NEW12 应用层 debug 端点代码层根因 / 容器全绿 / dida 双向校验) Duckula (AI) 2026-08-12 09:00 早班巡检:jumpserver-V2 + 公网 curl + 容器内 python urllib 三重实测 🔴 P0 1→2 已完成 101→102⚠️ 风险 2→1;总任务 114→115;新增 P0-NEW12
v1.9.5-DRAFT 增补(晚间 19:30 2026-08-11 BUG-登录-测试账号面板不显示-002 闭环(双根因 + 双铁律级落地:Login.vue 一行 + deploy 路径铁律 + dev_auth prefix + nginx proxy_pass+ 公网 /api/dev/health 真实 dev_mode 响应验证 Duckula (AI) 18:17 用户反馈"用户端老版本"→18:50 双层定位(前端 BUG + 部署路径错配)→19:06 pnpm build + deploy 落空 + 远端 mv 修正 →19:24 dev_auth + nginx 协同修复 + 公网 curl 验证 {code:0, data:{dev_mode:true,...}} →19:30 Git commit e9d10c2d 本地 + 看板 v1.9.5 增补 🆕 新增 BUG-002 缺陷单 + 4 项铁律级落地;总任务 113→114
v1.9.4-DRAFT 增补(午后 7 2026-08-11 BUG-登录-扫码劫持-001 闭环(DEV_MODE 修复 + nginx /api/dev/ 白名单)+ Git commit 9e04016b on main + 预生产部署 Duckula (AI) 16:24 用户复核方案 2 治本→16:35 团队协作(工程师寇豆码 IS_PASS:YES + QA严过关 11/11 PASS)→16:38 主理人部署(bind mount 源路径 /opt/wecom-it-desk/app/services/qrcode_service.py + nginx reload + 后端容器重启 24s healthy)→16:45 用户真实企微账号登录坐席端/管理后台通过验证 🔴 P0 仍 1(仅余 NEW8); 已完成 102→103;总任务 112→113;新增 BUG-登录-扫码劫持-001.md + tests/test_qrcode_hijack_fix.py
v1.9.4-DRAFT 增补(午后 6 2026-08-11 P0-3 / P0-4 预生产部署闭环(jumpserver-V2+ dida 双 complete + kanban HTML 公网发布 Duckula (AI) 16:08 jumpserver-V2 status=201 缓存有效→upload 3 文件→备份 .bak-p03p04-20260811160814→cp 覆盖→docker restart wecom_it_backend→Up 18s healthy;端到端验证 ClosingService.reopen_conversation 报预期 AppException(1007) 而非 TypeErrorget_employee_profile_service() 实例化成功。dida P0-3 6a72c892 + P0-4 6a7ad5f0 均 completed08:13:52/58 UTC)。HTML 58187B 公网 200 OK 🔴 P0 仍 1(仅余 NEW8);dida 闭环
v1.9.4-DRAFT 增补(午后 5 2026-08-11 P0-3 / P0-4 本地修复 + P0-5 描述失真已关闭(disk 实测结构正确) Duckula (AI) 15:26 用户复核→15:30 三项同时落地:① closing_service.py:467 加 timezone.utc2 行)② main.py lifespan 强制 get_session_local() + employee_profile_service.py:236 改 get_session_local()()(双拦 1+1 行)③ P0-5 描述与磁盘不符,Glob 确认 app/constants/__init__.py (1109B re-export) + app/constants/automation.py (11635B 真模块) 正确 🔴 P0 4→1;待部署清单:P0-3/P0-4 本地已修+未部署;dida P0-3 待部署后 close + P0-4 需补建任务
v1.9.4-DRAFT 增补(午后 4 2026-08-11 P0-NEW9/NEW10 调试端点闭环(nginx 边缘层 404)+ f2fd4fa WIP 已推 Gitea feat 分支 Duckula (AI) 13:58 nginx 边缘层治理复测通过;14:1x 波动网络推送成功(本地 CONNECT 代理 + 6 块拆分) 🔴 P0 6→4 已完成 100→102feat/task-actions-pivot-v1.8=f2fd4fa 远端落盘
v1.9.4-DRAFT 增补(午后 3 2026-08-11 P0-NEW11 闭环:应用层关 openapi_url/docs_url/redoc_url + nginx 4 条 return 404 双拦,公网复测三者均 404 Duckula (AI) 早班巡检确认公网 /api/openapi.json 312 端点暴露,修复后复测通过 🔴 P0 7→6 已完成 99→100;滴答 NEW11 completed
v1.9.4-DRAFT 增补(午后) 2026-08-11 PR #6 合并入 maintask-actions-pivot / 坐席端 TaskDetailView 操作区收纳) Duckula (AI) Gitea PR #6 经评审合并(绕过单用户审批门禁 405) 已完成 98→99;总任务 110→111;仍 v20260808(未部署)
v1.9.4-DRAFT 增补(午后 2 2026-08-11 REQ-通用-006 预生产测试通道上线(DEV_MODE + nginx 内网闸门 + 三端测试登录) Duckula (AI) 三端企微 OAuth 无法自动化测试痛点闭环 已完成 99→100;总任务 111→112
v1.9.4-DRAFT 2026-08-11 早班巡检 5 项关键发现(版本停滞 / NEW9-10 暴露 / 风险 /h5/ / P0-3 / BLK 阈值) Duckula (AI) 2026-08-11 09:00 早班巡检实测 🔴 P0 6→7⚠️ 风险项 1→2;总任务 109→110;新增 P0-NEW11 + 风险-2
v1.9.3-DRAFT 2026-08-10 早班巡检 4 项发现(P0-1 闭环 / dida 反向脱节 / console 129 / BLK 阈值) Duckula (AI) 2026-08-10 09:00 早班巡检 🔴 P0 6🟡 P1 2→5 已完成 97→98⚠️ 风险项 0→1
v1.9.2-DRAFT 2026-08-08 dida365 自动同步 6 项(close 3 / create 3+ 新增 P0-NEW9 Duckula (AI) 2026-08-08 03:52 UTC dida 同步 🔴 P0 5→6🟡 P1 0→2 已完成 94→97
v1.9.1 补录2 2026-08-07 #104 运行期结构化日志查看页结案 Duckula (AI) 2026-08-07 jumpserver 生产实测结案 待开始 0;已完成 93→94
v1.9.1 补录 2026-08-07 P1 补齐 Nginx 生产安全响应头(7 头) Duckula (AI) 2026-08-07 安全巡检修复 已完成 92→93
v1.9.1-FROZEN 2026-08-06 冻结(P0-NEW7 看板-部署脱节已修复) Simon(审核) PM 审核通过 归档 项目状态看板-v1.9.1-FROZEN.html
v1.9.0-FROZEN 2026-08-06 冻结 v1.9-DRAFT(修正服务发布声明脱节) Simon(审核) PM 审核通过 归档 v1.9.0-FROZEN;新增 P0-NEW8
v1.9.0-DRAFT 2026-08-06 草稿(P0 必做 / P1 重要 / 等决策分区重构 + 计数) Duckula (AI) 看板结构升级 总任务数 96→99
v1.8.0-FROZEN 2026-08-05 冻结 v1.8-DRAFT Simon(审核) PM 审核通过 归档 v1.8.0-FROZEN(声明脱节待 P0-NEW7 修正)
v1.8-DRAFT 2026-08-05 草稿(新增 3 分区 + 4 维分类) Duckula (AI) 看板分区重构 总任务数 92→96
v1.7 2026-08-03 #81 状态反转 + 今日完成项入库 Duckula (AI) 阶段状态更新 统计 92/87/1/1/5/2
v1.5 2026-07-30 BUG-用户-003 修复完成 Duckula (AI) 2026-07-30 修复 总任务 90→91;已完成 84→85
v1.4 2026-07-24 批量完成项入库(批次1-4 / D1 / 文档重组 / #124 / #125 Simon 2026-07-24 收编 多任务迁入完成区