diff --git a/src/app/[locale]/dashboard/logs/_components/provider-chain-popover.tsx b/src/app/[locale]/dashboard/logs/_components/provider-chain-popover.tsx
index 4f27ca0ae..25aa462a4 100644
--- a/src/app/[locale]/dashboard/logs/_components/provider-chain-popover.tsx
+++ b/src/app/[locale]/dashboard/logs/_components/provider-chain-popover.tsx
@@ -24,8 +24,6 @@ import { getFake200ReasonKey } from "./fake200-reason";
interface ProviderChainPopoverProps {
chain: ProviderChainItem[];
finalProvider: string;
- /** Whether a cost badge is displayed, affects name max width */
- hasCostBadge?: boolean;
/** Callback when a chain item is clicked in the popover */
onChainItemClick?: (chainIndex: number) => void;
}
@@ -121,13 +119,12 @@ function getItemStatus(item: ProviderChainItem): {
export function ProviderChainPopover({
chain,
finalProvider,
- hasCostBadge = false,
onChainItemClick,
}: ProviderChainPopoverProps) {
const t = useTranslations("dashboard");
const tChain = useTranslations("provider-chain");
- // “假 200”识别发生在 SSE 流式结束后:此时响应内容可能已透传给客户端,但内部会按失败统计/熔断。
+ // "假 200"识别发生在 SSE 流式结束后:此时响应内容可能已透传给客户端,但内部会按失败统计/熔断。
const hasFake200PostStreamFailure = chain.some(
(item) => typeof item.errorMessage === "string" && item.errorMessage.startsWith("FAKE_200_")
);
@@ -143,9 +140,6 @@ export function ProviderChainPopover({
// Fallback for empty string
const displayName = finalProvider || "-";
- // Determine max width based on whether cost badge is present
- const maxWidthClass = hasCostBadge ? "max-w-[140px]" : "max-w-[180px]";
-
// Check if this is a session reuse
const isSessionReuse =
chain[0]?.reason === "session_reuse" || chain[0]?.selectionMethod === "session_reuse";
@@ -164,7 +158,7 @@ export function ProviderChainPopover({
const singleRequestItem = chain.find(isActualRequest);
return (
-
+
diff --git a/src/app/[locale]/dashboard/logs/_components/usage-logs-table.tsx b/src/app/[locale]/dashboard/logs/_components/usage-logs-table.tsx
index 06241c052..3cc622299 100644
--- a/src/app/[locale]/dashboard/logs/_components/usage-logs-table.tsx
+++ b/src/app/[locale]/dashboard/logs/_components/usage-logs-table.tsx
@@ -198,7 +198,6 @@ export function UsageLogsTable({
log.providerName ||
tChain("circuit.unknown")
}
- hasCostBadge={hasCostBadge}
onChainItemClick={(chainIndex) => {
setDialogState({
logId: log.id,
diff --git a/src/app/[locale]/dashboard/logs/_components/virtualized-logs-table.tsx b/src/app/[locale]/dashboard/logs/_components/virtualized-logs-table.tsx
index aa196dad7..cb815ae8e 100644
--- a/src/app/[locale]/dashboard/logs/_components/virtualized-logs-table.tsx
+++ b/src/app/[locale]/dashboard/logs/_components/virtualized-logs-table.tsx
@@ -212,12 +212,12 @@ export function VirtualizedLogsTable({
{/* Fixed header */}
-
+
{t("logs.columns.time")}
{hideUserColumn ? null : (
{t("logs.columns.user")}
@@ -225,7 +225,7 @@ export function VirtualizedLogsTable({
)}
{hideKeyColumn ? null : (
{t("logs.columns.key")}
@@ -233,7 +233,7 @@ export function VirtualizedLogsTable({
)}
{hideSessionIdColumn ? null : (
{t("logs.columns.sessionId")}
@@ -241,21 +241,21 @@ export function VirtualizedLogsTable({
)}
{hideProviderColumn ? null : (
{t("logs.columns.provider")}
)}
{t("logs.columns.model")}
{hideTokensColumn ? null : (
{t("logs.columns.tokens")}
@@ -263,7 +263,7 @@ export function VirtualizedLogsTable({
)}
{hideCacheColumn ? null : (
{t("logs.columns.cache")}
@@ -271,7 +271,7 @@ export function VirtualizedLogsTable({
)}
{hideCostColumn ? null : (
{t("logs.columns.cost")}
@@ -279,14 +279,14 @@ export function VirtualizedLogsTable({
)}
{hidePerformanceColumn ? null : (
{t("logs.columns.performance")}
)}
{t("logs.columns.status")}
@@ -349,14 +349,14 @@ export function VirtualizedLogsTable({
)}
>
{/* Time */}
-
+
{/* User */}
{hideUserColumn ? null : (
{log.userName}
@@ -366,7 +366,7 @@ export function VirtualizedLogsTable({
{/* Key */}
{hideKeyColumn ? null : (
{log.keyName}
@@ -375,7 +375,7 @@ export function VirtualizedLogsTable({
{/* Session ID */}
{hideSessionIdColumn ? null : (
-
+
{log.sessionId ? (
@@ -404,7 +404,7 @@ export function VirtualizedLogsTable({
{/* Provider */}
{hideProviderColumn ? null : (
-
+
{log.blockedBy ? (
@@ -468,7 +468,6 @@ export function VirtualizedLogsTable({
log.providerName ||
tChain("circuit.unknown")
}
- hasCostBadge={hasCostBadge}
onChainItemClick={(chainIndex) => {
setDialogState({
logId: log.id,
@@ -502,7 +501,7 @@ export function VirtualizedLogsTable({
)}
{/* Model */}
-
+
@@ -526,7 +525,7 @@ export function VirtualizedLogsTable({
{/* Tokens */}
{hideTokensColumn ? null : (
-
+
@@ -554,7 +553,7 @@ export function VirtualizedLogsTable({
{/* Cache */}
{hideCacheColumn ? null : (
-
+
@@ -622,7 +621,7 @@ export function VirtualizedLogsTable({
{/* Cost */}
{hideCostColumn ? null : (
-
+
{isNonBilling ? (
"-"
) : log.costUsd != null ? (
@@ -669,7 +668,7 @@ export function VirtualizedLogsTable({
{/* Performance */}
{hidePerformanceColumn ? null : (
-
+
{(() => {
const rate = calculateOutputRate(
log.outputTokens,
@@ -728,7 +727,7 @@ export function VirtualizedLogsTable({
)}
{/* Status */}
-