Simon
|
928f4bb337
|
docs: 批次4死代码大扫除完成 + D1合并上线状态
|
2026-07-18 10:35:40 +08:00 |
|
Simon
|
b997a683ce
|
批次4死代码大扫除: 删triage三件套(H5零挂载)+ /approval/keywords端点 + scheduler.py孤儿模块 + 3个.bak文件 + get_reply_stream(~96行)
|
2026-07-18 10:22:07 +08:00 |
|
Simon
|
6a5f01ff90
|
docs: D1合并状态更新(后端双模已部署,待Dify发布v1.3)
|
2026-07-18 02:47:12 +08:00 |
|
Simon
|
6f545fe0b6
|
D1正式合并: 后端双模支持(主Dify读intent_type,无字段降级旧路径)+ ai_service透传路由字段 + Dify Prompt v1.3(新增路由意图标注规则+场景4)
|
2026-07-18 02:46:28 +08:00 |
|
Simon
|
1bfc00559a
|
docs: 批次3管线化完成 + 24h观察期标记 + D1分步实施决策
|
2026-07-18 02:34:51 +08:00 |
|
Simon
|
bfac494b01
|
批次3-P1-3: process_h5_ai_reply管线化重构(主函数312行→76行,try/except 11对→1对,9步骤函数)+ D1止血(路由意图超时15s→8s)
|
2026-07-18 02:31:46 +08:00 |
|
Simon
|
2681e7b0bf
|
docs: P1-7完成 + 批次2全部完成 + C7/C8预存在问题记录
|
2026-07-18 02:19:12 +08:00 |
|
Simon
|
6cbee00dc0
|
P1-7(完成): Redis密码轮换(硬编码→.env注入,32位新密码已生效,老密码WRONGPASS验证失效)+ APP_ENV=production传入容器(修复生产UA校验和IP白名单未生效)
|
2026-07-18 02:16:56 +08:00 |
|
Simon
|
f9be3547d9
|
docs: P1-6 完成状态更新
|
2026-07-18 02:03:55 +08:00 |
|
Simon
|
59609b1d8d
|
P1-6: WS死路由清理+结单确认断链修复 - 删ai_reply_chunk/quiz_diagnostic_answer死路由 + pending_close_request改为resolve_confirm对齐后端 + 挂载ResolveConfirmCard(修复坐席结单员工端不可见的功能断链)
|
2026-07-18 02:03:13 +08:00 |
|
Simon
|
9cbf2650e1
|
P1-4b: Matcher优先级修正 - title匹配提到category之前(title是Dify判断的具体意图,比大类更精确,真实场景: approval_type=账号权限申请+title=VPN账号申请应输出单卡)
|
2026-07-18 01:42:05 +08:00 |
|
Simon
|
6e74631ecb
|
docs: P1-2/P1-4/P1-7部署完成记录 + pack-upload通道铁律
|
2026-07-18 01:34:40 +08:00 |
|
Simon
|
555a16c310
|
docs: 更新12-重构记录状态看板 - P1-2/P1-4/P1-7部分代码完成待部署 + 待部署清单
|
2026-07-18 01:18:11 +08:00 |
|
Simon
|
5dd8436cde
|
P2-1(部分): 删除孤儿组件 InputBox.vue/MessageItem.vue + store死代码 showApprovalCard/closeApprovalCard/approvalCardVisible(P0-3误报确认,组件备份于.workbuddy/tmp/orphan-backup)
|
2026-07-18 01:17:08 +08:00 |
|
Simon
|
2a4db59f02
|
P1-7(部分): 3个潜伏bug修复 - main.py app_root未定义/scheduler.py AsyncIOSScheduler拼写/config.py logger未定义
|
2026-07-18 01:13:33 +08:00 |
|
Simon
|
873f3176e8
|
P1-4: Matcher死分支删除+匹配失败兜底全量卡片 + 补全18模板icon/desc/category字段(v3.0未生效) + title匹配增强
|
2026-07-18 01:10:18 +08:00 |
|
Simon
|
aeb4e0cf39
|
P1-2: 统一Dify调用点 - 删除detect-intent死链路(approval/byod) + routing_service共享client修复连接泄漏 + 前端死代码清理
|
2026-07-18 01:05:20 +08:00 |
|
Simon
|
af392f2bf0
|
P1-1: AIService/AIHandler 真单例 + lifespan close httpx 连接池(修复连接泄漏)
|
2026-07-18 00:36:13 +08:00 |
|
Simon
|
a6518bff03
|
P0-6: Dify超时预算切分 native/proxy 各12s(修复proxy兜底不可达,变量已注入容器)
|
2026-07-18 00:28:15 +08:00 |
|
Simon
|
54481525f4
|
P0-3/P0-4/P0-5: 快捷申请全量卡片端点+RecommendCard崩溃修复+WS全字段透传(部署v16)
|
2026-07-18 00:05:59 +08:00 |
|
Simon
|
18a639919c
|
v3.2: 降级结果已含card_data时跳过重复匹配(避免approval_type=None误报匹配失败)
|
2026-07-17 23:39:20 +08:00 |
|
Simon
|
6932e5a449
|
P0-2: compose environment 声明 DIFY_NATIVE_*(修复 v2.1 原生直连未上线,服务器已验证变量注入)
|
2026-07-17 23:21:28 +08:00 |
|
Simon
|
939de70e48
|
P0-1: 删除 docker-compose-override.yml + deploy-server 两份 workers=2→1(预防性修复,服务器根 compose 已是 workers=1)
|
2026-07-17 23:16:40 +08:00 |
|
Simon
|
3ed86d5fb3
|
v3.1 + 批次0: 智能回复重构基线 - ApprovalMatcher + 关键词降级 + 文档速修 + v4.0任务书面化
|
2026-07-17 23:08:59 +08:00 |
|
Simon
|
5a77a89ab1
|
Merge remote-tracking branch 'origin/main' into feature/message-reliability
pre-toolbar-v1.9
|
2026-07-13 02:18:48 +08:00 |
|
Simon
|
449c6d4875
|
feat: 2026-07-12~13 全量更新 - AI对话链路改造+H5 v4/v5+坐席端v5+上下文感知诊断+知识库迭代3
## H5 员工端 v4 (2026-07-13 00:48 已部署)
- 人工按钮三态文案统一为"人工坐席"
- 按钮位置移至发送键和语音按钮上方(垂直堆叠)
- 点按钮直接调 store.shakeAgent(),删除 CallAgentModal 弹窗动画
- 截图快捷键提示改为"截图->粘贴:Alt+Shift+A-Ctrl+V ---> Ctrl+V"
- 移动端隐藏截图提示(CSS 媒体查询)
- AI转人工提示改为"已为您呼叫人工坐席,请稍等!"
- 坐席接入提示改为"坐席正在查看您的信息,请等待处理回复!"
- 删除"摇铃呼叫坐席"入口和文案
- 删除孤儿组件 MessageList.vue + shake 动画 CSS
## H5 员工端 v5 (2026-07-13 02:08 已部署)
- RightPanel v2.1:删除"软件安装"和"资源权限"标签页
- 移除标签栏,智能推荐(DynamicRecommend)直接展示
- 删除 SoftwareDownloads/ApprovalLinks 引用和相关 CSS
## AI 对话链路全栈改造 Phase 1-6 (已部署)
- Phase 1: Dify JSON输出 + 后端blocking解析 + 双WS推送 + 错误降级
- Phase 2: 关键词收窄(~25强意图词) + 两级分类Prompt + 删除前端checkApprovalIntent
- Phase 3: WS扩展(ai_thinking+dynamic_recommend) + ai_structured气泡 + RightPanel v2 + 选项回传
- Phase 4: VisionService接入 + 图片消息融合(5秒窗口) + 降级策略
- Phase 5: 坐席端ai_thinking指示器 + ai_structured/byod_card渲染 + handleNewMessage修复
- Phase 6: diagnosis_stage(6值) + response_time_ms计时 + 慢响应告警(>10s)
## 坐席端 v5 (2026-07-13 01:38 已部署)
- ai_structured/byod_card 只读渲染
- AI思考指示器 UI
- handleNewMessage 透传 msg_type/extra_data 修复
- 布局优化v2.0: QuickReplyBar L1+L2悬浮 + ReplyBox左右分区 + 右栏260/560px切换
- 键盘快捷键v2.3: 纯数字路由 + ESC分层撤销 + Shift+Space用event.code
## 上下文感知智能诊断闭环 (2026-07-12 已部署)
- 三层诊断(API→Script→AI) + 三段排队(VIP→info_locked→not locked)
- 答题插队 + 五场景关闭
- 迁移052(6表+6列) + queue_service + quiz_service + closing_service
- H5前端: QueueWaiting + RightPanel双Tab + InputBar三态 + ResolveConfirmCard
- 坐席前端: pending_close结单流程 + 信息锁定(Dify步骤完成+有效回答率≥70%)
## 知识库迭代3 (2026-07-12 已部署)
- 分诊交互(H5+坐席+Dify独立应用)
- 拓扑预览(ECharts只读)
- 代答排除(4种匹配器: keyword/regex/intent/category)
- 迁移051 + 44文件43测试通过
## 后端变更
- 6个Python文件改造(h5_ai_task.py/h5.py/ai_service.py/closing_service.py等)
- funny_phrase_service.py: shake/connected/keyword 默认文案更新
- session_service.py: 企微消息文案同步
- 新增: queue.py/quiz.py/triage.py/exclusion_rules.py 等API端点
- 新增: diagnostic.py/quiz.py/triage_session.py 等模型
- 新增: closing_service/queue_service/quiz_service/triage_service 等服务
## 文档更新
- CHANGELOG.md: 新增 [未发布] 区全部变更记录
- 项目管理主文档 v2.5: 新增v0.7.3版本 + 已完成看板 + 最近搞定
- 版本记录: 新增v0.7.3条目
- AI对话链路实施计划: Phase 1-6 全部标记✅已实施
- 新增架构图/时序图/类图(mermaid)
## 部署路径修正
- 服务器项目根路径: /opt/wecom-it-desk/
- 所有前端dist均为ro bind mount,只能在宿主机源路径操作
- 服务器nginx /h5/ 是静态文件服务(非proxy_pass)
- elFinder上传二进制不可靠(MD5不匹配),改用base64分块上传
|
2026-07-13 02:17:03 +08:00 |
|
Simon
|
bea288e414
|
feat: 2026-07-11 全量更新 - 代办集成+会议室预定+知识迭代修复+UI统一+Bug修复
== 已部署上线 (9项) ==
- 代办事项真实数据源集成 (企微审批API 8bug修复链)
- H5/坐席端 Logo样式统一+绿色背景
- 视频引导页修复 (localStorage key v2)
- 坐席端 v9 Vue版本修复 (ElMessage._context)
- 截图按钮 v10 修复 (getDisplayMedia user gesture)
- 扫码样式恢复+H5扫码登录跳转修复
- H5截图快捷键提示
== 代码完成待部署 (3项) ==
- 知识迭代3Bug修复 (#8 POST端点/#7 MERGE幂等/#6 过期检查)
- 会议室预定-小鱼易联终端 (40文件, 40/40测试通过)
- IT资产升级审批推送 (asset_service.py)
== 需求文档 (2项) ==
- 坐席端AI辅助消息框-PRD (4项新功能确认)
- 坐席端布局优化建议 v2.0 (7天计划)
== 新增文档 ==
- 日报-2026-07-11.md
- 知识迭代Bug修复报告-20260711.md
- 会议室预定-部署指南.md
- CHANGELOG.md 更新
== 测试 ==
- test_todo_integration.py: 40/40
- test_meetingroom.py: 40/40
- test_bugfix_ki_suggestions.py: 21/21
v2026.07.11-evening
|
2026-07-11 23:13:10 +08:00 |
|
Simon
|
3d152fc8eb
|
chore: docs update + docker-compose + H5 login
|
2026-07-09 13:46:48 +08:00 |
|
Simon
|
db70a3a6a8
|
feat(admin): AuditLogs + RuntimeLogs views + RBAC role management
|
2026-07-09 13:46:20 +08:00 |
|
Simon
|
d480aa4c1d
|
feat(backend): RBAC admin roles + runtime logs service
|
2026-07-09 13:46:15 +08:00 |
|
Simon
|
7ffc6c8e23
|
chore: add dist-deploy/ dist-v2/ to .gitignore
|
2026-07-09 13:46:08 +08:00 |
|
Simon
|
adc1933038
|
chore: align .workbuddy/memory tracking - keep MEMORY.md tracked, untrack scratch daily log
|
2026-07-09 12:29:05 +08:00 |
|
Simon
|
4c7a8d0278
|
chore: extend .gitignore for residual scratch/build cache (2026-07-09 cleanup)
补充忽略 ops-tools/ dist-new/ _tmp_* *.timestamp-*.mjs fix_redis.sh /test/ backend/scripts/create_test_agent.py, 使工作树仅剩工具态 .workbuddy 改动。
|
2026-07-09 11:52:08 +08:00 |
|
Simon
|
e4e2de47bb
|
docs: test reports + knowledge iteration design + PRDs
提交 OTP/RBAC/Tier0/Tier1/P0+P2 测试报告、方案A E2E 验证、知识库迭代设计(PRD/mermaid/html 原型)、项目状态看板更新; 根配置 docker-compose.yml/mkdocs.yml。
|
2026-07-09 11:50:19 +08:00 |
|
Simon
|
584c975e7f
|
feat(admin): knowledge iteration + ragflow ingestion views
新增 KnowledgeIteration/RagflowIngestion 视图; api/troubleshooting/admin store 适配; 锁定 pnpm-lock.yaml。
|
2026-07-09 11:50:08 +08:00 |
|
Simon
|
018c87e10b
|
feat(agent): approval queue inline card + exclusion panel
新增 ApprovalQueue 视图、ApprovalInlineCard/AgentExclusionPanel 组件与 useApprovalQueue; 对话/API 适配; public 静态资源。
|
2026-07-09 11:50:07 +08:00 |
|
Simon
|
12d89dfb35
|
feat(h5): confidence gate + triage + image uploader + ws composable
新增 ConfidenceGateBanner/ImageUploader/TriageCard 组件与 useConfidenceGate; useH5WebSocket 增强; 对话/API 适配。
|
2026-07-09 11:49:50 +08:00 |
|
Simon
|
5e53146a9a
|
test(backend): unit/integration tests for automation, otp, neo4j, contract
新增自动化审批状态机/执行器/意图路由/会话管理、OTP 绑定流程、neo4j 客户端、响应契约、置信度门禁、环境门控、Tier1 API 等测试。
|
2026-07-09 11:49:50 +08:00 |
|
Simon
|
ead5f83bee
|
feat(backend): knowledge iteration + vision + neo4j + response contract source
dependencies.py 拆分为 dependencies/ 包; 新增 vision/ragflow_ingestion/neo4j 客户端与 h5_ai_task; alembic 045 图置信度迁移; 响应契约统一收尾。
|
2026-07-09 11:47:16 +08:00 |
|
Simon
|
f5374fce9b
|
chore: stop tracking build artifacts & env, extend .gitignore
移除已跟踪的部署 zip / .env.dev / disable_mfa.sql 的版本跟踪(保留磁盘, 全部可逆); .gitignore 新增产物/临时/上传/调试dump/nginx实验/截图忽略规则。
|
2026-07-09 11:47:15 +08:00 |
|
Simon
|
4052e19ff8
|
Merge branch 'feature/message-reliability'
|
2026-07-09 09:28:05 +08:00 |
|
Simon
|
6db1c0eef0
|
fix(ws): echo WebSocket subprotocol on accept to fix browser handshake
后端 ws_manager.connect/connect_employee 与 ws.py 调用未回显客户端协商的 Sec-WebSocket-Protocol (bearer.{token}),导致浏览器以 'Sent non-empty Sec-WebSocket-Protocol header but no response' 拒绝握手,H5/坐席 WS 实际一直走 3s 轮询兜底而非流式打字机。现回显 subprotocol 修复握手。验证:dev 真实浏览器 E2E 343 帧 typewriter;生产 docker cp 部署后日志显示 H5/坐席 WS 连接 [accepted] 且 连接建立。
|
2026-07-09 09:18:17 +08:00 |
|
Simon
|
50cb946e9a
|
chore(dev): H5 dev-stack fixes + revert temp Dify key
dev compose: 挂载 public/ (缺 duckula.webp 导致应用无法挂载)、vite proxy 目标改 VITE_PROXY_TARGET (容器内 localhost 非后端)、CSP 增加 ws://localhost:8000 (dev WS 端口);并还原 Dify key 临时切换 (app-J3s8sHarZQ2SCaNF3xCppliL 经 dify2openai 返回空 SSE,本地 typewriter 主路径需改用 backend/.env 工作 app 才能验证)。
|
2026-07-09 09:16:44 +08:00 |
|
Simon
|
bacd34c34d
|
fix(ws): echo WebSocket subprotocol on accept to fix browser handshake
后端 ws_manager.connect/connect_employee 与 ws.py 调用未回显客户端协商的 Sec-WebSocket-Protocol (bearer.{token}),导致浏览器以 'Sent non-empty Sec-WebSocket-Protocol header but no response' 拒绝握手,H5/坐席 WS 实际一直走 3s 轮询兜底而非流式打字机。现回显 subprotocol 修复握手。验证:dev 真实浏览器 E2E 343 帧 typewriter;生产 docker cp 部署后日志显示 H5/坐席 WS 连接 [accepted] 且 连接建立。
|
2026-07-09 09:16:43 +08:00 |
|
Simon
|
ba068d3642
|
feat: H5非企微UA拦截页 + 旧MFA端点标记废弃 + 响应契约审计通过
- H5 index.html 新增内联UA检测脚本,非企微环境显示拦截页
- CSP 添加 unsafe-inline 以支持拦截脚本
- service_routes.py 标记为 DEPRECATED(实际路由由 router.py 统一注册)
- 响应契约审计:61个端点59个使用 success_response(),2个OAuth例外设计如此
|
2026-07-08 22:25:35 +08:00 |
|
Simon
|
9bb080d5f2
|
fix: 扫码OAuth回调页改为'登录成功'自动确认,不再误导用户等待手动确认
|
2026-07-08 22:00:17 +08:00 |
|
Simon
|
400ce3ddcb
|
feat: OTP首次绑定 + 三端登录修复 + 管理端权限修复 (2026-07-08)
OTP首次绑定:
- 新增统一 OTP 路由 /auth/otp-* (otp.py + router.py)
- 坐席端 OTP 绑定面板 (OtpBindPanel.vue)
- 管理端 OTP 管理列表 (MfaManage.vue)
- agent_login 签发半认证 token 支持首次绑定流程
三端登录修复:
- 坐席/管理端去掉'返回扫码登录'按钮
- 管理端改为二维码始终可见+轮询扫码状态
- 员工端 /itdesk/ 改为 alias 直接服务 H5 (不再301重定向)
- docker-compose 添加 h5 volume 挂载
管理端权限修复:
- 扫码登录改用 get_user_roles() 替代写死 roles=['agent']
- get_user_roles() 增加 agents.role 回退
- 新增 GET /admin/roles/user-roles 端点
- 角色管理页加载用户角色分配数据
文档更新:
- OTP PRD + 系统设计文档
- 故障排查手册 v1.1 (新增6案例)
- nginx 生产基准配置
|
2026-07-08 21:54:57 +08:00 |
|
Simon
|
6f0fbbb066
|
feat(ctrt): 完成 CTRT-01~03 响应契约统一 - 三端拦截器+portal_token清理+调用点适配
|
2026-07-07 22:56:49 +08:00 |
|
Simon
|
d56a9a6079
|
feat(auth): 完成 AUTH-01~04 后端实现 - IP白名单中间件+mfa.py删除+agents.py重构+conftest修复
|
2026-07-07 22:54:17 +08:00 |
|
Simon
|
fab75760e0
|
WIP-CHECKPOINT[auth-refactor]: 固化工程师崩溃前部分成果 + 同树其他未提交WIP(仅源码,不含密钥/二进制)-- 待重激活工程师续作
|
2026-07-07 21:52:11 +08:00 |
|