diff --git a/src/app/(app)/stls/_components/skipped-columns.tsx b/src/app/(app)/stls/_components/skipped-columns.tsx
index 9181847..5644d56 100644
--- a/src/app/(app)/stls/_components/skipped-columns.tsx
+++ b/src/app/(app)/stls/_components/skipped-columns.tsx
@@ -20,6 +20,7 @@ export interface SkippedRow {
sourceChannel: { id: string; title: string };
isMultipart: boolean;
partCount: number;
+ attemptCount: number;
createdAt: string;
}
@@ -107,9 +108,22 @@ export function getSkippedColumns({
),
accessorFn: (row) => row.sourceChannel.title,
},
+ {
+ accessorKey: "attemptCount",
+ header: ({ column }) => ,
+ cell: ({ row }) => {
+ const count = row.original.attemptCount;
+ const variant = count >= 5 ? "destructive" : count > 1 ? "secondary" : "outline";
+ return (
+
+ {count}
+
+ );
+ },
+ },
{
accessorKey: "createdAt",
- header: ({ column }) => ,
+ header: ({ column }) => ,
cell: ({ row }) => (
{new Date(row.original.createdAt).toLocaleDateString()}
diff --git a/src/lib/telegram/queries.ts b/src/lib/telegram/queries.ts
index 6ece96a..898a016 100644
--- a/src/lib/telegram/queries.ts
+++ b/src/lib/telegram/queries.ts
@@ -589,6 +589,7 @@ export async function listSkippedPackages(options: {
sourceMessageId: s.sourceMessageId.toString(),
isMultipart: s.isMultipart,
partCount: s.partCount,
+ attemptCount: s.attemptCount,
createdAt: s.createdAt.toISOString(),
}));
diff --git a/src/lib/telegram/types.ts b/src/lib/telegram/types.ts
index b49f1ab..c36185c 100644
--- a/src/lib/telegram/types.ts
+++ b/src/lib/telegram/types.ts
@@ -55,6 +55,8 @@ export interface SkippedPackageItem {
sourceMessageId: string;
isMultipart: boolean;
partCount: number;
+ /** How many times the worker has tried this source message across cycles. */
+ attemptCount: number;
createdAt: string;
}