Skip to content

[Execution Engine] Rehydrate running jobs on page reload#3468

Draft
markus-moser wants to merge 3 commits into2025.4from
feature/rehydrate-running-jobs
Draft

[Execution Engine] Rehydrate running jobs on page reload#3468
markus-moser wants to merge 3 commits into2025.4from
feature/rehydrate-running-jobs

Conversation

@markus-moser
Copy link
Copy Markdown
Contributor

Fixes #3455 — job progress bars disappear on browser reload.

Changes

  • JobRehydrationRegistry: new DI service mapping job name strings to handler factories
  • rehydrate-jobs-loader: app-load hook that fetches running jobs and calls executionEngine.rehydrateRunningJobs(items)
  • ExecutionEngine.rehydrateRunningJobs(): routes each in-progress job to its registered factory, registers the resulting MessageBusJobHandler with the message bus
  • Hide button fix: now calls the backend hide API (including all ancestor job run IDs) so dismissed jobs don't reappear after reload
  • ancestorJobRunIds: tracks the full parent chain through child-job transitions; hide button spreads the full array so all levels are hidden
  • ChildJobStepTracker: gains startAtStep option so rehydrated child runs start at the correct step

Requires studio-backend-bundle PR that exposes jobName on the running-jobs endpoint.

markus-moser and others added 3 commits April 30, 2026 12:11
On app load, fetch in-progress jobs from the backend and re-attach a
MessageBusJobHandler to each so progress bars reappear and continue
updating after a browser reload. Also fixes the hide button to persist
dismissed state to the backend so jobs do not reappear after reload.

- JobRehydrationRegistry maps job names to handler factories
- rehydrate-jobs-loader fetches running jobs at startup
- ancestorJobRunIds tracks parent IDs through child-job transitions
- ChildJobStepTracker gains startAtStep for rehydrated child runs
Send a proper filters object so the backend does not receive a null
FilterParameter. Also filter the response to only rehydrate active jobs
(running / not_started) — finished or failed jobs that have not yet been
dismissed should not spawn new handlers on reload.
@sonarqubecloud
Copy link
Copy Markdown

@markus-moser markus-moser changed the title [Feature]: Rehydrate running jobs on page reload (#3455) [Execution Engine] Rehydrate running jobs on page reload Apr 30, 2026
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