Distinguish Arcade auth blockers from gateway failures (GRO-354) - #10
Merged
teallarson merged 5 commits intoSep 16, 2026
Conversation
teallarson
marked this pull request as ready for review
September 15, 2026 15:28
Contributor
Author
|
cursor review |
Contributor
Author
|
@BugBot review |
teallarson
marked this pull request as draft
September 15, 2026 16:55
Contributor
Author
|
@BugBot review |
teallarson
force-pushed
the
teallarson/stop-fallback-on-arcade-needsauth
branch
from
September 15, 2026 17:49
525faab to
4ae2c95
Compare
Contributor
Author
|
@BugBot review |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high 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 4ae2c95. Configure here.
teallarson
force-pushed
the
teallarson/stop-fallback-on-arcade-needsauth
branch
from
September 15, 2026 19:47
4ae2c95 to
75f74a6
Compare
teallarson
changed the base branch from
main
to
teal/gro-353-add-codexchatgpt-plugin-hooks-for-telemetry-and-lifecycle
September 15, 2026 19:48
2 tasks
teallarson
marked this pull request as ready for review
September 15, 2026 20:41
Add gateway-auth guardrails across try-arcade, arcade-operator, routing guidance, and the Cursor rule, plus a beforeSubmitPrompt hook so Cursor gets the same per-turn reminder Claude already has. Co-authored-by: Cursor <cursoragent@cursor.com>
SESSION_CONTEXT is injected into both Cursor and Claude SessionStart hooks; referring to Cursor only sent Claude users to the wrong place. Co-authored-by: Cursor <cursoragent@cursor.com>
Cursor's beforeSubmitPrompt only allows or blocks prompts; additional_context is ignored. Per-turn needsAuth guidance stays on the always-apply arcade rule. Co-authored-by: Cursor <cursoragent@cursor.com>
Rebase onto GRO-353 so SUBAGENT_CONTEXT includes the same no-substitute auth block as session and prompt guidance, keeping CI marker checks green. Co-authored-by: Cursor <cursoragent@cursor.com>
teallarson
force-pushed
the
teallarson/stop-fallback-on-arcade-needsauth
branch
from
September 15, 2026 20:46
75f74a6 to
ad43a97
Compare
kamath
approved these changes
Sep 16, 2026
teallarson
merged commit Sep 16, 2026
5004aba
into
teal/gro-353-add-codexchatgpt-plugin-hooks-for-telemetry-and-lifecycle
3 checks passed
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.

Linear ticket: GRO-354
What/why
Arcade authentication blockers and gateway failures need different outcomes. An explicit
needsAuthsignal—or a present Arcade namespace with zero tools—should ask the user to authenticate Arcade. A missing, unavailable, or failing gateway is a setup/connection failure and must not be mislabeled as authentication.For external-service work, agents must not silently substitute another MCP server, CLI, or direct API. Arcade-local retry and troubleshooting are still allowed, and app-level sign-in remains separate from gateway authentication.
To smoke-test, disconnect or misconfigure the plugin gateway and confirm the agent reports a setup/connection failure instead of asking for auth. Then trigger an explicit
needsAuthstate and confirm the agent stops for authentication instead of falling back to another connector.Codebase changes
try-arcadeskill, Cursor rule, andarcade-operatoroutcome contract.needs_authonly for explicit Arcade authentication states andfailedwith the actual setup/connection error for unavailable gateways.beforeSubmitPromptremains telemetry-only in Plugin telemetry: routing funnel, discovery link, MCP headers (GRO-305) #11.Additional notes
This PR targets #9; #11 targets this PR. Merge order: #9, then #10, then #11.
npm run verifypasses locally and the GitHubcheckjob is green on head.Note
Low Risk
Changes are prompt, skill, and hook guidance plus tests—no runtime auth or gateway code—so risk is limited to agent behavior when Arcade is misconfigured or unauthenticated.
Overview
Aligns Arcade routing across the arcade-operator agent, Cursor rule, shared hook guidance, and try-arcade skill so agents treat gateway authentication (
needsAuthor a present plugin namespace with zero tools) differently from setup/connection failures (missing, unavailable, or failing gateway).needs_authis reserved for explicit auth blockers (authenticate in host MCP settings);failedcarries the real connection/setup error. Cursor’splugin-arcade-arcadenamespace is documented as equivalent toarcadewhen it points atapi.arcade.dev.When Arcade is blocked, agents must not silently finish via another MCP server, CLI, or direct API; Arcade-local retry/troubleshooting stays allowed, and app-level sign-in remains separate from gateway auth. Hook tests now assert the split wording and require the new markers in injected context.
Reviewed by Cursor Bugbot for commit ad43a97. Bugbot is set up for automated code reviews on this repo. Configure here.