Skip to content

feat: display batch parent/child relationships on Jobs page#841

Merged
chubes4 merged 1 commit intomainfrom
feat/jobs-batch-hierarchy
Mar 17, 2026
Merged

feat: display batch parent/child relationships on Jobs page#841
chubes4 merged 1 commit intomainfrom
feat/jobs-batch-hierarchy

Conversation

@chubes4
Copy link
Member

@chubes4 chubes4 commented Mar 17, 2026

Summary

Implements batch parent/child job hierarchy on the Jobs admin page. Closes #569.

  • Child jobs hidden by default from the top-level list via hide_children filter — no more clutter
  • Batch parent badge shows progress from engine_data.batch_results: "12/15 completed, 2 failed, 1 skipped"
  • Expandable child rows — click a parent job to lazy-load and display its children inline
  • Child job indicators — indented rows with ↳ arrow linking back to the parent

Changes

Backend (3 files)

  • JobsOperations.php — Added parent_job_id and hide_children WHERE clauses to both get_jobs_for_list_table() and get_jobs_count()
  • Jobs.php (REST API) — Registered parent_job_id (integer) and hide_children (boolean) params on GET /jobs, passed through in handle_get_jobs()
  • GetJobsAbility.php — Pass-through for both new filters into the DB layer

Frontend (4 files)

  • api/jobs.jsfetchJobs() now sends hide_children=1 by default; new fetchChildJobs(parentJobId) function
  • queries/jobs.js — New useChildJobs(parentJobId) hook with lazy loading (enabled: !!parentJobId), new children query key
  • JobsTable.jsx — Rewritten with JobRow, BatchBadge, ChildRows components. Batch parents are clickable with expand/collapse state. Child rows render indented with status
  • jobs-page.css — Batch badge styles (complete/warning/progress variants), child row indentation, expand/collapse visual states

Technical Notes

  • parent_job_id column is already indexed (KEY parent_job_id)
  • engine_data.batch and engine_data.batch_results are set by PipelineBatchScheduler — no changes needed there
  • Child jobs are fetched ASC by job_id for chronological display
  • The hide_children filter uses (parent_job_id IS NULL OR parent_job_id = 0) to handle both NULL and zero values

Hide child jobs from the top-level list by default (hide_children filter).
Batch parent jobs show a progress badge with completed/failed/skipped counts
from engine_data.batch_results. Clicking a parent row expands to reveal
child jobs (lazy-loaded via parent_job_id filter). Child rows are indented
with a visual indicator linking them to the parent.

Backend: added parent_job_id and hide_children filters to DB queries,
REST API params, and GetJobsAbility pass-through.

Frontend: new fetchChildJobs API, useChildJobs query hook, rewritten
JobsTable with BatchBadge, ChildRows, and JobRow components.

Closes #569
@github-actions
Copy link

github-actions bot commented Mar 17, 2026

Homeboy Results — data-machine

Lint

⚡ Scope: changed files only

lint (changed files only)

Test

Failure Digest

Test Failure Digest

Autofixability classification

  • Overall: human_needed
  • Autofix enabled: no
  • Autofix attempted this run: no
  • Human-needed failed commands:
    • test
  • Failed commands with available automated fixes:
    • test
  • Automated fixes are disabled for this step. Commands with available fix support in this run: test

Machine-readable artifacts

  • homeboy-lint-summary.json
  • homeboy-test-failures.json
  • homeboy-audit-summary.json
  • homeboy-autofixability.json

⚡ Scope: changed files only

test (changed files only)

Audit

⚡ Scope: changed files only

audit (changed files only)

Tooling versions
  • Homeboy CLI: homeboy 0.81.1+12f68f1f
  • Extension: wordpress from https://github.com/Extra-Chill/homeboy-extensions
  • Extension revision: unknown
  • Action: Extra-Chill/homeboy-action@v1

Homeboy Action v1

@chubes4 chubes4 merged commit 163f4a1 into main Mar 17, 2026
2 of 3 checks passed
@chubes4 chubes4 deleted the feat/jobs-batch-hierarchy branch March 17, 2026 13:29
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.

Jobs page: display batch parent/child relationships

1 participant