feat(awooop): surface status chain in operator console
All checks were successful
Code Review / ai-code-review (push) Successful in 9s
CD Pipeline / tests (push) Successful in 1m16s
CD Pipeline / build-and-deploy (push) Successful in 3m31s
CD Pipeline / post-deploy-checks (push) Successful in 1m18s

This commit is contained in:
Your Name
2026-05-19 10:13:33 +08:00
parent 30b2f5bd6e
commit 784ebf49ef
8 changed files with 615 additions and 4 deletions

View File

@@ -30,6 +30,10 @@ import {
import { Link } from "@/i18n/routing";
import { IncidentEvidenceHeader } from "@/components/awooop/incident-evidence-header";
import {
AwoooPStatusChainPanel,
type AwoooPStatusChain,
} from "@/components/awooop/status-chain";
import { cn } from "@/lib/utils";
interface RunDetail {
@@ -195,6 +199,7 @@ interface RunDetailResponse {
mcp_gateway?: McpGatewaySummary;
mcp_legacy?: LegacyMcpEvidence;
remediation_history?: RunRemediationHistory;
awooop_status_chain?: AwoooPStatusChain | null;
counts: {
steps: number;
inbound_events: number;
@@ -968,6 +973,8 @@ export default function RunDetailPage({
writesAutoRepairResult={latestRemediation?.writes_auto_repair_result}
/>
<AwoooPStatusChainPanel chain={detail?.awooop_status_chain} />
<RunActionPanel run={run} counts={detail?.counts} emptyLabel={t("empty")} />
<McpGatewayPanel

View File

@@ -8,6 +8,10 @@
import { useState, useEffect, useCallback, useMemo, useRef } from "react";
import { useTranslations } from "next-intl";
import { Link } from "@/i18n/routing";
import {
AwoooPStatusChainPanel,
type AwoooPStatusChain,
} from "@/components/awooop/status-chain";
import {
Activity,
BellOff,
@@ -291,6 +295,7 @@ interface CallbackReplyEvent {
run_state?: string | null;
agent_id?: string | null;
run_detail_href?: string | null;
awooop_status_chain?: AwoooPStatusChain | null;
}
interface CallbackRepliesResponse {
@@ -1358,6 +1363,11 @@ function CallbackReplyEvidencePanel({
<p className="mt-3 line-clamp-2 whitespace-pre-line text-xs leading-5 text-[#77736a]">
{event.content_preview || t("previewEmpty")}
</p>
<AwoooPStatusChainPanel
chain={event.awooop_status_chain}
compact
className="mt-3"
/>
<Link
href={runHref as never}
className="mt-3 inline-flex items-center gap-1.5 border border-[#d8d3c7] bg-[#faf9f3] px-2 py-1 text-xs font-semibold text-[#2e2b26] hover:border-[#1f6feb] hover:bg-[#edf4ff] hover:text-[#0f4fa8]"