Execution History Modal
New history icon button in each job card/row shows execution history modal with last 50 runs, including:
- Start/finish timestamps with duration
- Status (success/failed) with exit codes
- Output preview (first 100 chars)
- Modal accessible via ESC key to close
Reliable Manual Job Execution
Fixed race condition where manual job execution via Run button could fail silently when confirmation dialog was open during auto-refresh cycles.
Changes:
- Add execution history modal with last 50 runs per job
- Race-free confirmation: capture job URL when button clicked, issue POST directly via htmx.ajax()
- Bundle HTMX v2.0.3 locally (50KB) instead of loading from CDN
- Remove orphaned spinner elements from templates
- Fix quote escaping in confirmation messages
- Add database persistence immediately after job completion/failure events
Technical Details:
- Confirmation dialog now captures POST URL early and issues request directly
- Works reliably even when 5-second auto-refresh swaps DOM during confirmation
- Execution history stored in SQLite with proper indexing for performance