马一丁

Update Report Engine Log Display Logic

@@ -4525,7 +4525,7 @@ @@ -4525,7 +4525,7 @@
4525 scheduleReportStreamReconnect(taskId); 4525 scheduleReportStreamReconnect(taskId);
4526 }; 4526 };
4527 4527
4528 - const events = ['status', 'stage', 'chapter_status', 'chapter_chunk', 'warning', 'html_ready', 'completed', 'error', 'heartbeat']; 4528 + const events = ['status', 'stage', 'chapter_status', 'chapter_chunk', 'warning', 'error', 'debug', 'html_ready', 'completed', 'heartbeat'];
4529 events.forEach(evt => { 4529 events.forEach(evt => {
4530 reportEventSource.addEventListener(evt, (event) => dispatchReportStreamEvent(evt, event)); 4530 reportEventSource.addEventListener(evt, (event) => dispatchReportStreamEvent(evt, event));
4531 }); 4531 });
@@ -4630,7 +4630,10 @@ @@ -4630,7 +4630,10 @@
4630 } 4630 }
4631 break; 4631 break;
4632 case 'warning': 4632 case 'warning':
4633 - appendReportStreamLine(payload.message || '检测到可重试的网络波动', 'warn'); 4633 + appendReportStreamLine(payload.message || '检测到可重试的网络波动', 'warn', { badge: 'WARNING' });
  4634 + break;
  4635 + case 'debug':
  4636 + appendReportStreamLine(payload.message || 'Debug信息', 'info', { badge: 'DEBUG' });
4634 break; 4637 break;
4635 case 'html_ready': 4638 case 'html_ready':
4636 appendReportStreamLine('HTML渲染完成,正在刷新预览...', 'success'); 4639 appendReportStreamLine('HTML渲染完成,正在刷新预览...', 'success');
@@ -4664,18 +4667,29 @@ @@ -4664,18 +4667,29 @@
4664 setGenerateButtonState(false); 4667 setGenerateButtonState(false);
4665 break; 4668 break;
4666 case 'error': 4669 case 'error':
4667 - appendReportStreamLine(payload.message || '任务失败', 'error'); 4670 + appendReportStreamLine(payload.message || '任务失败', 'error', { badge: 'ERROR' });
4668 safeCloseReportStream(); 4671 safeCloseReportStream();
4669 updateReportStreamStatus('error'); 4672 updateReportStreamStatus('error');
4670 reportTaskId = null; 4673 reportTaskId = null;
4671 setGenerateButtonState(false); 4674 setGenerateButtonState(false);
4672 break; 4675 break;
4673 case 'heartbeat': 4676 case 'heartbeat':
  4677 + // 只有在非重连状态时才更新为connected并显示心跳消息
  4678 + // 避免在错误/重连期间显示误导性的"连接正常"消息
  4679 + const statusEl = document.getElementById('reportStreamStatus');
  4680 + const currentState = statusEl ? statusEl.dataset.state : null;
  4681 +
  4682 + // 如果当前处于重连或错误状态,忽略心跳消息
  4683 + if (currentState === 'reconnecting' || currentState === 'error') {
  4684 + break;
  4685 + }
  4686 +
4674 updateReportStreamStatus('connected'); 4687 updateReportStreamStatus('connected');
4675 - appendReportStreamLine(payload.message || '流式连接正常,请稍候...', 'info', {  
4676 - badge: 'SSE',  
4677 - genericMessage: '流式连接正常,请耐心等待...'  
4678 - }); 4688 + // 心跳消息不显示在控制台,避免刷屏
  4689 + // appendReportStreamLine(payload.message || '流式连接正常,请稍候...', 'info', {
  4690 + // badge: 'SSE',
  4691 + // genericMessage: '流式连接正常,请耐心等待...'
  4692 + // });
4679 break; 4693 break;
4680 default: 4694 default:
4681 if (payload.message) { 4695 if (payload.message) {