Wave 7: Integrate JobDevTools into job detail page (FINAL)
- Task #18: Complete integration of all JobDevTools components - Updated job detail page (/jobs/[id]) with full JobDevTools UI - Connected SSE stream for real-time structured logs + metrics - Added crash-report and retry API routes for Next.js - Added format conversion for old/new log formats - Added DevTools links to JobsView modal and actions column - Wired up CrashReport retry with auto-fix parameters - Integrated SessionPanel for fingerprint display - Integrated MetricsDashboard for real-time charts Job DevTools implementation complete: 18/18 tasks Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
'use client';
|
||||
|
||||
import React, { useState, useMemo, useEffect, useCallback } from 'react';
|
||||
import Link from 'next/link';
|
||||
import {
|
||||
useReactTable,
|
||||
getCoreRowModel,
|
||||
@@ -822,6 +823,18 @@ export default function JobsView({ jobs, onSelectJob, isLoadingJob, onRefresh }:
|
||||
);
|
||||
})()}
|
||||
|
||||
{/* View DevTools */}
|
||||
<Link
|
||||
href={`/jobs/${job.job_id}`}
|
||||
className="p-1.5 bg-purple-100 text-purple-700 rounded-lg hover:bg-purple-200 transition-colors"
|
||||
title="View DevTools"
|
||||
onClick={(e) => e.stopPropagation()}
|
||||
>
|
||||
<svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" />
|
||||
</svg>
|
||||
</Link>
|
||||
|
||||
{/* View Logs */}
|
||||
{(() => {
|
||||
const isStuck = job.status === 'running' &&
|
||||
@@ -1491,6 +1504,16 @@ export default function JobsView({ jobs, onSelectJob, isLoadingJob, onRefresh }:
|
||||
View Reviews
|
||||
</button>
|
||||
)}
|
||||
<Link
|
||||
href={`/jobs/${monitoredJob.job_id}`}
|
||||
onClick={() => stopMonitoring()}
|
||||
className="py-2.5 px-6 bg-purple-600 text-white rounded-lg font-semibold hover:bg-purple-700 transition-colors flex items-center gap-2"
|
||||
>
|
||||
<svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" />
|
||||
</svg>
|
||||
DevTools
|
||||
</Link>
|
||||
<button
|
||||
onClick={() => stopMonitoring()}
|
||||
className={`${monitoredJob.status === 'completed' && monitoredJob.reviews_count ? '' : 'flex-1'} py-2.5 px-6 bg-gray-900 text-white rounded-lg font-semibold hover:bg-gray-800 transition-colors`}
|
||||
|
||||
Reference in New Issue
Block a user