The framework reports import progress through importProgressHook, letting a consumer observe each import stage. A course build (buildCourse / AdaptFrameworkBuild) has no equivalent: it exposes only the coarse preBuildHook / postBuildHook, so there's no way to observe progress through the individual build phases (loading course data, assembling the framework source + assets, writing content, compiling, packaging).
This makes it impossible for a consumer to show meaningful build progress — only a spinner.
Proposal: add a buildProgressHook (mirroring importProgressHook) invoked at each build phase with a small { id, labelKey } stage object, and thread an optional correlation token through the build request into buildCourse so a consumer can attribute progress events to a specific build (e.g. to relay them to the client that triggered it). Transport-agnostic — the framework just invokes the hook; consumers relay as needed.
The framework reports import progress through
importProgressHook, letting a consumer observe each import stage. A course build (buildCourse/AdaptFrameworkBuild) has no equivalent: it exposes only the coarsepreBuildHook/postBuildHook, so there's no way to observe progress through the individual build phases (loading course data, assembling the framework source + assets, writing content, compiling, packaging).This makes it impossible for a consumer to show meaningful build progress — only a spinner.
Proposal: add a
buildProgressHook(mirroringimportProgressHook) invoked at each build phase with a small{ id, labelKey }stage object, and thread an optional correlation token through the build request intobuildCourseso a consumer can attribute progress events to a specific build (e.g. to relay them to the client that triggered it). Transport-agnostic — the framework just invokes the hook; consumers relay as needed.