Makes long-running Apps tool APIs run properly in background (BL-16350)#7961
Conversation
|
| Filename | Overview |
|---|---|
| src/BloomExe/Publish/Rab/RabPublishApi.cs | Replaced synchronous RegisterAsyncEndpointHandler calls with fire-and-forget Task.Run pattern; TryBeginAction provides atomic concurrency guard; previous review concerns addressed |
| src/BloomExe/Publish/Rab/RabProjectService.cs | Added TryBeginAction (Interlocked.CompareExchange), ClearAction, SendActionCompleteEvent; volatile progress fields; GetStatus exposes active action/progress; Prepare() early-return path does not propagate failure to succeeded flag |
| src/BloomExe/Publish/Rab/RabProjectModels.cs | Added ActiveAction, ActiveActionProgressStage, ActiveActionProgressPercent to RabProjectStatus DTO for mid-session remount recovery |
| src/BloomBrowserUI/publish/Apps/useAppBuilderPublisherScreen.ts | Added busyActionRef, remount-recovery logic in refreshStatus, tab-activation effect reworked, runAction switches to post, actionComplete websocket subscription added |
| src/BloomBrowserUI/publish/Apps/appBuilderShared.ts | Extended IAppBuilderStatus/IAppBuilderStatusApi with activeAction/progress fields; dual-casing normalization in normalizeStatus; kAppBuilderActionCompleteEventId constant added |
| src/BloomBrowserUI/publish/Apps/AppPublisherScreen.tsx | Removed buildIsNeeded from Build button enabled guard so the button is available whenever settings are present, not only when a change is detected |
| src/BloomBrowserUI/react_components/requiresSubscription.tsx | Fixed overlay flashing while featureStatus is loading by adding featureStatus === undefined guard |
| src/BloomExe/web/controllers/FeatureStatusApi.cs | Added requiresSync: false to the feature-status endpoint; safe read-only handler |
Reviews (9): Last reviewed commit: "Makes long-running Apps tool APIs run pr..." | Re-trigger Greptile
c93a48f to
e6b1597
Compare
andrew-polk
left a comment
There was a problem hiding this comment.
devin found some stuff...
@andrew-polk reviewed 8 files and all commit messages, and made 1 comment.
Reviewable status: all files reviewed, 1 unresolved discussion (waiting on JohnThomson).
e6b1597 to
7c80724
Compare
JohnThomson
left a comment
There was a problem hiding this comment.
@JohnThomson made 1 comment and resolved 1 discussion.
Reviewable status:complete! all files reviewed, all discussions resolved (waiting on JohnThomson).
b3453a2 to
2dcfd1e
Compare
Several Apps tool APIs, especially Build, were made to kick off a background task and then return; task completion signaled by websocket. Enhanced so if you return to the tool and build is still running, it gets back into a state indicating the progress of the build. Also, Build is now more appropriately enabled; you don't have to do Customize first if all the required settings are already known.
2dcfd1e to
724ef4a
Compare
JohnThomson
left a comment
There was a problem hiding this comment.
Devin seems to be (finally!) happy as of 724ef4a
@JohnThomson made 1 comment.
Reviewable status: 5 of 8 files reviewed, all discussions resolved (waiting on andrew-polk).
andrew-polk
left a comment
There was a problem hiding this comment.
@andrew-polk reviewed 3 files and all commit messages.
Reviewable status:complete! all files reviewed, all discussions resolved (waiting on JohnThomson).
andrew-polk
left a comment
There was a problem hiding this comment.
Reviewable status:
complete! all files reviewed, all discussions resolved (waiting on JohnThomson).
Several Apps tool APIs, especially Build, were made to kick off a background task and then return; task completion signaled by websocket.
Enhanced so if you return to the tool and build is still running, it gets back into a state indicating the progress of the build.
Also, Build is now more appropriately enabled; you don't have to do Customize first if all the required settings are already known.
This change is
Devin review