feat: expand node agent routing and media artifacts

This commit is contained in:
lpf
2026-03-09 01:21:19 +08:00
parent c0fe977bce
commit 2d5a384342
14 changed files with 1291 additions and 81 deletions

View File

@@ -135,6 +135,7 @@ const resources = {
dashboardNodeDispatchTransport: 'Used Transport',
dashboardNodeDispatchFallback: 'Fallback From',
dashboardNodeDispatchDuration: 'Duration',
dashboardNodeDispatchArtifacts: 'Artifacts',
dashboardNodeDispatchError: 'Error',
configNodeP2P: 'Node P2P',
configNodeP2PHint: 'Configure websocket tunnel or WebRTC transport for remote nodes.',
@@ -687,6 +688,7 @@ const resources = {
dashboardNodeDispatchTransport: '实际传输',
dashboardNodeDispatchFallback: '回退来源',
dashboardNodeDispatchDuration: '耗时',
dashboardNodeDispatchArtifacts: '工件',
dashboardNodeDispatchError: '错误',
configNodeP2P: '节点 P2P',
configNodeP2PHint: '为远端节点配置 websocket tunnel 或 WebRTC 传输。',

View File

@@ -79,6 +79,8 @@ const Dashboard: React.FC = () => {
usedTransport: String(item?.used_transport || '-'),
fallbackFrom: String(item?.fallback_from || '').trim(),
durationMs: Number(item?.duration_ms || 0),
artifactCount: Number(item?.artifact_count || 0),
artifactKinds: Array.isArray(item?.artifact_kinds) ? item.artifact_kinds.map((kind: any) => String(kind || '').trim()).filter(Boolean) : [],
ok: Boolean(item?.ok),
error: String(item?.error || '').trim(),
}));
@@ -287,6 +289,12 @@ const Dashboard: React.FC = () => {
<div className="text-zinc-400">{t('dashboardNodeDispatchDuration')}</div>
<div className="text-zinc-200 mt-1">{`${item.durationMs}ms`}</div>
</div>
<div>
<div className="text-zinc-400">{t('dashboardNodeDispatchArtifacts')}</div>
<div className="text-zinc-200 mt-1">
{item.artifactCount > 0 ? `${item.artifactCount}${item.artifactKinds.length ? ` · ${item.artifactKinds.join(', ')}` : ''}` : '-'}
</div>
</div>
<div>
<div className="text-zinc-400">{t('dashboardNodeDispatchError')}</div>
<div className={`mt-1 break-all ${item.error ? 'text-rose-300' : 'text-zinc-500'}`}>