Files
wecom_it_smart_desk/docs/07-项目管理/项目状态看板.md
T
Simon ba07c03d11 [看板] v1.9.4 同步 REQ-通用-006 完成状态 + 修复部署脚本 bug
- 项目状态看板.md:REQ-通用-006 预生产测试通道入「最近完成」区(已完成 99→100 / 总任务 111→112);dida 同步说明 12→13 项;头部变更来源与版本变更记录追加午后增补
- 项目状态看板.html:派生副本重新生成(build_kanban_html.py)
- deploy_kanban_to_jumpserver.sh:修复 Step1 Git Bash 路径传给 Windows Python 的 bug(cygpath -w 转换)+ Step4 heredoc 内单引号阻止变量展开导致移动失败的 bug

已发布公网:https://itsupport.servyou.com.cn/docs/kanban/项目状态看板.html(200,含 REQ-006 内容)
2026-08-11 12:07:26 +08:00

280 lines
43 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目状态看板
> **版本**: v1.9.4-DRAFT | **更新日期**: 2026-08-11(早班巡检 + 午后 REQ-006 同步增补,未冻结)
> **变更来源**: 2026-08-11 09:00 早班巡检:jumpserver-V2 + 公网实测发现 **公网版本停滞 3 天**/h5/go 仍 v2026080808-08 last deploy+ P0-NEW9/NEW10 仍 200 暴露(`/api/test-ping` 返 pong`/api/openapi.json` 200 OK 424122B+ console 残留稳定 129 行 + 风险 /h5/ 今日到期 + BLK 30→31 天阈值校正 + v1.9.3-DRAFT 1 天未冻结(本次合并入 v1.9.4 待审);**午后 12:00 REQ-通用-006 预生产测试通道完成(已部署 + 已验证 + 已推送 main)**
> **执行人**: DuckulaAI)· **审核人**: 待 Simon 审核
> **基础版本**: v1.9.3-DRAFT2026-08-10 早班巡检)
## 📌 v1.9.4 增补说明(2026-08-11 早班巡检触发)
- **🔴 公网版本停滞 3 天(NEW 关键发现)**jumpserver-V2 + 公网 `curl` 实测 `/h5/go``302 → /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 424122B**312 端点全公开 + 攻击者手册级 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.69**59 天 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 任务 `6a7a8a69e4b06898044f3530`task-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 记录 `PATCH``closed`。对应 commit`f1b12b7` feat(agent): TaskDetailView 操作区主操作+⋯ 收纳(PRD-REQ-坐席-011 §6.4 决策 C-8+ `6be361f` kanban: v1.9.4 巡检同步。**状态:已合并 main,尚未发版部署**(与"⚠️ 风险-2 公网版本停滞 3 天"一致——`/h5/go` 仍 v20260808)。本地另存 WIP 快照 `f2fd4fa`447 文件,docs/memory/h5.py/scripts 未评审改动)于 `feat/task-actions-pivot-v1.8`:未合入 main、未推 Gitea(本机当前 Tailscale 大包上传受限)。
- **🟢 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 实测:
> - 看板: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
---
## 📌 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 → 129**h5 不变(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 `6a6bfc2be4b03a0a8af7f702`sensitive_words 13 端点,状态 0→2completedTime 2026-08-10 01:25 UTC
- 看板-滴答清单双向同步铁律扩展:dida→看板反向同步同样纳入铁律
> 📐 **文档管理策略(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 必做 | 7 | +1P0-NEW11 /api/openapi.json 312 端点公开治理) |
| 🟡 P1 重要 | 6 | 持平 |
| 🟢 等用户决策 | 2 | 持平(**31 天阈值**,从 30 天修正) |
| 🟠 进行中 | 1 | 持平 |
| 🏷️ 看板治理 | 3 | 持平 |
| 🟡 待开始 | 0 | 持平 |
| ⏸️ 暂停 | 5 | 持平 |
| ✅ 已完成 | 99 | +1(REQ-通用-006 预生产测试通道) |
| ⚠️ 风险项 | 2 | +1(公网版本停滞 3 天,/h5/go 仍 v2026080808-08 09:30 last deploy |
---
## 🔴 P0 必做(高优先级 / High Priority
> 立即推进,需当日 / 次日完成。分类说明:
> **🆕 新增** = 本次巡检首次发现;**♻️ 历史遗留** = 已记录但未关闭;**🔥 紧急** = 影响用户可感知功能或多端点
| 任务ID | 任务名称 | 类别 | 阻塞时长 | 状态 | 说明 |
|--------|----------|------|----------|------|------|
| **P0-3** | `closing_service.py:467` datetime 时区错位 | ♻️ 历史遗留 | **8 天**(自 2026-08-03 | 🔴 待修复 | `datetime.now() - close_time``TypeError: 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。dida `6a72c892` due 2026-08-06 已逾期 5 天,**v1.9.4 校正**:阻塞时长 7 → 8 天 |
| **P0-4** | `employee_profile_service.py:236` SessionLocal NoneType 🔥 | 🆕 位置修正 | <1 天 | 🔴 待修复 | **看板 v1.8 行号描述错误**:实际错误位置是 `app/services/employee_profile_service.py:236` 而非 `h5_ai_task.py:1198``db = 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-4SessionLocal 绑定失败)。建议:① 临时 `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 reload`。**jumpserver-V2 实测**:容器内 `curl -sI http://127.0.0.1/docs/kanban/项目状态看板.html`**200**30765BCache-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.yml``backend.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:00**`GET 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 |
| **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.json`FastAPI 默认开放,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-|debug/|openapi.json)` return 404 外部 |
| **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 端点)。P0-NEW10 文字已覆盖但无独立 task,建议单列以便追踪进度。修复方案:FastAPI 实例化 `openapi_url=None`(生产)+ 同步 `docs_url=None, redoc_url=None`nginx 层 `location = /api/openapi.json { return 404; }` 兜底 |
**滴答清单跟踪**9 项 P0 已在滴答清单 `wecom_it_smart_desk` 项目下建任务(标签 `work`)。**v1.9.3 增补**
- T11 = `6a7928a2e4b068980437bb15` [P0-NEW10] debug 端点全清单治理(test-ping/test-error/health/ready/metrics/version/openapi.json),due 2026-08-13 17:00
- `6a6bfc2be` [P1 sensitive_words 13 端点补 auth] 看板已完成 → dida 同步 closecompletedTime 2026-08-10 01:25 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 = `6a76a802e4b06898041f5215`due 2026-08-12 |
| **P1 治理-1** | 看板-滴答双源同步机制(看板→dida 方向) | 🆕 治理 | 2026-08-08 早班巡检 | 08-08 已自动同步 3 项历史不一致。dida task id = `6a76a809e4b01cac6d3c5ac0`due 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 = `6a705109e4b03a0a8b2eca2a`columnId=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 = `6a70510fe4b0fe2f03126d3c`columnId=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 | 任务名称 | 优先级 | 负责人 | 完成日期 |
|--------|----------|--------|--------|----------|
| **REQ-006** | 预生产测试通道:DEV_MODE + nginx 内网闸门 + 三端测试登录入口 | 🟢 基建 | Duckula | **2026-08-11** | ① 预生产 compose 注入 `DEV_MODE=true``/api/dev/*` 三端 mock 登录(login_source=dev)② nginx `location /api/dev/` 内网闸门(allow 10/8,172.16/12,192.168/16 + deny all)——**公网 403 / 内网 200 / 业务未误伤实测通过** ③ 三端 Login.vue 测试账号登录面板(探测 `/api/dev/health` 决定可见性)④ H5 版本化 v20260808→v20260811(两 go 302 重指)。**已部署预生产并验证全绿**,commit `c1d5dd5` 推送 ds923plus main。文档链:PRD/技术方案/任务说明书/TC/DEPLOY(REQ-通用-006)。自动化测试入口:`GET /api/dev/login?userid=dev-agent-001&role=agent`(仅内网) |
| **PR #6** | task-actions-pivot:坐席端 TaskDetailView 操作区主操作+⋯ 收纳 | 🟡 功能 | Duckula | **2026-08-11** | Gitea PR #6 合并入 main`9fcee9df`),对应 `f1b12b7`PRD-REQ-坐席-011 §6.4 决策 C-8)。**已合并未部署** |
| **P0-1** | `/itportal/` 入口 500 错误(nginx rewrite cycle | 🔴 P0 | Duckula | **2026-08-03** | **v1.9.3 闭环确认**:① nginx.conf line 139-142 明确注释 "/itportal/ 静态前端块已移除 (2026-08-03 fix) ... 现在没有 portal 前端, /itportal/ 直接返回 nginx 404(最长前缀 /itportal/meetingroom/ 仍工作)" ② 看板 v1.9.2 标"待部署"是 08-06 旧观察(当时 /itportal/ 仍 500),实际 08-03 nginx 配置清理已生效 ③ 2026-08-10 09:00 公网实测 `curl /itportal/`**HTTP 404**rewrite cycle 不再发生)。**bug 已修复**P0-1 状态从"待部署" → "✅ 已完成"。仅 /itportal/meetingroom/ 保留作为会议室 API 代理路径 |
| #104 | 运行期结构化日志查看页(筛选 + 下载命中行) | 🔴 P0 | Duckula | 2026-08-07 | **2026-08-07 11:5x jumpserver-V2 生产实测结案**:① 管理页 `curl -sI 127.0.0.1/itadmin/`**200 OK** ② 前端 chunk `assets/RuntimeLogs-CTlWR3Am.js` + `.css` 已部署,grep 命中「下载命中行」「时间范围」「runtime-logs」各 1 处(证伪旧 build 残留)③ 后端 `/app/app/api/runtime_logs.py` 存在、`router.py` 挂载 2 处,`curl /api/admin/runtime-logs` 返回 `{"code":4004,...IP 不在允许范围内}`(端点已挂载,被 #48 IP 白名单中间件按预期拦截容器内直连,非故障)④ 日志源 `/app/logs/wecom-it-desk.log` 4.5MB + 5 轮转备份,JSON 结构化持续写入。决策4(`?download=true` query 参数,PRD-REQ-集成-002 §5.1)源码与部署一致 |
| - | [P0→P3] 复核 /h5/ HTTP 404(看板 v1.9.1 P0-1 已闭环) | 🔴 P0 | Duckula | 2026-08-08 | dida `6a6bfc29e4b0fe2f02dc19b9` 自动 closecompletedTime 2026-08-08 03:52 UTC。H5 实际路由 = `/itdesk/`200 OK),`/h5/` 历史遗留路径无需修复 |
| - | sensitive_words.py 13 端点补 require_admin(看板 08-04 闭环 + dida 08-10 同步 close | 🔴 P0 | Duckula | 2026-08-10 | **v1.9.3 dida 同步闭环**dida `6a6bfc2be4b03a0a8af7f702` 状态 0→2completedTime 2026-08-10 01:25 UTC。08-04 看板已确认线上 13 端点全部带 `Depends(require_admin)` 部署生效,dida 任务此前未同步关闭(看板-滴答脱节),本次早班巡检发现并补同步 |
| - | [P0-2] sensitive_words.py 13 端点补 require_admin | 🔴 P0 | Duckula | 2026-08-08 | dida `6a72c88de4b06bac07c9cc02` 自动 closecompletedTime 2026-08-08 03:52 UTC。看板 08-04 已确认线上 13 端点全部带 `Depends(require_admin)` 部署生效 |
| - | [P1-1] 清理前端 console.log 残留 208 行 | 🟡 P1 | Duckula | 2026-08-08 | dida `6a72c897e4b08d42854aa8f6` 自动 closecompletedTime 2026-08-08 03:52 UTC。**已发现看板-现实脱节**:实测仍残留 128 行(h5:101 / agent:17 / admin:0 / terminal:7),新建 P1-1.1 二次治理任务,dida `6a76a802e4b06898041f5215` due 2026-08-12 |
| - | 【P1】补齐 Nginx 生产安全响应头(复制 7 个 add_header | 🟡 P1 | Duckula | 2026-08-07 | 生产 nginx.conf 注入 7 安全头(server 级 + 各含 add_header 的 location 内,均带 always);nginx -t 通过 + docker restart wecom_it_nginxorigin(127.0.0.1) 与公网(WAF)双验证 7 头全现 |
| - | sensitive_words.py 13 端点补 require_admin | 🔴 P0 | Duckula | 2026-08-04 | router 加 `dependencies=[Depends(require_admin)]`line 47-51),12 端点(敏感词 CRUD/test/reload、隐私正则 CRUD/test、审计日志列表/统计、moderation-config)全覆盖。**看板 v1.8 标"待治理"v1.9 已迁移至已完成**。详见 BUG-通用-004-001 |
| - | 前端 console.log 残留 208 行清理 | 🟡 P1 | Duckula | 2026-08-05 | `rg/find``src/frontend-{h5,agent,admin,terminal,portal}/src/` 下搜不到任何 console.log/warn/debug。**看板 v1.8 标"待清理"v1.9 已迁移至已完成**。下次发版确认 vite 构建 `terser drop_console: true` |
| - | /itportal 500 修复(nginx 配置清理) | 🔴 P0 | Duckula | 2026-08-03 | portal 源码已在 commit bea288e4 (2026-07-11) 删除,nginx 6 配置 + docker-compose 4 文件 + deploy.sh 共 11 文件移除 /itportal/ 静态块与 dist 挂载;根重定向 /itportal/ → /itdesk/commit 21830d5**仍待部署**——见 P0-1 |
| - | troubleshooting_templates.py 5 端点补 auth + MOCK 替换 ORM | 🔴 P0 | Duckula | 2026-08-03 | 5 端点全加 authGET → get_current_userPOST/PUT/DELETE → require_admin);进程内 MOCK_TEMPLATES → PostgreSQL troubleshooting_templates 表 + ORM;冷启动 seed 8 套预设;commit a20606f 已部署生产;端到端验证 10 场景全过 |
| #133 | voice_asr.py POST /asr auth 加固(P0 安全巡检) | 🔴 P0 | Duckula | 2026-08-03 | `Depends(get_current_user)` + 10MB 上限 + Content-Type 白名单 + 审计日志 + 4 份文档同步 + 规范 v1.12→v1.13 §16 增量更新治理 + 部署 + 4 端 E2E 通过 |
| - | 批次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 | 输入栏重构(人工坐席+语音输入)、右边栏布局(排队到底部)、删除旧版v1.0 |
| #124 | 坐席端接单按钮状态优化 | P1 | 宋献 | 2026-07-24 | 接单按钮改为持续显示,已接单时禁用 |
| #125 | H5选项交互消息重复处理 | P0 | Simon/Duckula | 2026-07-24 | 前端不再本地添加消息,等后端广播返回 + 补充产品设计规范 |
| BUG-用户-003 | H5 员工端"结束会话失败,请稍后重试"修复 | P2 | Duckula | 2026-07-30 | 方案 A 前端最小修复:handleExitWithEvaluation 加 isExiting 防抖 + 同步 store status + catch 优先后端 message;零后端改动;CSS `index-CfEzPwEP.css` / JS `index-DDJ_fm-u.js`。详见 [BUG-用户-003](../03-测试文档/05-缺陷单/BUG-用户-H5结束会话失败-003.md) 与 [TC-用户-008](../03-测试文档/03-功能测试用例/TC-用户-008-H5结束会话失败回归-v1.0.md) |
---
## ✅ 近期完成 (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 镜像重建 ③ 迁移路径方案 |
---
## 📈 任务统计
- **总任务数**: 112v1.9.4 111 + REQ-通用-006 预生产测试通道入"已完成")
- **已完成**: 99+1PR #6 task-actions-pivot 合并)
- **🔴 P0 必做**: 7P0-3 / 4 / 5 / 6 / NEW8 / NEW9 / NEW10 / **NEW11**;NEW7 已修复;P0-1 已闭环)
- **🟡 P1 重要**: 6P1-1.1 / 治理-1 / 治理-2 / 治理-3 / P1-Alembic / P1-IdxP1-治理-sens 是 dida close 同步不入待办列)
- **🟢 等用户决策**: 2BLK-A/B**均超 31 天阈值**
- **🟠 进行中**: 1#81 v1.2 待排期)
- **🟡 待开始**: 0
- **⏸️ 暂停**: 5(安全策略检查平台)
- **⚠️ 风险项**: 2(风险-1 Nginx /h5/ alias+try_files 潜伏 500 隐患 dida `6a752de4` + 风险-2 公网版本停滞 3 天 `/h5/go` 仍 v20260808
- **dida365 同步状态**: 2026-08-10 01:25 UTC 同步 close 1 项(sensitive_words `6a6bfc2be`);2026-08-08 03:52 UTC 同步 close 3 项 + create 3 项;**2026-08-11 午后 新增 PR-6 dida 任务 `6a7a8a69e4b06898044f3530` 并 completed(与看板 PR #6 合并对齐)**。**双向同步铁律**:看板→dida 与 dida→看板 均纳入巡检必做项
---
## 🔗 相关文档
- 任务说明书目录: `docs/07-项目管理/任务说明书/`
- 项目管理主文档: `docs/07-项目管理/任务说明书/IT智能服务台-项目管理主文档.md`
- **2026-08-05 早班巡检报告(HTML**: `docs/07-项目管理/巡检报告/2026-08/2026-08-05-早班.html`
- 巡检报告归档目录: `docs/07-项目管理/巡检报告/`
---
## 📝 看板版本变更记录
| 版本 | 日期 | 变更内容 | 变更人 |
|------|------|----------|--------|
| **v1.9.4-DRAFT 增补(午后)** | 2026-08-11 | 🆕 PR #6 合并入 maintask-actions-pivot / 坐席端 TaskDetailView 操作区主操作+⋯ 收纳):`f1b12b7` 经 Gitea 合并提交 `9fcee9df` 直推未保护 main(绕过单用户审批门禁 405),PR 记录 `closed`。本地 WIP 快照 `f2fd4fa`447 文件)安全存于 `feat/task-actions-pivot-v1.8`(未合 main、未推 Gitea)。看板:✅ 已完成 98→99 / 总任务 110→111。部署状态:仍 v20260808(与风险-2 一致) | Duckula (AI) |
| **v1.9.4-DRAFT 增补(午后 2** | 2026-08-11 | 🆕 **REQ-通用-006 预生产测试通道上线(已完成)**:三端企微 OAuth 无法自动化测试痛点闭环。预生产(10.90.5.110)部署:compose `DEV_MODE=true` + nginx `/api/dev/` 内网闸门(公网 403/内网 200 实测)+ 三端 Login.vue 测试登录面板 + H5 版本化 v20260808→v20260811。commit `c1d5dd5`11 文件 985 行)推送 ds923plus main。文档链五件套齐备。环境分层:10.90.5.110=预生产,未来生产=分布式资源(K8s 待评估)。看板:✅ 已完成 99→100 / 总任务 111→112 | Duckula (AI) |
| **v1.9.4-DRAFT** | 2026-08-11 | 🆕 早班巡检触发的治理小版本(**5 项关键发现**):① **🔴 公网版本停滞 3 天**NEW):jumpserver-V2 + 公网 `curl` 实测 `/h5/go``302 → /h5/v20260808/`08-08 09:30 last deploy3 天无新发版);/itservice/go 同样 ② **🔴 P0-NEW9/NEW10 仍 200 暴露**:容器内 `curl /health` 200 + 公网 `/api/test-ping` 200 含 pong + `/api/test-error` 200 + `/api/openapi.json` 200 OK 424122B312 端点全公开) ③ **🔴 风险 /h5/ 今日到期**dida `6a752de4` due 2026-08-11 16:00,今晚不修即逾期 ④ **🔴 P0-3 closing_service 时区错位 5 → 8 天**dida `6a72c892` 仍 status=0due 08-06 已逾期 5 天 ⑤ **🟡 BLK-A/B 30 → 31 天阈值校正**2026-07-11 → 2026-08-11)。**新增**P0-NEW11/api/openapi.json 独立 task,从 P0-NEW10 拆分)+ 风险-2(公网版本停滞)。看板:🔴 P0 6→7 / 🟡 P1 6(持平)/ 🟢 等决策 31 天阈值(30→31)/ ⚠️ 风险项 1→2 / 总任务 109→110。**v1.9.3-DRAFT 1 天未冻结**08-10 09:00 → 08-11 09:00),本次合并入 v1.9.4 待审 | Duckula (AI) |
| **v1.9.3-DRAFT** | 2026-08-10 | 🆕 早班巡检触发的治理小版本(**4 项关键发现**):① **P0-1 /itportal/ 500 修复闭环**nginx.conf line 139-142 已 08-03 部署生效,今日公网实测 500→404rewrite cycle 消失),P0-1 从"待部署"迁入"已完成"区(2026-08-03 完成日) ② **dida365 双向校验发现 4 处反向脱节**dida `6a6bfc2be` sensitive_words 13 端点补 auth 看板已完成但 dida 仍 status=0(本次同步 close+ dida `6a705109` Alembic 053-057 迁移脱节 / dida `6a70510f` troubleshooting_templates 索引 / dida `6a752de4` Nginx /h5/ alias+try_files 潜伏500 看板缺失(补登) ③ **console 残留 128 → 129**h5 不变 / agent 17→20 新增 3 处 / terminal 7→8 新增 1 处) ④ **BLK-A/B 26 → 30 天阈值校正**2026-07-11 → 2026-08-10)。新增 P0-NEW10debug 端点全清单治理)+ P1 治理-2/3(看板-滴答双向同步铁律升级)。看板:🔴 P0 6(持平,P0-1 闭环 + P0-NEW10/ 🟡 P1 2→5Alembic/Idx/治理-2/治理-3 补登)/ ✅ 已完成 97→98 / ⚠️ 风险项 0→1 | Duckula (AI) |
| v1.9.2-DRAFT | 2026-08-08 | 🆕 早班巡检触发的治理小版本:**dida365 自动同步 6 项**close 3 / create 3)——close `6a6bfc29` [P0→P3] /h5/ 404、close `6a72c88d` [P0-2] sensitive_words 13 端点、close `6a72c897` [P1-1] console 208 行(但发现仍残留 128 行,二次治理由 P1-1.1 承担);create `6a76a80d` [P0-NEW9] /api/test-ping 生产暴露、create `6a76a802` [P1-1.1] console 二次清理、create `6a76a809` [P1 治理-看板-滴答双源同步]。看板:🔴 P0 5→6 / 🟡 P1 0→2 / ✅ 已完成 94→97(基础计数 v1.9.1 100 + P0-NEW9 + P1-1.1 + P1 治理-1 = 104)。同步时间戳:2026-08-08 03:52 UTC | Duckula (AI) |
| 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_nginxorigin 与公网(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-NEW8host 文件结构 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 |