Skip to content

Distinguish Arcade auth blockers from gateway failures (GRO-354) - #10

Merged
teallarson merged 5 commits into
teal/gro-353-add-codexchatgpt-plugin-hooks-for-telemetry-and-lifecyclefrom
teallarson/stop-fallback-on-arcade-needsauth
Sep 16, 2026
Merged

teallarson merged 5 commits into
teal/gro-353-add-codexchatgpt-plugin-hooks-for-telemetry-and-lifecyclefrom
teallarson/stop-fallback-on-arcade-needsauth

Conversation

@teallarson

@teallarson teallarson commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Linear ticket: GRO-354

What/why

Arcade authentication blockers and gateway failures need different outcomes. An explicit needsAuth signal—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 needsAuth state and confirm the agent stops for authentication instead of falling back to another connector.

Codebase changes

  • Aligns the shared routing guidance, try-arcade skill, Cursor rule, and arcade-operator outcome contract.
  • Returns needs_auth only for explicit Arcade authentication states and failed with the actual setup/connection error for unavailable gateways.
  • Keeps Cursor's per-turn routing in the always-apply rule; beforeSubmitPrompt remains telemetry-only in Plugin telemetry: routing funnel, discovery link, MCP headers (GRO-305) #11.
  • Adds cross-surface tests that prevent auth and availability wording from being conflated.

Additional notes

This PR targets #9; #11 targets this PR. Merge order: #9, then #10, then #11. npm run verify passes locally and the GitHub check job 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 (needsAuth or a present plugin namespace with zero tools) differently from setup/connection failures (missing, unavailable, or failing gateway).

needs_auth is reserved for explicit auth blockers (authenticate in host MCP settings); failed carries the real connection/setup error. Cursor’s plugin-arcade-arcade namespace is documented as equivalent to arcade when it points at api.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.

@teallarson
teallarson marked this pull request as ready for review September 15, 2026 15:28
@teallarson

Copy link
Copy Markdown
Contributor Author

cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread hooks/routing-guidance.mjs Outdated
@teallarson

Copy link
Copy Markdown
Contributor Author

@BugBot review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread hooks/user-prompt-submit.mjs Outdated
@teallarson
teallarson marked this pull request as draft September 15, 2026 16:55
@teallarson

Copy link
Copy Markdown
Contributor Author

@BugBot review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

@teallarson
teallarson force-pushed the teallarson/stop-fallback-on-arcade-needsauth branch from 525faab to 4ae2c95 Compare September 15, 2026 17:49
@teallarson

Copy link
Copy Markdown
Contributor Author

@BugBot review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ 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.

Comment thread release-please-config.json
@teallarson
teallarson force-pushed the teallarson/stop-fallback-on-arcade-needsauth branch from 4ae2c95 to 75f74a6 Compare September 15, 2026 19:47
@teallarson
teallarson changed the base branch from main to teal/gro-353-add-codexchatgpt-plugin-hooks-for-telemetry-and-lifecycle September 15, 2026 19:48
@teallarson teallarson changed the title Stop agent fallback when Arcade gateway needs auth Distinguish Arcade auth blockers from gateway failures (GRO-354) Sep 15, 2026
@teallarson
teallarson marked this pull request as ready for review September 15, 2026 20:41
teallarson and others added 5 commits September 15, 2026 16:45
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
teallarson force-pushed the teallarson/stop-fallback-on-arcade-needsauth branch from 75f74a6 to ad43a97 Compare September 15, 2026 20:46
@teallarson
teallarson merged commit 5004aba into teal/gro-353-add-codexchatgpt-plugin-hooks-for-telemetry-and-lifecycle Sep 16, 2026
3 checks passed
@teallarson
teallarson deleted the teallarson/stop-fallback-on-arcade-needsauth branch September 16, 2026 13:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants