Skip to content

Say a connector is not granted, instead of browsing to the vendor - #169

Merged
davidmckayv merged 3 commits into
mainfrom
fix/a-bot-says-a-connector-is-not-granted-instead-of-browsing
Aug 22, 2026
Merged

Say a connector is not granted, instead of browsing to the vendor#169
davidmckayv merged 3 commits into
mainfrom
fix/a-bot-says-a-connector-is-not-granted-instead-of-browsing

Conversation

@davidmckayv

Copy link
Copy Markdown
Contributor

Two things, both from a screenshot of a real conversation.

Google Drive is a tool call, and the Bot went to the website

A Bot holding no grants was told nothing about connectors at all, so it treated a connected vendor as an ordinary website. Asked about Google Drive, the built-in Bot opened drive.google.com, met Google's sign-in page, and asked the person to sign in to an account this deployment had already connected.

The connector existed. The Bot simply was not on it, and nothing said so.

This is the half of the problem #150 did not reach. That one covered a Bot holding some of a vendor's tools and not the one it needed. A Bot holding none got an empty string from grantedToolGuidance and no guidance whatsoever.

Every Bot is now told which vendors this deployment connects to, held or not, and what to do about the ones it does not hold:

This deployment also connects to: google-drive. You hold none of their tools. If a question needs one of them, say plainly that you have not been granted it and that an administrator can grant it on that connector. Do NOT browse to its website: that is not the same thing, your browser is signed in as nobody, and it will meet a sign-in wall that the connector exists to avoid.

Read per request rather than held, because a connector added a minute ago has to count. A store that cannot answer is treated as no connectors: a Bot that cannot be told loses a sentence, not a run.

The huge empty panel where a browser should be

The computer card always reserved a screen-sized frame, so a Bot that had opened nothing still rendered a placeholder the height of a browser window — in the middle of a conversation, above an answer that never involved the browser at all.

The frame is reserved to stop layout jumping while a screen loads. A browser that has opened nothing is the exception: nothing is loading and nothing is coming, so there is no jump to protect against and no reason to take the room. It is a line of text now.

Driven in Chrome, the exact case

General Assistant (no Drive grant), fresh channel:

Open drive.google.com and tell me the name of the first file listed in my Drive.

Before: opened drive.google.com, full-size empty computer panel, "Let me know if you would like me to prompt you to sign in."

After: opens nothing, no computer card at all, and:

"I do not have access to your Google Drive because the Google Drive connector has not been granted to me in this deployment. An administrator can enable it on that connector. Without it, I cannot view or interact with files in your Google Drive."

Tests

Two added:

  • names a connected vendor it holds nothing for, so it can say which
  • does not name a vendor it does hold as one it does not — the list is the deployment's, so it includes what this Bot has, and saying "you hold none of their tools" about a system it holds four tools for would be worse than saying nothing

The existing "says nothing at all when the Bot holds nothing" case still holds for a deployment with no connectors.

Full suite 1201 passing, lint, format, typecheck clean.

A Bot holding no grants was told nothing about connectors at all, so it
treated a connected vendor as an ordinary website. Asked about Google
Drive, the built-in Bot opened drive.google.com, met Google's sign-in
page, and asked the person to sign in to an account this deployment had
already connected. The connector existed. The Bot simply was not on it,
and nothing said so.

That is the half of the same problem the earlier fix did not reach: that
one covered a Bot holding SOME of a vendor's tools and not the one it
needed. A Bot holding none got an empty string.

Every Bot is now told which vendors this deployment connects to, whether
or not it holds them, and what to do about the ones it does not: say
plainly that it has not been granted it, name it, and say an
administrator can grant it on that connector. Not the browser, which for
a vendor with a connector is not a second route to the same place: the
connector exists so the vendor is reached as the person asking, and the
container's browser is signed in as nobody.

Read per request rather than held, because a connector added a minute ago
has to count, and a store that cannot answer is treated as no connectors:
a Bot that cannot be told loses a sentence, not a run.

The computer card no longer reserves a screen-sized frame for a browser
that has opened nothing. That put a placeholder the height of a browser
window into the middle of a conversation, above an answer that never
involved the browser at all. Nothing is loading there and nothing is
coming, so there is no layout jump to protect against and no reason to
take the room.

Driven in Chrome, the exact case: General Assistant, no Drive grant,
asked to open drive.google.com and name the first file. It opens nothing
and answers "the Google Drive connector has not been granted to me in
this deployment. An administrator can enable it on that connector."
Seven of the nine changes landing together carried no entry: the model
refresh, this PR's own two, the declined-handover fix for the Bot in the
box, the takeover flag, the always-available wheel, the lost first
message, and the snapshot store guard. Written here because this one
lands last, so the entry is complete rather than seven near-duplicates
racing each other for the same section.

Credited where the work was somebody else's.
…ector-is-not-granted-instead-of-browsing

# Conflicts:
#	CHANGELOG.md
@davidmckayv
davidmckayv merged commit bef7cd4 into main Aug 22, 2026
@davidmckayv
davidmckayv deleted the fix/a-bot-says-a-connector-is-not-granted-instead-of-browsing branch August 22, 2026 16:25
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