feat: Agent CLI 与终端审计回放全面优化

- Agent CLI: 多轮对话、SSH 长连接、流式推理、Evolver 按用户隔离、历史侧栏
- 终端审计: 回放播放器、命令书签、筛选分页导出、命令输出统计、录制落盘修复
- 修复 session_commands 表迁移、Kill 竞态导致录制丢失、无录制会话回放提示
- 审计历史页只读(移除删除),移除回放弹框录制搜索
This commit is contained in:
Logan committed 2026-07-01 12:13:53 +08:00
1 parent 9a3dd304f7
commit 1acb0c49af
81 files changed
+3916 -1655

No files matched your search

@@ -158,6 +158,11 @@ export function Dashboard() {
avgCpu={Number(serverStats?.avg_cpu ?? 0)}
avgMemory={Number(serverStats?.avg_memory ?? 0)}
avgDisk={Number(serverStats?.avg_disk ?? 0)}
totalCpu={Number(serverStats?.total_cpu ?? 0)}
totalMemory={Number(serverStats?.total_memory ?? 0)}
usedMemory={Number(serverStats?.used_memory ?? 0)}
totalDisk={Number(serverStats?.total_disk ?? 0)}
usedDisk={Number(serverStats?.used_disk ?? 0)}
metrics={metrics}
/>
</div>
@@ -280,11 +280,21 @@ export function ResourceUsageCard({
avgCpu,
avgMemory,
avgDisk,
totalCpu,
totalMemory,
usedMemory,
totalDisk,
usedDisk,
metrics,
}: {
avgCpu: number;
avgMemory: number;
avgDisk: number;
totalCpu: number;
totalMemory: number;
usedMemory: number;
totalDisk: number;
usedDisk: number;
metrics?: JsonData[];
}) {
const realData = buildMetricsFromReal(metrics ?? [], avgDisk);
@@ -314,6 +324,24 @@ export function ResourceUsageCard({
</Badge>
</div>
</div>
{/* 总资源概览:在百分比趋势旁补充具体容量,避免“只看到百分比” // Logan.Li */}
<div className="mt-3 flex flex-wrap items-center gap-3 text-xs">
<div className="flex items-center gap-1.5 px-2.5 py-1.5 rounded-md bg-[var(--dg-bg-tertiary)] border border-[var(--dg-border)]">
<Cpu className="h-3.5 w-3.5 text-[var(--dg-blue)]" />
<span className="text-[var(--dg-text-secondary)]">CPU</span>
<span className="font-medium text-[var(--dg-text-primary)]">{totalCpu} 核</span>
</div>
<div className="flex items-center gap-1.5 px-2.5 py-1.5 rounded-md bg-[var(--dg-bg-tertiary)] border border-[var(--dg-border)]">
<MemoryStick className="h-3.5 w-3.5 text-[var(--dg-green)]" />
<span className="text-[var(--dg-text-secondary)]">内存</span>
<span className="font-medium text-[var(--dg-text-primary)]">{usedMemory} / {totalMemory} GB</span>
</div>
<div className="flex items-center gap-1.5 px-2.5 py-1.5 rounded-md bg-[var(--dg-bg-tertiary)] border border-[var(--dg-border)]">
<HardDrive className="h-3.5 w-3.5 text-[var(--dg-purple)]" />
<span className="text-[var(--dg-text-secondary)]">磁盘</span>
<span className="font-medium text-[var(--dg-text-primary)]">{usedDisk} / {totalDisk} GB</span>
</div>
</div>
</CardHeader>
<CardContent>
<div className="h-[280px]">