Skip to content

feat: add job detail and listing pages with real-time status#27

Merged
abrichr merged 1 commit intomainfrom
feat/job-detail-page
Mar 19, 2026
Merged

feat: add job detail and listing pages with real-time status#27
abrichr merged 1 commit intomainfrom
feat/job-detail-page

Conversation

@abrichr
Copy link
Member

@abrichr abrichr commented Mar 19, 2026

Summary

  • Job detail page (/jobs/[id]): Replaces the "Coming Soon" placeholder with a functional page that fetches from job_queue and job_events tables via the existing Supabase browser client. Shows status badge, repo link, branch, cost/budget, task description, error details, metadata (test runner, package manager, loops, attempts, worker), and a visual event timeline with per-type icons. Auto-refreshes every 5 seconds while the job is in progress (queued/claimed/running). Links to the PR when the job succeeds.
  • Jobs listing page (/jobs): New page showing the 20 most recent jobs in a table with status badges, repo name, truncated task, cost, relative timestamps, and links to detail pages.
  • Nav update: Added a "Jobs" link to the landing page and detail page navigation bars.

Technical notes

  • Uses the existing createBrowserClient() from @/lib/supabase (anon key, read-only)
  • Uses @wright/shared types (Job, JobEvent) and constants (TABLES, JOB_STATUS)
  • Simple setInterval polling for MVP (no WebSocket/Realtime subscription)
  • TypeScript compiles cleanly (tsc --noEmit passes)

Test plan

  • Navigate to /jobs — verify the listing page renders (empty state if no jobs, table if jobs exist)
  • Submit a task from /new, follow the "View job status" link — verify the detail page loads
  • Verify status badge colors match expected states (queued=slate, claimed=yellow, running=blue, succeeded=green, failed=red)
  • Verify auto-refresh while job is in progress (status changes should appear within 5 seconds)
  • Verify the PR link button appears when a succeeded job has a pr_url
  • Verify error state renders for an invalid job ID (e.g., /jobs/nonexistent)
  • Verify the "Jobs" link is visible in the landing page nav bar

🤖 Generated with Claude Code

- Replace placeholder job detail page with functional implementation
  that fetches from job_queue and job_events tables via Supabase
- Show status badge, repo URL, task, cost, branch, timestamps, and
  error details
- Display job events as a visual timeline with icons per event type
- Auto-refresh every 5 seconds while job is in progress (queued/
  claimed/running)
- Add jobs listing page at /jobs with recent jobs table (limit 20)
- Add "Jobs" link to landing page and detail page nav bars
- Error state when job not found

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@abrichr abrichr merged commit ac1dad3 into main Mar 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant