feat(web): background work can be followed from the composer banner - #20
Conversation
PR SummaryLow Risk Overview
User and fork docs describe the new UX; tests cover the fold and banner copy. Reviewed by Cursor Bugbot for commit 5b605f2. Bugbot is set up for automated code reviews on this repo. Configure here. |
A thread can hold background work open for hours, and the banner was the only place that admitted it. It named a state and offered one destructive button, leaving what is running and what Stop would end unanswered exactly when they matter. Monitoring is by definition the state with no live agents, so the roster is empty while the banner is up, and a watch loop that is waiting looks identical to one that has wedged. Its progress line is the difference, and it was already recorded. Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
a626085 to
5b605f2
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 5b605f2. Configure here.
| }); | ||
| } | ||
| return live.toSorted((left, right) => left.firstSeenAt.localeCompare(right.firstSeenAt)); | ||
| } |
There was a problem hiding this comment.
Orphaned tasks shown as live
Medium Severity
foldLiveBackgroundTasks rebuilds liveness only from retained task.* rows and has no session-boundary handling, while the server registry clears on session.exited (and on restart). After a new session starts fresh background work, older non-terminal rows still look live, so Details can list dead items and claim Stop ends everything shown.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit 5b605f2. Configure here.




A thread can hold background work open for hours, and the composer banner was the only place that admitted it. It named a state and offered one destructive button, which left two questions unanswered at exactly the moment they matter: what is still running, and what am I about to kill. People who could not answer either one stopped everything to find out, which is the opposite of what the feature is for.
Monitoring was the worse of the two states. It is by definition the state with no live agents, so the roster people would otherwise check is empty precisely while that banner is up, and a watch loop that is waiting on something looks identical to one that has quietly wedged. Its progress line is the difference, and it was already being recorded, just never shown.
Stop needed to say what it does. Ending every live item at once is the only granularity that exists, and a button that does not admit that is a trap.