fix: wechat_bridge 401 false-negative + hermes xmpp_bot filter + M map key

This commit is contained in:
hmo
2026-07-18 11:47:15 +08:00
parent 471a643050
commit 944ce33ac4
2 changed files with 19 additions and 13 deletions
+10 -10
View File
@@ -160,14 +160,14 @@ async function fHealth(){try{
var M={};
M.ejabberd={n:'XMPP服务器',l:'通信层',i:'所有XMPP连接不可用'};
M.xmpp_bot={n:'XMPP消息收发',l:'通信层',i:'所有Agent消息收发中断'};
M.gateway_mohe={n:'Gateway-莫荷',l:'AI网关',i:'莫荷智能体不可用'};
M.gateway_zhiwei={n:'Gateway-知微',l:'AI网关',i:'知微智能体不可用'};
M.hermes_gateway={n:'Hermes AI网关',l:'AI网关',i:'Hermes Agent不可用'};
M.article_processor={n:'微信全文抓取',l:'辅助服务',i:'微信长文章无法读取'};
M.wechat_bridge={n:'莫荷微信桥接',l:'通信层',i:'微信消息收发中断'};
M.omlx_server={n:'OMLX推理服务',l:'AI网关',i:'本地推理服务不可用'};
M.dashboard={n:'管理门户',l:'辅助服务',i:'Dashboard无法访问'};
M.watchdog={n:'进程看门狗',l:'辅助服务',i:'异常进程无自动恢复'};
M['agents-health-check']={n:'健康检查(5min)',l:'定时任务',i:'5分钟级健康检测未运行'};
M['agents-daily-health']={n:'日报健康检查(每日)',l:'定时任务',i:'日报统计未运行'};
M['agents-todo-executor']={n:'待办执行器(10min)',l:'定时任务',i:'定时待办任务未执行'};
var layerOrder=['通信层','AI网关','辅助服务','定时任务'];
var h='<h2>F 系统健康<span class="help-btn" onclick="showModuleHelp(\'health\',\'human\')" title="使用说明">?</span><span class="help-btn ai" onclick="showModuleHelp(\'health\',\'ai\')" title="AI Spec">§</span></h2>';
@@ -196,8 +196,8 @@ async function fHealth(){try{
var issues=[];
for(var i=0;i<exp.length;i++){var e=exp[i];
if(e.critical&&e.expected.indexOf('running')===0&&act[e.name]!=='running'){
var m=M[e.name]||{n:e.name,i:'未知影响'};
issues.push({name:e.name,label:m.n,impact:m.i,status:act[e.name]||'stopped'});}}
var ma=M[e.key||e.name]||{n:e.name,i:'未知影响'};
issues.push({name:e.name,label:ma.n,impact:ma.i,status:act[e.name]||'stopped'});}}
for(var i=0;i<svcs.length;i++){var s=svcs[i];
if(!s.health||!s.health.ok){
if(!issues.some(function(x){return x.name===s.name})){
@@ -215,14 +215,14 @@ async function fHealth(){try{
var layers={};
var added={};
for(var i=0;i<exp.length;i++){var e=exp[i];
var m=M[e.name]||{n:e.name,l:'辅助服务',i:''};
var ly=m.l||'其他';
var ma=M[e.key||e.name]||{n:e.name,l:'辅助服务',i:''};
var ly=ma.l||'其他';
if(!layers[ly])layers[ly]=[];added[e.name]=true;
layers[ly].push({name:e.name,label:m.n,port:e.port,status:act[e.name]==='running'?'running':act[e.name],critical:e.critical});}
layers[ly].push({name:e.name,label:ma.n,port:e.port,status:act[e.name]==='running'?'running':act[e.name],critical:e.critical});}
for(var i=0;i<svcs.length;i++){var s=svcs[i];
if(!added[s.name]){
var rawL=M[s.name]?M[s.name].l:(s.type==='infra'?'通信层':s.type==='gateway'?'AI网关':'辅助服务');
var rawN=M[s.name]?M[s.name].n:s.name;
var rawL=(M[s.name]||{}).l||(s.type==='infra'?'通信层':s.type==='gateway'?'AI网关':'辅助服务');
var rawN=(M[s.name]||{}).n||s.name;
if(!layers[rawL])layers[rawL]=[];
var hStatus=s.health&&s.health.ok?'running':'down';
layers[rawL].push({name:s.name,label:rawN,port:s.port,status:hStatus,critical:false});}}