Skip to content

Add Gemini to the AI connector modal and the docs - #8492

Draft
dimitrieh wants to merge 8 commits into
mainfrom
ai/gemini-connector-tab
Draft

dimitrieh wants to merge 8 commits into
mainfrom
ai/gemini-connector-tab

Conversation

@dimitrieh

@dimitrieh dimitrieh commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

What

Adds Gemini to the AI connector modal from #8483, and the matching section to the third-party-agents docs.

The modal shipped with Copilot, ChatGPT, Claude and Local, matching the widget on flowfuse.com/ai at the time. Neither offered Gemini.

  • Gemini reaches a custom MCP server through Settings & help → Connected Apps → Add a custom app. The platform supports Dynamic Client Registration, so there is no client ID or secret to enter.
  • Google limits custom apps to Gemini Spark on personal accounts in the US. Both the tab and the docs say so, the way the ChatGPT tab says developer mode needs a paid plan.
  • gemini.svg is the same mark the website carries, copied in because the modal has its own icon directory.

The docs page embeds the website's agent-setup-tabs component, so its Gemini tab appears as soon as FlowFuse/website#5799 lands. The prose section keeps "Where to add it, per agent" from listing fewer agents than the tabs above it offer.

Testing

Checked statically, not by running the app:

  • CLIENTS parses and every entry has a name, a mark, a step title and a URL.
  • The SVG is well formed and its gradient reference resolves inside the file, so it renders standalone as an <img>.
  • The new import sits in path-alphabetical order with the existing three.
  • Not verified: the modal rendered in a running platform. Worth a click-through on the preview: five tabs, Gemini between Claude and Local, the sparkle at tab size, and the copy-URL button still working from that tab.

The modal shipped with Copilot, ChatGPT, Claude and Local, matching the widget
on flowfuse.com/ai at the time. Gemini reaches a custom MCP server through
Settings & help, Connected Apps, Add a custom app, and the platform supports
Dynamic Client Registration, so there is no client ID or secret to enter.

Google limits custom apps to Gemini Spark on personal accounts in the US, which
both the tab and the docs say.

The docs page embeds the website's agent-setup-tabs component, so its Gemini tab
appears as soon as the website change lands. Adding the matching prose section
keeps 'Where to add it, per agent' from listing fewer agents than the tabs above
it offer.
@codecov

codecov Bot commented Sep 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.92%. Comparing base (223aa66) to head (46097cb).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8492      +/-   ##
==========================================
- Coverage   76.92%   76.92%   -0.01%     
==========================================
  Files         460      460              
  Lines       24781    24782       +1     
  Branches     6610     6610              
==========================================
  Hits        19064    19064              
- Misses       5717     5718       +1     
Flag Coverage Δ
backend 76.92% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

A coding agent installs the connector into itself, so its tab is one prompt and
nothing else:

  Add the FlowFuse MCP tool at <this platform>/mcp. Then ask me to complete the
  sign-in in the browser that opens.

The prompt is built from the platform's own origin, the same source the address
step already used, so it is correct on Cloud and self-hosted with nothing for the
reader to edit.

Nothing here goes stale when a client changes how remote servers are added, which
they do at different times and in different ways: one documents an mcp add
subcommand, Codex documents only its config file and its UI.

Modal changes:

- Step one is overridable per client, so a tab can show a prompt instead of the
  bare address. Both go through the same copy path and the same event.
- The tab glyph is chosen per client through <component :is> rather than one
  hardcoded icon. ServerIcon and CommandLineIcon are values now, not registered
  components.

Docs: 'Command-line and editor agents' splits into a coding-agent section leading
with the prompt, and a section for the rest. The hand-written mcp add command
stays for anyone who wants it.
dimitrieh and others added 6 commits September 14, 2026 16:09
Codex takes the OpenAI mark already on the ChatGPT tab, and Claude Code takes the
Anthropic mark already on the Claude tab. Same vendor either way, so the files
already in this directory serve both new tabs.

Replaces the heroicons command-line glyph the tabs shipped with in the previous
commit. With no glyph left but ServerIcon, the dynamic <component :is> and the
matching registration change are both unnecessary, so they go back to what main
had and the diff shrinks to the two new clients plus the overridable step one.
Same defect as the website widget, and worse here because the modal is narrower.
The endpoint block sets white-space: nowrap, which is right for an address you
read left to right and paste, but it sizes the block to its content, so a prompt
runs past the edge of the modal and the half you cannot see is the half that says
what it does.

Only the tabs carrying a prompt get the wrapping variant.
Builds on the coding-agent branch, because the two collide in two places and
merging them in either order went wrong on its own.

The modal's client list auto-merged with no conflict but put Gemini in the wrong
group, after the two coding agents, because both branches insert at the same
point: immediately before the local tab. Gemini is a chat assistant, so it is
anchored on the ChatGPT entry instead.

  claude copilot chatgpt gemini claude-code codex local

The docs did conflict outright. This branch adds a Gemini section directly above
'Command-line and editor agents'; the other branch renames that heading to
'Coding agents'. Resolved by keeping both, in the order a reader wants: the chat
assistants, then Gemini, then coding agents, then the rest.

Merge the coding-agent PR first.
@dimitrieh

Copy link
Copy Markdown
Contributor Author

Updated. This now builds on #8499, because the two collided in two places and merging them in either order went wrong on its own.

  1. The modal client list auto-merged with no conflict but put Gemini after the two coding agents, since both branches insert immediately before the Local tab. Gemini is anchored on the ChatGPT entry now: claude copilot chatgpt gemini claude-code codex local.
  2. The docs did conflict: this branch adds a Gemini section directly above Command-line and editor agents, and Add Claude Code and Codex to the AI connector modal and the docs #8499 renames that heading to Coding agents. Resolved keeping both, in reading order.

Worth noting GitHub reported both PRs as MERGEABLE throughout, because it only tests each against main, never against its sibling.

Merge #8499 first.

@dimitrieh
dimitrieh marked this pull request as draft September 15, 2026 14:01
@dimitrieh

Copy link
Copy Markdown
Contributor Author

converting this to a draft for now until decision has been reached on supporting gemini officially as only gemini spark users could use this.

This branch was successfully deployed

1 active deployment
staging 46097cb3 Deployed Sep 15, 2026 by dimitrieh via Deploy application #11637
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.

1 participant