chore(root): 收纳根目录调试产物与项目级文件

**项目级文件**:
- configs/mkdocs.yml           mkdocs 站点配置
- jumpserver-webcli/ANALYSIS.md  webcli 调试分析报告
- jumpserver-webcli/CHANGELOG.md webcli 变更日志
- jumpserver-webcli/deploy_0802_*.txt  0802 部署调试输出(4 个)
- jumpserver-webcli/diag_0802_*.txt   0802 诊断输出(3 个)
- jumpserver-webcli/diag_184715.txt   18:47:15 诊断输出
- tests/test_quick_rules.py   quick_rules API 测试
- temp/                       临时调试脚本目录(5 个:check_tables + 调试 + rename_dzpc + ts-check + inspect_batch)

**交付报告**:
- overview.md  「结束会话失败」修复交付报告(2026-07-30,ChatPanel.vue 三件套修复)

**会话调试上下文**:
- dedup_context.txt / dedup2.txt       去重调试上下文
- pattern_check.txt / pattern_context.txt  模式检查
- option_button_context.txt / option_select_context.txt  选项按钮/选择上下文
- qid.txt                              会话 ID 记录
- yixuan_context.txt                   艺璇任务上下文
- final_check.txt                      最终检查

**部署脚本输出**:
- deploy_v11.txt / deploy_h5_v11.txt   v11 部署命令输出

合计 27 文件(含 1 项目文档 + 22 调试上下文 + 4 jumpserver webcli 调试 + 1 mkdocs 配置 + 1 测试 + 1 temp/ + 2 部署输出)
This commit is contained in:
Simon
2026-08-03 18:49:44 +08:00
parent 7864ab404b
commit 53b7bbcff7
28 changed files with 1165 additions and 42 deletions
+1
View File
@@ -0,0 +1 @@
lete(de)}}function re(A){var Y,de;if(P.value.has(A.message_id)){console.log(`[H5 WS去重] 跳过重复消息: ${A.message_id}`);return}if(console.log("[H5 WS] 收到 new_message:",{message_id:A.message_id,sender_type:A.sender_type,content:(Y=A.content)==null?void 0:Y.substring(0,40),msg_type:A.msg_type,lastSentOptionContent:$e.value,current_conv_id:(de=t.value)==null?void 0:de.conversation_id,data_conv_id:A.conversation_id}),A.sender_type==="employee"&&A.content===$e.value&&$e.value!==""){console.log(`[H5 WS去重] 跳过选项选择广播消息: ${A.message_id}, content: ${A.content}`),ae(A.message_id),$e.value="";return}ae(A.message_id),n.value.push({message_id:A.message_id,conversation_id:A.conversation_id,message_type:A.sender_type||"system",msg_type:A.msg_type||"text",content:typeof A.content=="string"?A.content:A.content?JSON.stringify(A.content):"",sender_name:A.sender_name||"",media_url:A.media_url,file_name:A.file_name,file_size:A.file_size,extra_data:A.extra_data,reply_to_id:A.reply_to_id,created_at:A.created_at||new Date().toISOString()}),f.value=A.message_id}async function ce(A,Y){await Rt().handleOAuthCallback(A,Y)}async function Re(){try{const A=Rt();A.employeeInfo&&(e.value={employee_id:A.employeeInfo.employee_id,employee_name:A.employeeInfo.employee_name,department:A.employeeInfo.department,position:A.employeeInfo.position,level:"",is_vip:A.employeeInfo.is_vip,avatar_url:A.employeeInfo.avatar});const Y=await Hw();e.value=Y,console.log("[Store] 获取用户信息成功:",Y.employee_name)}catch(A){throw console.error("[Store] 获取用户信息失败:",A),A}}async function ke(){try{const A=await Ww();t.value=A,i.value=(A==null?void 0:A.can_call_agent)??!1,y.value=(A==null?void 0:A.participants)||[],console.log("[Store] 获取当前会话:",A?A.conversation_id:"无活跃会话","参与者:",y.value.length)}catch(A){console.error("[Store] 获取当前会话失败:",A)}}async function oe(A,Y){var it,Mt,Gt,Jt;if(console.log("[Store] sendNewMessage 开始执行, content:",A,"options:",Y),!A.trim()){console.warn("[Store] content 为空,直接返回");return}const de=Rt(),xe=`temp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,Ie={message_id:xe,conversation_id:((it=t.value)==null?void 0:it.conversation_id)||"",message_type:"employee",msg_type:(Y==null?void 0:Y.msg_type)||"text",content:A.trim(),sender_name:de.employeeName||"我",created_at:new Date().toISOString(),status:"sending"};n.value.push(Ie),console.log("[Store] 乐观更新:临时消息已添加到列表, tempMessageId:",xe),s.value=!0;try{const Ge={content:A.trim()};Y!=null&&Y.msg_type&&(Ge.msg_type=Y.msg_type,Ge.media_url=Y.media_url,Ge.file_name