Fix floating auth tab strip for transparent-DCR OAuth connect modal#1202
Fix floating auth tab strip for transparent-DCR OAuth connect modal#1202RhysSullivan wants to merge 2 commits into
Conversation
Selfhost browser scenario: a remote MCP integration declaring an oauth2 method is DCR-capable, so the add-connection modal shows the OAuth tab plus the custom-method '+'. Guards that the OAuth tab's body card (the 'No app to choose' DCR explainer) renders under the tab strip instead of the tabs floating with no card. Fails on the pre-fix code.
When a transparent-DCR (or CIMD) OAuth integration also exposed a custom-method '+' (createCustomMethod), the method tab strip rendered but its TabsContent card was gated out by a 'dcrActive ? null' wrapper, leaving the tabs floating with no body and a detached-looking border. That same wrapper also made the in-card 'No app to choose' DCR explainer unreachable dead code. Always render TabsContent and let the inner dcrActive / cimdActive branches show the explainer, so the tab strip gets its card back.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
executor-marketing | 429a026 | Commit Preview URL Branch Preview URL |
Jun 29 2026, 02:12 AM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
executor-cloud | 429a026 | Jun 29 2026, 02:12 AM |
| Register an app below to connect. | ||
| </p> | ||
| </div> | ||
| ) : null} |
There was a problem hiding this comment.
The string sign you in — no client ID or app to pick. contains an em-dash (—). The AGENTS.md style rule bans em-dashes everywhere, including code. Since this line is touched by the diff (it was de-indented), it's a good opportunity to replace the em-dash with a comma, colon, or parenthesis.
Context Used: AGENTS.md (source)
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
| scenario( | ||
| "Connections · the add-connection modal for a transparent-DCR OAuth MCP renders its body card under the tab strip", | ||
| {}, |
There was a problem hiding this comment.
No
needs capability declared for browser dependency
The scenario options are {} but the test yields Browser and drives a full browser session. The e2e/AGENTS.md anatomy examples declare required capabilities via needs (e.g. { needs: ["api"] }). If the runner gates service provisioning on that field, the test could silently skip or error on an environment that doesn't wire up Browser by default. Consider adding needs: ["browser"] (or the equivalent selfhost capability key) to make the dependency explicit and self-documenting.
Context Used: e2e/AGENTS.md (source)
Cloudflare previewTorn down — the PR is closed. |
@executor-js/cli
@executor-js/config
@executor-js/execution
@executor-js/sdk
@executor-js/codemode-core
@executor-js/runtime-quickjs
@executor-js/plugin-file-secrets
@executor-js/plugin-graphql
@executor-js/plugin-keychain
@executor-js/plugin-mcp
@executor-js/plugin-onepassword
@executor-js/plugin-openapi
executor
commit: |
Before / afterCaptured live from the selfhost app by the new e2e scenario ( Before — the OAuth tab and After — the OAuth tab sits on its "No app to choose / supports automatic setup" card: |


Problem
In the add-connection modal, the auth-method tab strip and its body live in a
Tabs->TabsList->TabsContentgroup. TheTabsContentcard was wrapped in{dcrActive ? null : (...)}, so whenever an OAuth integration used transparent dynamic client registration (the MCP OAuth case) the card was suppressed.The tab strip itself still renders whenever a custom-method
+is available. The result: the OAuth tab plus the+floated with no card beneath it, and the tab strip's border looked detached (it jumped straight to "Connection saved to").That same wrapper had a second symptom: the in-card "No app to choose" DCR explainer was written inside a
dcrActive ?branch within the gatedTabsContent, which the outerdcrActive ? nullmade permanently unreachable dead code.Fix
Always render the
TabsContentcard and let the innerdcrActive/cimdActivebranches show their explainer. The tab strip gets its body back, and the DCR/CIMD explainer is now live instead of dead. The change is purely the removal of the{dcrActive ? null : (...)}gate; the rest of the diff is the block de-indenting by two spaces.Before / after
+floating, no card, modal jumps to "Connection saved to".Verification
New selfhost browser scenario
e2e/selfhost/connection-modal-dcr-card.test.ts: registers a remote MCP integration declaring anoauth2method (which makes it DCR-capable), opens the add-connection modal, and asserts the OAuth tab's body card renders under the tab strip. It passes on this branch and fails on the pre-fix code (the asserted copy was unreachable), so it guards the regression. Per-step screenshots and video are captured as run artifacts.