fix(telegram): surface callback ingress freshness

This commit is contained in:
ogt
2026-07-16 23:48:06 +08:00
parent 84a3fa17a9
commit 59d03fe277
5 changed files with 128 additions and 8 deletions

View File

@@ -2938,6 +2938,7 @@ function CallbackReplyAuditSummaryPanel({
summary.inbound_callback_mirror_status ?? "no_callback_observed";
const inboundStatusKey = (
inboundStatusRaw === "capturing" ||
inboundStatusRaw === "stale" ||
inboundStatusRaw === "reply_only_gap" ||
inboundStatusRaw === "no_callback_observed"
) ? inboundStatusRaw : "observed";
@@ -2946,6 +2947,8 @@ function CallbackReplyAuditSummaryPanel({
"press_any_telegram_callback_after_rollout";
const inboundNextActionKey = (
inboundNextActionRaw === "none" ||
inboundNextActionRaw ===
"restore_callback_ingress_and_capture_fresh_receipt" ||
inboundNextActionRaw === "press_any_telegram_callback_after_rollout"
) ? inboundNextActionRaw : "observed";
const traceRefAfterGapFirst = formatShortDateTime(
@@ -2973,6 +2976,13 @@ function CallbackReplyAuditSummaryPanel({
no_callback: "border-[#d8d3c7] bg-[#faf9f3] text-[#5f5b52]",
observed: "border-[#9bb6d9] bg-[#eef5ff] text-[#1f5b9b]",
}[snapshotStatus];
const inboundClass = {
capturing: "border-[#9bc7a4] bg-[#f0faf2] text-[#17602a]",
stale: "border-[#d9b36f] bg-[#fff7e8] text-[#8a5a08]",
reply_only_gap: "border-[#e2a29b] bg-[#fff0ef] text-[#9f2f25]",
no_callback_observed: "border-[#d8d3c7] bg-[#faf9f3] text-[#5f5b52]",
observed: "border-[#9bb6d9] bg-[#eef5ff] text-[#1f5b9b]",
}[inboundStatusKey];
return (
<div className="border-b border-[#e0ddd4]">
@@ -2981,6 +2991,55 @@ function CallbackReplyAuditSummaryPanel({
{t("operatorVerdictTitle")}
</p>
</div>
<div className="border-b border-[#d7e2f3] bg-white px-4 py-3">
<div className="flex flex-wrap items-center justify-between gap-2">
<p className="text-xs font-semibold text-[#141413]">
{t("inboundTitle")}
</p>
<span
className={cn(
"inline-flex border px-2 py-0.5 text-xs font-semibold",
inboundClass
)}
>
{t("inboundStatus", { status: inboundStatusLabel })}
</span>
</div>
<div className="mt-3 grid gap-3 sm:grid-cols-2 xl:grid-cols-4">
<div>
<p className="text-[11px] font-semibold text-[#77736a]">
{t("inboundTotal")}
</p>
<p className="mt-1 font-mono text-lg font-semibold text-[#141413]">
{summary.inbound_callback_total ?? 0}
</p>
</div>
<div>
<p className="text-[11px] font-semibold text-[#77736a]">
{t("inboundRecent24h")}
</p>
<p className="mt-1 font-mono text-lg font-semibold text-[#141413]">
{summary.inbound_callback_recent_24h_total ?? 0}
</p>
</div>
<div>
<p className="text-[11px] font-semibold text-[#77736a]">
{t("inboundLatest")}
</p>
<p className="mt-1 text-xs font-semibold leading-5 text-[#141413]">
{latestInboundCallback}
</p>
</div>
<div>
<p className="text-[11px] font-semibold text-[#77736a]">
{t("inboundNext")}
</p>
<p className="mt-1 text-xs font-semibold leading-5 text-[#141413]">
{inboundNextActionLabel}
</p>
</div>
</div>
</div>
<div className="grid gap-px bg-[#e0ddd4] md:grid-cols-2 xl:grid-cols-5">
<div className="bg-white px-4 py-3">
<p className="text-xs font-semibold text-[#77736a]">{t("outbound")}</p>