fix(agent): Stop resource watches when users ask#1032
Merged
Conversation
Expose one context-aware action that stops specific or unambiguous resource watches before the agent confirms completion. Cover the terse follow-up flow with unit tests and a model-backed eval.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 5e2ed83. Configure here.
Let the resource-events feature own capability gating, model-facing names, and per-turn tool binding so the shared registry only composes the feature tool set.
Return a structured inverse-action hint when creating a resource watch, then stop every watch through the existing conversation cancellation boundary without listing subscription IDs.
Keep subscription creation native-visible while moving list and stop actions into the resource-watch catalog. Subscription results provide the exact dispatcher call needed for later stop intent.
dcramer
marked this pull request as ready for review
July 24, 2026 22:04
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

When Junior starts watching a pull request, it stores a resource subscription
for the current Slack conversation. The bug was that a later message such as
stopcould be handled as ordinary chat: Junior would say monitoring stopped,but the stored subscription could remain active. The existing cancellation tool
also required an internal subscription ID that users never see.
This replaces that model-facing contract with a no-argument
stopWatchingResourcesaction. It cancels every resource watch owned by thecurrent conversation through the existing bulk-cancellation boundary, and
Junior only confirms after that call succeeds. Stopping everything is
intentional: resource watches are conversation-owned, and the existing Slack
thread opt-out path already uses the same scope.
Creating a watch now returns the exact inverse catalog call, so a later turn can
understand natural requests such as
stopwithout relying on a magic phrase orrediscovering subscription IDs. Creating subscriptions stays directly
available; the less-common list and stop actions live in the deferred tool
catalog. A regression eval creates a pull-request watch, follows it with
stop, and requires the cancellation action before the confirmation.