274 lines
38 KiB
Markdown
274 lines
38 KiB
Markdown
# 项目状态看板
|
||
|
||
> **版本**: v1.9.4-DRAFT | **更新日期**: 2026-08-11(早班巡检同步增补,未冻结)
|
||
> **变更来源**: 2026-08-11 09:00 早班巡检:jumpserver-V2 + 公网实测发现 **公网版本停滞 3 天**(/h5/go 仍 v20260808,08-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 待审)
|
||
> **执行人**: Duckula(AI)· **审核人**: 待 Simon 审核
|
||
> **基础版本**: v1.9.3-DRAFT(2026-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.3(08-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=0,due 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 45683B(08-10 09:26 = v1.9.3)= 本地 45683B 完全匹配;服务器 `/opt/wecom-it-desk/docs-public/kanban/` 目录:当前 45683B(v1.9.3 派生)+ v1.9.0-FROZEN 30765B + v1.9.1-FROZEN 32078B 三份归档。
|
||
- **🟢 容器与资源全绿**(jumpserver-V2 09:00 实测):
|
||
- 5 容器 all healthy:nginx 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 二次治理作为新治理项。
|
||
|
||
> 📐 **文档管理策略(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→20(useScreenCapture/useWebSocket 新增 3 处)/ terminal 7→8(useWebSocket.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→2,completedTime 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 | +1(P0-NEW11 /api/openapi.json 312 端点公开治理) |
|
||
| 🟡 P1 重要 | 6 | 持平 |
|
||
| 🟢 等用户决策 | 2 | 持平(**31 天阈值**,从 30 天修正) |
|
||
| 🟠 进行中 | 1 | 持平 |
|
||
| 🏷️ 看板治理 | 3 | 持平 |
|
||
| 🟡 待开始 | 0 | 持平 |
|
||
| ⏸️ 暂停 | 5 | 持平 |
|
||
| ✅ 已完成 | 98 | 持平 |
|
||
| ⚠️ 风险项 | 2 | +1(公网版本停滞 3 天,/h5/go 仍 v20260808,08-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-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 reload`。**jumpserver-V2 实测**:容器内 `curl -sI http://127.0.0.1/docs/kanban/项目状态看板.html` → **200**(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.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 同步 close(completedTime 2026-08-10 01:25 UTC)
|
||
|
||
**P0-1 闭环**:看板 P0-1 `/itportal/` 500 修复闭环 — nginx.conf line 139-142 已显式注释"/itportal/ 静态前端块已移除 (2026-08-03 fix)",今日公网实测 500→404(rewrite 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→20(useScreenCapture/useWebSocket 新增 3 处,源自 5311a52 合并)+ terminal 7→8(useWebSocket.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_active(H5 列表 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;本次同步 close(completedTime 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 | 任务名称 | 优先级 | 负责人 | 完成日期 |
|
||
|--------|----------|--------|--------|----------|
|
||
| **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` 自动 close,completedTime 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→2,completedTime 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` 自动 close,completedTime 2026-08-08 03:52 UTC。看板 08-04 已确认线上 13 端点全部带 `Depends(require_admin)` 部署生效 |
|
||
| - | [P1-1] 清理前端 console.log 残留 208 行 | 🟡 P1 | Duckula | 2026-08-08 | dida `6a72c897e4b08d42854aa8f6` 自动 close,completedTime 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_nginx;origin(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 端点全加 auth(GET → get_current_user;POST/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-NEW8:host vs git 仓库结构差异** | 部署架构 | P0-NEW7 修复期间触发——本地 git 仓库 `src/backend/` 与主机实际 `app/` 结构不一致,docker-compose.yml 路径配置失配引发 backend 容器启动失败。需 PM 决策:① host 是否同步 git 仓库 ② 是否启用 build context 镜像重建 ③ 迁移路径方案 |
|
||
|
||
---
|
||
|
||
## 📈 任务统计
|
||
|
||
- **总任务数**: 110(v1.9.4 = v1.9.3 109 + P0-NEW11 /api/openapi.json 独立 task)
|
||
- **已完成**: 98(持平)
|
||
- **🔴 P0 必做**: 7(P0-3 / 4 / 5 / 6 / NEW8 / NEW9 / NEW10 / **NEW11**;NEW7 已修复;P0-1 已闭环)
|
||
- **🟡 P1 重要**: 6(P1-1.1 / 治理-1 / 治理-2 / 治理-3 / P1-Alembic / P1-Idx;P1-治理-sens 是 dida close 同步不入待办列)
|
||
- **🟢 等用户决策**: 2(BLK-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 项。**双向同步铁律**:看板→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 | 🆕 早班巡检触发的治理小版本(**5 项关键发现**):① **🔴 公网版本停滞 3 天**(NEW):jumpserver-V2 + 公网 `curl` 实测 `/h5/go` 仍 `302 → /h5/v20260808/`(08-08 09:30 last deploy,3 天无新发版);/itservice/go 同样 ② **🔴 P0-NEW9/NEW10 仍 200 暴露**:容器内 `curl /health` 200 + 公网 `/api/test-ping` 200 含 pong + `/api/test-error` 200 + `/api/openapi.json` 200 OK 424122B(312 端点全公开) ③ **🔴 风险 /h5/ 今日到期**:dida `6a752de4` due 2026-08-11 16:00,今晚不修即逾期 ④ **🔴 P0-3 closing_service 时区错位 5 → 8 天**:dida `6a72c892` 仍 status=0,due 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→404(rewrite 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-NEW10(debug 端点全清单治理)+ P1 治理-2/3(看板-滴答双向同步铁律升级)。看板:🔴 P0 6(持平,P0-1 闭环 + P0-NEW10)/ 🟡 P1 2→5(Alembic/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_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 | |