Skip to content

Commit a0bb779

Browse files
authored
feat: Disable @radon by default (#1793)
`@radon` is a Chat Participant (CP). CPs don't allow for tool calling, can't traverse files, etc, etc. - they are very limited in scope compared to Agents. I assume it's very confusing for new users, that when you use `@radon`, all other tools stop working (`#view_screenshot`, `#view_component_tree`, etc.). It looks like something is broken on our side, while in reality this is simply how it works and there’s no workaround (VS Code [docs](https://code.visualstudio.com/docs/copilot/chat/chat-tools#_whats-the-difference-between-tools-and-chat-participants), and the [proposal](https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.chatParticipantAdditions.d.ts) to fix this in VS Code). `@radon` CP was the very first implementation of Radon AI we've had. It used to be useful, but today it provides no edge over our agentic set of tools. All this, while it blocks the use of all all tools, whether that means reading a file, interacting with git, or checking logs - it's all blocked when the user decides to include `@radon` in their prompt. That’s why I think it’s safe to deprecate it. In my opinion, it causes more harm than good. By `"I assume it's very confusing for new users"` and `"causes more harm than good"`, i mean that I've had **multiple** people come up to me, asking why our AI tools aren't working, only to discover they were trying to do something like `@radon What's on my screen?`. The tipping point was this exact thing happening again - today. **To be discussed further.** ### How Has This Been Tested: - Try using `@radon` in the copilot chat - it doesn't work (that's good). <img width="185" height="107" alt="image" src="https://github.com/user-attachments/assets/1102414e-f13d-4242-9736-079f3232a3c5" /> - Go to settings, type: `Radon AI: Enable Chat Participant` <img width="264" height="87" alt="image" src="https://github.com/user-attachments/assets/399a2f34-6fe3-42d5-9b8f-c05a26bf4b81" /> - Check the first option <img width="376" height="178" alt="image" src="https://github.com/user-attachments/assets/9a8f55a1-d018-421c-a6bd-d5a88b38e7a7" /> - The `@radon` CP is now available in copilot chat. <img width="197" height="110" alt="image" src="https://github.com/user-attachments/assets/ac654bbf-700e-4c2a-b059-f870f3e70f2c" /> ### How Has This Change Been Documented: Documented in #1794
1 parent ffbda8e commit a0bb779

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

packages/vscode-extension/package.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@
283283
"title": "Toggle device appearance (light/dark mode)",
284284
"category": "Radon IDE",
285285
"enablement": "RNIDE.extensionIsActive && RNIDE.panelIsOpen"
286-
},
286+
},
287287
{
288288
"command": "RNIDE.removeLicense",
289289
"title": "Remove license",
@@ -546,6 +546,13 @@
546546
"default": true,
547547
"scope": "window",
548548
"description": "Enables the Radon AI functionality in the extension."
549+
},
550+
"RadonIDE.radonAI.enableChatParticipant": {
551+
"type": "boolean",
552+
"default": false,
553+
"scope": "window",
554+
"markdownDescription": "**[deprecated]** Enables `@radon` AI chat participant.",
555+
"description": "[deprecated] Enables `@radon` AI chat participant."
549556
}
550557
}
551558
}
@@ -1182,6 +1189,7 @@
11821189
},
11831190
"chatParticipants": [
11841191
{
1192+
"when": "RNIDE.chatParticipantEnabled",
11851193
"id": "chat.radon-ai",
11861194
"fullName": "Radon AI",
11871195
"name": "radon",

packages/vscode-extension/src/ai/mcp/RadonMcpController.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ function setGlobalEnableAI(isAIEnabled: boolean) {
3737
commands.executeCommand("setContext", "RNIDE.AIEnabled", isAIEnabled);
3838
}
3939

40+
function setGlobalEnableChat(isChatEnabled: boolean) {
41+
commands.executeCommand("setContext", "RNIDE.chatParticipantEnabled", isChatEnabled);
42+
}
43+
4044
/**
4145
The `vscode.lm.registerTool` API with image support only available in VSCode version 1.105+.
4246
Said API is not implemented on Cursor, Windsurf or Antigravity (it is a stub on these editors).
@@ -99,6 +103,12 @@ export function isAiEnabledInSettings() {
99103
return workspace.getConfiguration("RadonIDE").get<boolean>("radonAI.enabledBoolean") ?? true;
100104
}
101105

106+
export function isChatEnabledInSettings() {
107+
return (
108+
workspace.getConfiguration("RadonIDE").get<boolean>("radonAI.enableChatParticipant") ?? false
109+
);
110+
}
111+
102112
async function radonAIAvailabilityStatus() {
103113
const token = await getLicenseToken();
104114
if (!token) {
@@ -135,6 +145,10 @@ class RadonMcpController implements Disposable {
135145
) {
136146
this.radonAvailabilityStatus = options.radonAvailabilityStatus;
137147

148+
setGlobalEnableChat(isChatEnabledInSettings());
149+
150+
// Registering `@radon` chat regardless of `isChatEnabledInSettings`,
151+
// as visibility of the chat participant is toggled within `package.json`.
138152
registerRadonChat(context, options);
139153

140154
const useStaticRegistering = shouldUseDirectRegistering();
@@ -178,6 +192,9 @@ class RadonMcpController implements Disposable {
178192
// `setGlobalEnableAI` sets availability of both static and local server tools.
179193
setGlobalEnableAI(radonAiEnabled);
180194

195+
// `setGlobalEnableChat` sets availability of `@radon` chat participant
196+
setGlobalEnableChat(isChatEnabledInSettings());
197+
181198
if (!shouldUseDirectRegistering()) {
182199
if (radonAiEnabled) {
183200
this.enableServer();

0 commit comments

Comments
 (0)