Expose the execution engine module from the SDK - #4015
Conversation
The execution-engine module (MessageBusJobHandler, the job contracts, the progress calculators, step trackers and rehydration registry) lives in core only. A third-party bundle can reach the engine through the DI container but cannot feed the jobs panel that renders a job's progress. Add the sdk/modules/execution-engine barrel and its module federation entry so bundles can register a MessageBusJobHandler and show the same running-jobs and progress UI as core features. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Verdict: Needs changes. The PR adds the execution-engine SDK surface and Module Federation entry.
Changes:
- Exposes execution-engine services, hooks, jobs, calculators, trackers, and rehydration APIs.
- Registers the new SDK module federation path.
Review assessment:
- Root cause addressed at
assets/rsbuild.sdk.config.ts:147and the new barrel. - The SDK boundary is appropriate and additive.
- No existing call sites or compatibility are affected.
index.ts:32omits the requiredPROGRESS_NO_UPDATEsentinel.- Public SDK documentation is missing.
- No behavioral test gap identified; build/type verification remains unverified.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
assets/rsbuild.sdk.config.ts |
Adds the execution-engine federation entry. |
assets/js/src/sdk/modules/execution-engine/index.ts |
Defines the public execution-engine SDK exports. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…ution-engine-module-2026x
Export the PROGRESS_NO_UPDATE sentinel with its result and context types, the StepTrackerState shape and resolveChildJobRunOptions, so the ProgressCalculator, StepTracker and ChildJobStepTracker contracts the barrel already exposes can be implemented from a bundle. Add the bundle recipe to the plugin examples. Co-Authored-By: Claude <noreply@anthropic.com>
Revision summary (2026-09-15)
🤖 Generated with Claude Code |
Drop exports without a consumer outside core: getUniqueId (only used by MessageBusJobHandler.createJob), useJobs (core panel components only), AbstractJob, JobRun (reachable as JobRunList[number]), DefaultStepTracker, ChildJobStepTracker, resolveChildJobRunOptions, ProgressFieldCalculator and BatchedStepProgressCalculator. Export ExecutionEngine as a type only; the instance comes from useExecutionEngine(). Adding exports later is additive, removing them on a release line is a BC break. Adjust the background-job doc page to the trimmed surface and reword the examples index so the in-repo reference does not contradict it. Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Barrel trimmed (2026-09-15,
|
|



The execution-engine module (MessageBusJobHandler, the job contracts, the progress calculators, step trackers and rehydration registry) lives in core only. A third-party bundle can reach the engine through the DI container but cannot feed the jobs panel that renders a job's progress.
Add the sdk/modules/execution-engine barrel and its module federation entry so bundles can register a MessageBusJobHandler and show the same running-jobs and progress UI as core features.
Changes in this pull request
Resolves #
Additional info