Skip to content

feat: job detail page (v0.2.0 #1)#5

Merged
eclectic-coding merged 7 commits into
mainfrom
feat/job-detail-page
May 25, 2026
Merged

feat: job detail page (v0.2.0 #1)#5
eclectic-coding merged 7 commits into
mainfrom
feat/job-detail-page

Conversation

@eclectic-coding
Copy link
Copy Markdown
Owner

Summary

  • Add GET /jobs/:id show view with full job metadata: class, status badge, queue, priority, Active Job ID, enqueued time, scheduled/blocked-until, and concurrency key — displayed in a two-column card layout matching solid_queue_dashboard
  • Job class names in the index are now links to the detail page (data-turbo-frame="_top" breaks out of the filter Turbo Frame)
  • Discard button lives in the page header (top-right) for ready, scheduled, and blocked jobs
  • Arguments rendered as pretty-printed JSON in the right-hand card
  • Add turbo-rails >= 2.0 as a declared gemspec dependency and require "turbo-rails" in the engine — this provides the turbo_stream view helper used in destroy.turbo_stream.erb (previously missing, causing 500 errors on Discard)
  • Dashboard gem cards are now fully clickable via CSS stretched-link (::after overlay on the header link); individual Queue stat links remain independently clickable via z-index: 1

Test plan

  • All 27 specs pass (bundle exec rake)
  • Navigate to /solid_stack/jobs — job class names are clickable links
  • Click a job class → detail page shows class, queue badge, status badge, priority, enqueued time, Active Job ID, Arguments block
  • Discard Job button in page header works and removes the row from the index via Turbo Stream
  • Breadcrumb "Jobs › Detail" links back to the filtered jobs list
  • Blocked job detail shows Concurrency Key and Blocked Until fields
  • Claimed job detail has no Discard button
  • Dashboard cards are clickable (whole surface navigates to section)

🤖 Generated with Claude Code

eclectic-coding and others added 7 commits May 25, 2026 13:19
Add a show action and view for individual job executions, surfacing
full arguments (pretty-printed JSON), queue, priority, enqueued time,
status badge, Active Job ID, and status-specific metadata (scheduled_at,
concurrency key, blocked-until). Job class names in the list are now
links to the detail page with data-turbo-frame="_top" to break out of
the filter Turbo Frame. Discard button available on the detail page for
ready, scheduled, and blocked jobs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Switch show page from single-column stacked layout to side-by-side
grid (1fr 1fr): Details card left, Arguments card right. Move Discard
button into the page header (top right) with breadcrumb navigation
replacing the back link. Show all fields unconditionally with — for
empty values. Update dl to auto/1fr columns and code block to
pre-wrap with max-height scroll.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Without turbo-rails, Rails doesn't know about text/vnd.turbo-stream.html
so respond_to { format.turbo_stream } raises an unrecognised format error.
Register it once at engine boot; the unless guard avoids double-registration
when the host app already has turbo-rails loaded.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The turbo_stream helper (used in destroy.turbo_stream.erb) is provided
by turbo-rails, not by loading Turbo from a CDN. Add turbo-rails >= 2.0
as a declared gemspec dependency and require it in the engine, matching
the solid_queue_dashboard approach. Remove the now-redundant manual
Mime::Type registration. Expose @execution in destroy so the template
uses @execution.id rather than params[:id].

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Use CSS stretched-link pattern: sqw-gem-card__link::after covers the
entire card, making the whole surface navigate to the section. Queue
card stat links remain independently clickable via position: relative
z-index: 1. Cards also get a hover box-shadow for visual feedback.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
README: add job detail page to features list, add turbo-rails to
requirements, note clickable dashboard cards.
ROADMAP: remove completed job detail page entry from v0.2.0.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@eclectic-coding eclectic-coding merged commit 359e93b into main May 25, 2026
5 checks passed
@eclectic-coding eclectic-coding deleted the feat/job-detail-page branch May 25, 2026 17:42
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