diff --git a/apps/code/src/renderer/features/inbox/components/detail/ReportDetailPane.tsx b/apps/code/src/renderer/features/inbox/components/detail/ReportDetailPane.tsx
index fde806a44..a6bf1908b 100644
--- a/apps/code/src/renderer/features/inbox/components/detail/ReportDetailPane.tsx
+++ b/apps/code/src/renderer/features/inbox/components/detail/ReportDetailPane.tsx
@@ -15,6 +15,7 @@ import {
XIcon,
} from "@phosphor-icons/react";
import { Box, Flex, ScrollArea, Text, Tooltip } from "@radix-ui/themes";
+import { EXTERNAL_LINKS } from "@renderer/utils/links";
import { getDeeplinkProtocol } from "@shared/deeplink";
import type {
ActionabilityJudgmentArtefact,
@@ -294,6 +295,43 @@ export function ReportDetailPane({ report, onClose }: ReportDetailPaneProps) {
gap="2"
className="min-w-0 @2xl:px-6 @3xl:px-8 @4xl:px-10 @5xl:px-12 @lg:px-4 @md:px-3 @xl:px-5 px-2 @2xl:pt-3 @3xl:pt-4 @4xl:pt-5 @5xl:pt-6 @lg:pt-2 @md:pt-1.5 @xl:pt-2.5 pt-1 @2xl:pb-6 @3xl:pb-8 @4xl:pb-10 @5xl:pb-12 @lg:pb-4 @md:pb-3 @xl:pb-5 pb-2"
>
+ {/* ── Failed report error ──────────────────────────── */}
+ {report.status === "failed" && (
+
+
+
+
+ Report processing failed
+
+
+ There was an issue processing this report. This has been
+ reported to our team.
+
+ To get in touch with the team directly,{" "}
+
+ join our Discord
+
+ .
+
+
+
+ )}
+
{/* ── Description ─────────────────────────────────────── */}
{report.status !== "ready" ? (
diff --git a/apps/code/src/renderer/features/inbox/components/list/FilterSortMenu.tsx b/apps/code/src/renderer/features/inbox/components/list/FilterSortMenu.tsx
index 225280aa2..e383772de 100644
--- a/apps/code/src/renderer/features/inbox/components/list/FilterSortMenu.tsx
+++ b/apps/code/src/renderer/features/inbox/components/list/FilterSortMenu.tsx
@@ -70,6 +70,7 @@ const FILTERABLE_STATUSES: SignalReportStatus[] = [
"ready",
"pending_input",
"in_progress",
+ "failed",
"candidate",
"potential",
];
diff --git a/apps/code/src/renderer/features/inbox/stores/inboxSignalsFilterStore.test.ts b/apps/code/src/renderer/features/inbox/stores/inboxSignalsFilterStore.test.ts
index f48727f6d..00693aa44 100644
--- a/apps/code/src/renderer/features/inbox/stores/inboxSignalsFilterStore.test.ts
+++ b/apps/code/src/renderer/features/inbox/stores/inboxSignalsFilterStore.test.ts
@@ -12,6 +12,7 @@ describe("inboxSignalsFilterStore", () => {
"ready",
"pending_input",
"in_progress",
+ "failed",
"candidate",
"potential",
],
@@ -29,6 +30,7 @@ describe("inboxSignalsFilterStore", () => {
"ready",
"pending_input",
"in_progress",
+ "failed",
"candidate",
"potential",
]);
@@ -119,6 +121,7 @@ describe("inboxSignalsFilterStore", () => {
"ready",
"pending_input",
"in_progress",
+ "failed",
"candidate",
"potential",
]);
diff --git a/apps/code/src/renderer/features/inbox/stores/inboxSignalsFilterStore.ts b/apps/code/src/renderer/features/inbox/stores/inboxSignalsFilterStore.ts
index 624deb407..c53c4c9e5 100644
--- a/apps/code/src/renderer/features/inbox/stores/inboxSignalsFilterStore.ts
+++ b/apps/code/src/renderer/features/inbox/stores/inboxSignalsFilterStore.ts
@@ -25,6 +25,7 @@ const DEFAULT_STATUS_FILTER: SignalReportStatus[] = [
"ready",
"pending_input",
"in_progress",
+ "failed",
"candidate",
"potential",
];
diff --git a/packages/agent/src/handoff-checkpoint.ts b/packages/agent/src/handoff-checkpoint.ts
index cc0abd067..8ef36e7f2 100644
--- a/packages/agent/src/handoff-checkpoint.ts
+++ b/packages/agent/src/handoff-checkpoint.ts
@@ -18,7 +18,7 @@ export interface HandoffCheckpointTrackerConfig {
logger?: Logger;
}
-type ArtifactTransfer = T & {
+type ArtifactTransfer> = T & {
rawBytes: number;
wireBytes: number;
};