Files
2026-07-07 07:27:13 +08:00

103 lines
7.2 KiB
Markdown
Raw Permalink 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.
# Issue Hub AI
AI 驱动的问题调度与流转平台原型,面向“客户端提交问题,中心端自动分析、派发、提醒,并让提交人、处理人、调度员都能看到完整处理过程”的场景。
## 当前范围
- 调度中心 7 个页面:中心调度台、问题池、部门队列、提醒升级、知识复盘、规则配置、管理看板。
- 客户端 5 个页面:我的待办、提交问题、处理人详情、提交人进度追踪、移动端提交/补充。
- AI 调度能力原型:问题 triage、相似问题、推荐部门/处理人、置信度、缺失信息、规则测试、知识草稿和无需沉淀决策。
- AI 调用链路:中心调度台可对选中问题执行 AI 重新分析,调用设置中的 OpenAI-compatible Base URL 并写入新的推荐结果与时间线。
- 业务流转动作:提交、AI 预检查补充、派发、批量派发、批量关闭、批量升级、批量标签、问题池 CSV 导出、退回补充、部门分派、接单、协作、处理人评论、评论工具附件 / 图片 / 链接真实插入、关联任务、处理人详情展开、SLA 查看记录、处理链接复制记录、催办协作人、全局通知中心、全局帮助面板、处理记录 CSV 导出、AI 完整分析报告、转派、处理结果、验收、返工、策略驱动 SLA 扫描、升级提醒、知识合并、无需沉淀标记、规则条件删除。
- 全局状态:hash 路由、全局搜索、本地持久化、重置演示数据、侧栏同步状态、未配置同步反馈和平台设置面板。
- 平台设置:同步服务地址/Token、AI 服务类型/模型/采纳阈值/API Key、SLA 提醒阈值、重复间隔与通知渠道、当前生效角色、权限角色和审计留存策略。
- 权限拦截:路由访问和关键操作会按当前角色校验权限,缺权时保留只读视图并给出统一反馈。
- 同步链路:设置面板可测试同步健康检查、执行 push/pull,并合并服务端返回的问题、时间线和规则等数据;同步请求会携带当前角色和权限声明。
- 分层实现:`src/app` 应用状态与路由,`src/domain` 领域规则,`src/data` 数据仓储/同步边界,`src/features` 页面,`src/shared` 共享布局和组件。
## 设计与文档
- 产品 PRD`docs/ai-dispatch-issue-platform-prd.md`
- 流程图:`docs/ai-dispatch-flowcharts.md`
- images2 高保真设计图:`docs/design/images2/`
- 实现截图索引:`docs/design/implementation-screenshots/README.md`
- 人工定稿审阅入口:`docs/design/review-index.html`
- 人工设计定稿审计:`docs/design/manual-design-freeze-audit.md`
- 最终设计定稿记录:`docs/design/final-design-freeze-record.md`
- 完成度审计:`docs/design/completion-audit.md`
- 视觉差异报告:`docs/design/visual-diff/report.md`
- 实现进度与验证记录:`docs/design/implementation-progress.md`
- 浏览器冒烟说明:`docs/design/browser-smoke.md`
## 前端启动
```pwsh
cd D:\NetPorjects\JavaProject\worknode\issue-hub-ai
npm install
npm run dev -- --host 127.0.0.1 --port 5174
```
浏览器访问:
```text
http://127.0.0.1:5174/#/center-dashboard
```
## 桌面端
项目保留 Tauri 外壳和便携数据文件能力:
```pwsh
npm run tauri dev
```
当前新调度平台主要通过 `src/data/appRepository.ts` 使用浏览器 `localStorage` 演示持久化;`src/data/appSyncRepository.ts` 已抽出服务端同步边界,顶部设置面板可保存同步地址和 Token,配置后可走服务端 push/pull。
## 服务端同步
服务端位于 `server/`,使用 Spring Boot + PostgreSQL。同步服务使用通用 `sync_record` 表,当前支持问题、时间线、AI triage、提醒、部门、人员、规则、规则审计、知识草稿、知识决策,以及旧版附件/AI 分析/action draft。
同步接口需要:
- `Authorization: Bearer <ISSUE_HUB_SYNC_TOKEN>`
- `X-Issue-Hub-Role`
- `X-Issue-Hub-Permissions`,其中必须包含 `manage_settings`
允许调用来源可通过 `ISSUE_HUB_ALLOWED_ORIGINS` 配置,默认允许本地 Vite 和 Tauri 预览端口。
```pwsh
cd D:\NetPorjects\JavaProject\worknode\issue-hub-ai\server
docker compose up -d
$env:ISSUE_HUB_SYNC_TOKEN = "your-sync-token"
$env:ISSUE_HUB_ALLOWED_ORIGINS = "http://127.0.0.1:5174,http://localhost:5174"
mvn spring-boot:run
```
同步地址:
```text
http://localhost:8088
```
## 验证
```pwsh
cd D:\NetPorjects\JavaProject\worknode\issue-hub-ai
npm test
npm run build
npm run smoke:browser
npm run capture:pages
```
最近验证结果:`npx tsc --noEmit` 通过;29 个前端测试文件、104 个测试通过;生产构建通过,保留既有 500 kB chunk 体积提示;浏览器 smoke 通过;逐页实现截图刷新通过;`npm run visual:diff` 最新报告时间为 `2026-06-18T04:47:26.995Z`,自动诊断为 7 页可人工复核、5 页需打磨,人工定稿流程为 4 页建议通过、8 页定稿候选、0 页需人工决策。浏览器 smoke 内置 mock 同步服务覆盖成功同步路径,内置 mock AI 服务覆盖实时 triage 链路、全局通知中心 / 帮助面板、问题池真实分页 / 每页条数切换 / 提交人真实筛选 / CSV 导出、中心调度台真实分页 / 每页条数切换 / 行级派发操作面板、提醒升级风险分组表格 / 升级链路 / 提醒规则 / 最近动作、部门队列真实分页 / 每页条数切换 / 队列设置持久化 / 成员负载明细筛选与分派、我的待办真实分页 / 每页条数切换 / 详情 tab / 关注 / 复制链接 / 返回 / 更多操作、提交人追踪真实分页 / 每页条数切换 / 排序重置、知识复盘真实分页 / 每页条数切换 / 设置持久化、AI 预检查重新检测 / 审计记录 / 分类候选写入 / 流转规则详情、提交问题附件上传 / 草稿保存 / reload 恢复 / 提交后清理、移动端联系 / 催办时间线与补充文本 / 附件持久化、提交人详情展开 / 附件下载记录、处理人详情展开 / SLA 查看记录 / 处理链接复制记录 / 催办协作人时间线 / 评论工具附件和图片入问题附件 / 评论工具链接入评论 / 附件下载记录 / 处理记录 CSV 导出与完整分析报告、问题池批量治理、知识摘要编辑 / 知识无需沉淀标记、规则草稿与变更记录、管理看板 CSV 导出、自定义布局隐藏与持久化、真实数据下钻记录、刷新记录和筛选视图状态持久化、权限角色保存、权限拦截恢复路径、处理人评论 / 关联任务和规则条件删除。
当前机器未安装 `mvn`,且 `server/` 没有 Maven Wrapper;服务端 `mvn test` 需要在安装 Maven 后补跑。
## 安全边界
- 演示数据默认保存在本机浏览器存储,重置演示数据会恢复 seed 数据。
- 同步 Token 只用于调用自托管同步服务,不进入服务端业务记录;同步服务同时检查当前角色权限声明,但 Token 仍是服务端实际凭据。
- AI API Key 通过 Tauri 原生命令 `save_secret/load_secret` 保存;浏览器预览模式仅降级到本机 secret fallback。
- 服务端同步业务对象,不保存 OpenAI API Key、完整 Prompt 日志或 embedding 向量。
- AI 在当前原型中作为建议、草稿、规则预览和分析结果出现,关键状态变更仍由用户操作确认。