mirror of
https://github.com/cline/cline.git
synced 2026-09-05 05:02:27 +08:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| abe17361e0 | |||
| 7e0004b9e8 | |||
| 26ce90c8b3 | |||
| 96697c93c5 | |||
| 9c33356d2e |
@@ -632,7 +632,6 @@ function translateAskMessage(
|
||||
case "new_task":
|
||||
case "condense":
|
||||
case "summarize_task":
|
||||
case "report_bug":
|
||||
case "api_req_failed":
|
||||
case "mistake_limit_reached":
|
||||
case "command_output":
|
||||
|
||||
@@ -844,22 +844,6 @@ export const ChatMessage: React.FC<ChatMessageProps> = ({ message, mode, isStrea
|
||||
)
|
||||
}
|
||||
|
||||
// Report bug request
|
||||
if (type === "ask" && ask === "report_bug" && text) {
|
||||
return (
|
||||
<Box flexDirection="column" marginBottom={1} width="100%">
|
||||
<DotRow color={COLORS.primaryBlue} flashing={partial === true && isStreaming}>
|
||||
<Text bold color={COLORS.primaryBlue}>
|
||||
Cline wants to create a Github issue:
|
||||
</Text>
|
||||
</DotRow>
|
||||
<Box flexDirection="column" paddingLeft={2}>
|
||||
<Text color="gray">{text}</Text>
|
||||
</Box>
|
||||
</Box>
|
||||
)
|
||||
}
|
||||
|
||||
// Skip other message types
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -45,9 +45,6 @@ const FEATURE_TIPS: FeatureTipItem[] = [
|
||||
{
|
||||
text: "Cline can browse websites — ask it to test your local dev server in the browser.",
|
||||
},
|
||||
{
|
||||
text: "Use /reportbug to quickly file a GitHub issue with diagnostic context included.",
|
||||
},
|
||||
{
|
||||
text: "Try 'npm i -g cline' to manage tasks on a Kankan board — orchestrate coding agents across worktrees.",
|
||||
},
|
||||
|
||||
@@ -21,7 +21,6 @@ Type `/` in the chat input to see available slash commands:
|
||||
| `/newrule` | Create a rule file to teach Cline your preferences |
|
||||
| `/deep-planning` | Investigate codebase, plan thoroughly, then create implementation task |
|
||||
| `/explain-changes` | Generate AI explanations for any git diff (VS Code only) |
|
||||
| `/reportbug` | Report a bug with diagnostic info |
|
||||
|
||||
### /newtask
|
||||
|
||||
@@ -62,12 +61,6 @@ This command is only available in VS Code.
|
||||
|
||||
Use `/explain-changes` when reviewing code, onboarding to a new codebase, or understanding what changed. For the full list of use cases and examples, see [Explain Changes Command](#explain-changes).
|
||||
|
||||
### /reportbug
|
||||
|
||||
`/reportbug` collects diagnostic information and helps you report issues with Cline. It gathers relevant context like your configuration, recent errors, and system details to make bug reports more useful for the development team.
|
||||
|
||||
Use `/reportbug` when you encounter unexpected behavior, crashes, or bugs you want to report.
|
||||
|
||||
## Custom Workflows
|
||||
|
||||
Beyond the built-in slash commands, you can create your own workflow files that work the same way. Store Markdown files in `.clinerules/workflows/` and invoke them with `/your-workflow.md`.
|
||||
|
||||
@@ -261,5 +261,5 @@ These same patterns work for any project, from simple scripts to full applicatio
|
||||
## Need Help?
|
||||
|
||||
- **Start a fresh conversation**: Type `/new` in the chat input to begin a new task
|
||||
- **Report issues**: Use `/reportbug` to help us improve
|
||||
- **Report issues**: Open a GitHub issue in the [Cline repository](https://github.com/cline/cline/issues)
|
||||
- **Get support**: Join our [Discord community](https://discord.gg/cline)
|
||||
|
||||
-1
@@ -23,7 +23,6 @@ export const toolUseNames = [
|
||||
"attempt_completion",
|
||||
"new_task",
|
||||
"condense",
|
||||
"report_bug",
|
||||
"new_rule",
|
||||
"web_fetch",
|
||||
] as const
|
||||
|
||||
+2
-2
@@ -561,8 +561,8 @@ CAPABILITIES
|
||||
|
||||
====
|
||||
|
||||
If the user asks for help or wants to give feedback inform them of the following:
|
||||
- To give feedback, users should report the issue using the /reportbug slash command in the chat.
|
||||
If the user asks for help or wants to give feedback inform them of the following:
|
||||
- To give feedback, users can open a GitHub issue in the Cline repository.
|
||||
|
||||
When the user directly asks about Cline (eg 'can Cline do...', 'does Cline have...') or asks in second person (eg 'are you able...', 'can you do...'), first use the web_fetch tool to gather information to answer the question from Cline docs at https://docs.cline.bot.
|
||||
- The available sub-pages are \`getting-started\` (Intro for new coders, installing Cline and dev essentials), \`model-selection\` (Model Selection Guide, Custom Model Configs, Bedrock, Vertex, Codestral, LM Studio, Ollama), \`features\` (Auto approve, Checkpoints, Cline rules, Drag & Drop, Plan & Act, Workflows, etc), \`task-management\` (Task and Context Management in Cline), \`prompt-engineering\` (Improving your prompting skills, Prompt Engineering Guide), \`cline-tools\` (Cline Tools Reference Guide, New Task Tool, Remote Browser Support, Slash Commands), \`mcp\` (MCP Overview, Adding/Configuring Servers, Transport Mechanisms, MCP Dev Protocol), \`enterprise\` (Cloud provider integration, Security concerns, Custom instructions), \`more-info\` (Telemetry and other reference content)
|
||||
|
||||
@@ -11,7 +11,6 @@ option java_package = "bot.cline.proto";
|
||||
// SlashService provides methods for managing slash commands
|
||||
service SlashService {
|
||||
// Sends button click message
|
||||
rpc reportBug(StringRequest) returns (Empty);
|
||||
rpc condense(StringRequest) returns (Empty);
|
||||
|
||||
// Get available slash commands for autocomplete (used by CLI)
|
||||
|
||||
@@ -30,7 +30,8 @@ enum ClineAsk {
|
||||
USE_MCP_SERVER = 11;
|
||||
NEW_TASK = 12;
|
||||
CONDENSE = 13;
|
||||
REPORT_BUG = 14;
|
||||
reserved 14;
|
||||
reserved "REPORT_BUG";
|
||||
SUMMARIZE_TASK = 15;
|
||||
ACT_MODE_RESPOND = 16;
|
||||
USE_SUBAGENTS = 17;
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
import { Empty, StringRequest } from "@shared/proto/cline/common"
|
||||
import { Controller } from ".."
|
||||
|
||||
/**
|
||||
* Report bug slash command logic
|
||||
* Compatibility shim for downstream integration workflows that may temporarily
|
||||
* mirror file updates without propagating deletions.
|
||||
*
|
||||
* The original slash-command bridge has been removed.
|
||||
*/
|
||||
export async function reportBug(controller: Controller, _request: StringRequest): Promise<Empty> {
|
||||
await controller.task?.handleWebviewAskResponse("yesButtonClicked")
|
||||
return Empty.create()
|
||||
}
|
||||
export {}
|
||||
|
||||
@@ -195,37 +195,6 @@ Below is the user's input when they indicated that they wanted to create a new C
|
||||
</explicit_instructions>\n
|
||||
`
|
||||
|
||||
export const reportBugToolResponse = () =>
|
||||
`<explicit_instructions type="report_bug">
|
||||
The user has explicitly asked you to help them submit a bug to the Cline github page (you MUST now help them with this irrespective of what your conversation up to this point in time was). To do so you will use the report_bug tool which is defined below. However, you must first ensure that you have collected all required information to fill in all the parameters for the tool call. If any of the the required information is apparent through your previous conversation with the user, you can suggest how to fill in those entries. However you should NOT assume you know what the issue about unless it's clear.
|
||||
Otherwise, you should converse with the user until you are able to gather all the required details. When conversing with the user, make sure you ask for/reference all required information/fields. When referencing the required fields, use human friendly versions like "Steps to reproduce" rather than "steps_to_reproduce". Only then should you use the report_bug tool call.
|
||||
The report_bug tool can be used in either of the PLAN or ACT modes.
|
||||
|
||||
The report_bug tool call is defined below:
|
||||
|
||||
Description:
|
||||
Your task is to fill in all of the required fields for a issue/bug report on github. You should attempt to get the user to be as verbose as possible with their description of the bug/issue they encountered. Still, it's okay, when the user is unaware of some of the details, to set those fields as "N/A".
|
||||
|
||||
Parameters:
|
||||
- title: (required) Concise description of the issue.
|
||||
- what_happened: (required) What happened and also what the user expected to happen instead.
|
||||
- steps_to_reproduce: (required) What steps are required to reproduce the bug.
|
||||
- api_request_output: (optional) Relevant API request output.
|
||||
- additional_context: (optional) Any other context about this bug not already mentioned.
|
||||
|
||||
Usage:
|
||||
<report_bug>
|
||||
<title>Title of the issue</title>
|
||||
<what_happened>Description of the issue</what_happened>
|
||||
<steps_to_reproduce>Steps to reproduce the issue</steps_to_reproduce>
|
||||
<api_request_output>Output from the LLM API related to the bug</api_request_output>
|
||||
<additional_context>Other issue details not already covered</additional_context>
|
||||
</report_bug>
|
||||
|
||||
Below is the user's input when they indicated that they wanted to submit a Github issue.
|
||||
</explicit_instructions>\n
|
||||
`
|
||||
|
||||
export const explainChangesToolResponse = () =>
|
||||
`<explicit_instructions type="explain_changes">
|
||||
The user has asked you to explain code changes. You have access to a tool called **generate_explanation** that opens a multi-file diff view with AI-generated inline comments explaining code changes between two git references.
|
||||
|
||||
@@ -114,5 +114,5 @@ This session is being continued from a previous conversation that ran out of con
|
||||
${summaryText}.
|
||||
|
||||
Please continue the conversation from where we left it off without asking the user any further questions. Continue with the last task that you were asked to work on. Pay special attention to the most recent user message when responding rather than the initial task message, if applicable.
|
||||
If the most recent user's message starts with "/newtask", "/smol", "/compact", "/newrule", or "/reportbug", you should indicate to the user that they will need to run this command again.
|
||||
If the most recent user's message starts with "/newtask", "/smol", "/compact", or "/newrule", you should indicate to the user that they will need to run this command again.
|
||||
`
|
||||
|
||||
@@ -773,7 +773,7 @@ CAPABILITIES
|
||||
====
|
||||
|
||||
If the user asks for help or wants to give feedback inform them of the following:
|
||||
- To give feedback, users should report the issue using the /reportbug slash command in the chat.
|
||||
- To give feedback, users can open a GitHub issue in the Cline repository.
|
||||
|
||||
When the user directly asks about Cline (eg 'can Cline do...', 'does Cline have...') or asks in second person (eg 'are you able...', 'can you do...'), first use the web_fetch tool to gather information to answer the question from Cline docs at https://docs.cline.bot.
|
||||
- The available sub-pages are \`getting-started\` (Intro for new coders, installing Cline and dev essentials), \`model-selection\` (Model Selection Guide, Custom Model Configs, Bedrock, Vertex, Codestral, LM Studio, Ollama), \`features\` (Auto approve, Checkpoints, Cline rules, Drag & Drop, Plan & Act, Workflows, etc), \`task-management\` (Task and Context Management in Cline), \`prompt-engineering\` (Improving your prompting skills, Prompt Engineering Guide), \`cline-tools\` (Cline Tools Reference Guide, New Task Tool, Remote Browser Support, Slash Commands), \`mcp\` (MCP Overview, Adding/Configuring Servers, Transport Mechanisms, MCP Dev Protocol), \`enterprise\` (Cloud provider integration, Security concerns, Custom instructions), \`more-info\` (Telemetry and other reference content)
|
||||
@@ -792,7 +792,7 @@ RULES
|
||||
- Be sure to consider the type of project (e.g. Python, JavaScript, web application) when determining the appropriate structure and files to include. Also consider what files may be most relevant to accomplishing the task, for example looking at a project's manifest file would help you understand the project's dependencies, which you could incorporate into any code you write.
|
||||
- When making changes to code, always consider the context in which the code is being used. Ensure that your changes are compatible with the existing codebase and that they follow the project's coding standards and best practices.
|
||||
- When you want to modify a file, use the replace_in_file or write_to_file tool directly with the desired changes. You do not need to display the changes before using the tool.
|
||||
- Use Markdown **only where semantically correct** (e.g., \`inline code\`, \`\`\`code fences\`\`\`, lists, tables). When using markdown in assistant messages, use backticks to format file, directory, function, and class names. Use \( and \) for inline math, \[ and \] for block math.
|
||||
- Use Markdown **only where semantically correct** (e.g., \`inline code\`, \`\`\`code fences\`\`\`, lists, tables). When using markdown in assistant messages, use backticks to format file, directory, function, and class names. Use ( and ) for inline math, [ and ] for block math.
|
||||
- Do not ask for more information than necessary. Use the tools provided to accomplish the user's request efficiently and effectively. When you've completed your task, you must use the attempt_completion tool to present the result to the user. The user may provide feedback, which you can use to make improvements and try again.
|
||||
- You are only allowed to ask the user questions using the ask_followup_question tool. Use this tool only when you need additional details to complete a task, and be sure to use a clear and concise question that will help you move forward with the task. However if you can use the available tools to avoid having to ask the user questions, you should do so. For example, if the user mentions a file that may be in an outside directory like the Desktop, you should use the list_files tool to list the files in the Desktop and check if the file they are talking about is there, rather than asking the user to provide the file path themselves.
|
||||
- When the user is being vague, you should be proactive about asking clarifying questions using the ask_followup_question tool to ensure you understand their request. However, if you can infer the user's intent based on the context and available tools, you should proceed without asking unnecessary questions
|
||||
@@ -800,7 +800,7 @@ RULES
|
||||
- The user may provide a file's contents directly in their message, in which case you shouldn't use the read_file tool to get the file contents again since you already have it.
|
||||
- Your goal is to try to accomplish the user's task, NOT engage in a back and forth conversation.${
|
||||
supportsBrowserUse
|
||||
? `\n- The user may ask generic non-development tasks, such as "what\'s the latest news" or "look up the weather in San Diego", in which case you might use the browser_action tool to complete the task if it makes sense to do so, rather than trying to create a website or using curl to answer the question. However, if an available MCP server tool or resource can be used instead, you should prefer to use it over browser_action.`
|
||||
? `\n- The user may ask generic non-development tasks, such as "what's the latest news" or "look up the weather in San Diego", in which case you might use the browser_action tool to complete the task if it makes sense to do so, rather than trying to create a website or using curl to answer the question. However, if an available MCP server tool or resource can be used instead, you should prefer to use it over browser_action.`
|
||||
: ""
|
||||
}
|
||||
- NEVER end attempt_completion result with a question or request to engage in further conversation! Formulate the end of your result in a way that is final and does not require further input from the user.
|
||||
|
||||
+1
-1
@@ -616,7 +616,7 @@ CAPABILITIES
|
||||
====
|
||||
|
||||
If the user asks for help or wants to give feedback inform them of the following:
|
||||
- To give feedback, users should report the issue using the /reportbug slash command in the chat.
|
||||
- To give feedback, users can open a GitHub issue in the Cline repository.
|
||||
|
||||
When the user directly asks about Cline (eg 'can Cline do...', 'does Cline have...') or asks in second person (eg 'are you able...', 'can you do...'), first use the web_fetch tool to gather information to answer the question from Cline docs at https://docs.cline.bot.
|
||||
- The available sub-pages are `getting-started` (Intro for new coders, installing Cline and dev essentials), `model-selection` (Model Selection Guide, Custom Model Configs, Bedrock, Vertex, Codestral, LM Studio, Ollama), `features` (Auto approve, Checkpoints, Cline rules, Drag & Drop, Plan & Act, Workflows, etc), `task-management` (Task and Context Management in Cline), `prompt-engineering` (Improving your prompting skills, Prompt Engineering Guide), `cline-tools` (Cline Tools Reference Guide, New Task Tool, Remote Browser Support, Slash Commands), `mcp` (MCP Overview, Adding/Configuring Servers, Transport Mechanisms, MCP Dev Protocol), `enterprise` (Cloud provider integration, Security concerns, Custom instructions), `more-info` (Telemetry and other reference content)
|
||||
|
||||
+1
-1
@@ -580,7 +580,7 @@ CAPABILITIES
|
||||
====
|
||||
|
||||
If the user asks for help or wants to give feedback inform them of the following:
|
||||
- To give feedback, users should report the issue using the /reportbug slash command in the chat.
|
||||
- To give feedback, users can open a GitHub issue in the Cline repository.
|
||||
|
||||
When the user directly asks about Cline (eg 'can Cline do...', 'does Cline have...') or asks in second person (eg 'are you able...', 'can you do...'), first use the web_fetch tool to gather information to answer the question from Cline docs at https://docs.cline.bot.
|
||||
- The available sub-pages are `getting-started` (Intro for new coders, installing Cline and dev essentials), `model-selection` (Model Selection Guide, Custom Model Configs, Bedrock, Vertex, Codestral, LM Studio, Ollama), `features` (Auto approve, Checkpoints, Cline rules, Drag & Drop, Plan & Act, Workflows, etc), `task-management` (Task and Context Management in Cline), `prompt-engineering` (Improving your prompting skills, Prompt Engineering Guide), `cline-tools` (Cline Tools Reference Guide, New Task Tool, Remote Browser Support, Slash Commands), `mcp` (MCP Overview, Adding/Configuring Servers, Transport Mechanisms, MCP Dev Protocol), `enterprise` (Cloud provider integration, Security concerns, Custom instructions), `more-info` (Telemetry and other reference content)
|
||||
|
||||
+1
-1
@@ -594,7 +594,7 @@ CAPABILITIES
|
||||
====
|
||||
|
||||
If the user asks for help or wants to give feedback inform them of the following:
|
||||
- To give feedback, users should report the issue using the /reportbug slash command in the chat.
|
||||
- To give feedback, users can open a GitHub issue in the Cline repository.
|
||||
|
||||
When the user directly asks about Cline (eg 'can Cline do...', 'does Cline have...') or asks in second person (eg 'are you able...', 'can you do...'), first use the web_fetch tool to gather information to answer the question from Cline docs at https://docs.cline.bot.
|
||||
- The available sub-pages are `getting-started` (Intro for new coders, installing Cline and dev essentials), `model-selection` (Model Selection Guide, Custom Model Configs, Bedrock, Vertex, Codestral, LM Studio, Ollama), `features` (Auto approve, Checkpoints, Cline rules, Drag & Drop, Plan & Act, Workflows, etc), `task-management` (Task and Context Management in Cline), `prompt-engineering` (Improving your prompting skills, Prompt Engineering Guide), `cline-tools` (Cline Tools Reference Guide, New Task Tool, Remote Browser Support, Slash Commands), `mcp` (MCP Overview, Adding/Configuring Servers, Transport Mechanisms, MCP Dev Protocol), `enterprise` (Cloud provider integration, Security concerns, Custom instructions), `more-info` (Telemetry and other reference content)
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ CAPABILITIES
|
||||
|
||||
FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.
|
||||
|
||||
====
|
||||
|
||||
|
||||
+1
-1
@@ -61,7 +61,7 @@ CAPABILITIES
|
||||
|
||||
FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.
|
||||
|
||||
====
|
||||
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ CAPABILITIES
|
||||
|
||||
FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.
|
||||
|
||||
====
|
||||
|
||||
|
||||
@@ -651,7 +651,7 @@ CAPABILITIES
|
||||
====
|
||||
|
||||
If the user asks for help or wants to give feedback inform them of the following:
|
||||
- To give feedback, users should report the issue using the /reportbug slash command in the chat.
|
||||
- To give feedback, users can open a GitHub issue in the Cline repository.
|
||||
|
||||
When the user directly asks about Cline (eg 'can Cline do...', 'does Cline have...') or asks in second person (eg 'are you able...', 'can you do...'), first use the web_fetch tool to gather information to answer the question from Cline docs at https://docs.cline.bot.
|
||||
- The available sub-pages are `getting-started` (Intro for new coders, installing Cline and dev essentials), `model-selection` (Model Selection Guide, Custom Model Configs, Bedrock, Vertex, Codestral, LM Studio, Ollama), `features` (Auto approve, Checkpoints, Cline rules, Drag & Drop, Plan & Act, Workflows, etc), `task-management` (Task and Context Management in Cline), `prompt-engineering` (Improving your prompting skills, Prompt Engineering Guide), `cline-tools` (Cline Tools Reference Guide, New Task Tool, Remote Browser Support, Slash Commands), `mcp` (MCP Overview, Adding/Configuring Servers, Transport Mechanisms, MCP Dev Protocol), `enterprise` (Cloud provider integration, Security concerns, Custom instructions), `more-info` (Telemetry and other reference content)
|
||||
|
||||
+1
-1
@@ -571,7 +571,7 @@ CAPABILITIES
|
||||
====
|
||||
|
||||
If the user asks for help or wants to give feedback inform them of the following:
|
||||
- To give feedback, users should report the issue using the /reportbug slash command in the chat.
|
||||
- To give feedback, users can open a GitHub issue in the Cline repository.
|
||||
|
||||
When the user directly asks about Cline (eg 'can Cline do...', 'does Cline have...') or asks in second person (eg 'are you able...', 'can you do...'), first use the web_fetch tool to gather information to answer the question from Cline docs at https://docs.cline.bot.
|
||||
- The available sub-pages are `getting-started` (Intro for new coders, installing Cline and dev essentials), `model-selection` (Model Selection Guide, Custom Model Configs, Bedrock, Vertex, Codestral, LM Studio, Ollama), `features` (Auto approve, Checkpoints, Cline rules, Drag & Drop, Plan & Act, Workflows, etc), `task-management` (Task and Context Management in Cline), `prompt-engineering` (Improving your prompting skills, Prompt Engineering Guide), `cline-tools` (Cline Tools Reference Guide, New Task Tool, Remote Browser Support, Slash Commands), `mcp` (MCP Overview, Adding/Configuring Servers, Transport Mechanisms, MCP Dev Protocol), `enterprise` (Cloud provider integration, Security concerns, Custom instructions), `more-info` (Telemetry and other reference content)
|
||||
|
||||
@@ -616,7 +616,7 @@ CAPABILITIES
|
||||
====
|
||||
|
||||
If the user asks for help or wants to give feedback inform them of the following:
|
||||
- To give feedback, users should report the issue using the /reportbug slash command in the chat.
|
||||
- To give feedback, users can open a GitHub issue in the Cline repository.
|
||||
|
||||
When the user directly asks about Cline (eg 'can Cline do...', 'does Cline have...') or asks in second person (eg 'are you able...', 'can you do...'), first use the web_fetch tool to gather information to answer the question from Cline docs at https://docs.cline.bot.
|
||||
- The available sub-pages are `getting-started` (Intro for new coders, installing Cline and dev essentials), `model-selection` (Model Selection Guide, Custom Model Configs, Bedrock, Vertex, Codestral, LM Studio, Ollama), `features` (Auto approve, Checkpoints, Cline rules, Drag & Drop, Plan & Act, Workflows, etc), `task-management` (Task and Context Management in Cline), `prompt-engineering` (Improving your prompting skills, Prompt Engineering Guide), `cline-tools` (Cline Tools Reference Guide, New Task Tool, Remote Browser Support, Slash Commands), `mcp` (MCP Overview, Adding/Configuring Servers, Transport Mechanisms, MCP Dev Protocol), `enterprise` (Cloud provider integration, Security concerns, Custom instructions), `more-info` (Telemetry and other reference content)
|
||||
|
||||
@@ -580,7 +580,7 @@ CAPABILITIES
|
||||
====
|
||||
|
||||
If the user asks for help or wants to give feedback inform them of the following:
|
||||
- To give feedback, users should report the issue using the /reportbug slash command in the chat.
|
||||
- To give feedback, users can open a GitHub issue in the Cline repository.
|
||||
|
||||
When the user directly asks about Cline (eg 'can Cline do...', 'does Cline have...') or asks in second person (eg 'are you able...', 'can you do...'), first use the web_fetch tool to gather information to answer the question from Cline docs at https://docs.cline.bot.
|
||||
- The available sub-pages are `getting-started` (Intro for new coders, installing Cline and dev essentials), `model-selection` (Model Selection Guide, Custom Model Configs, Bedrock, Vertex, Codestral, LM Studio, Ollama), `features` (Auto approve, Checkpoints, Cline rules, Drag & Drop, Plan & Act, Workflows, etc), `task-management` (Task and Context Management in Cline), `prompt-engineering` (Improving your prompting skills, Prompt Engineering Guide), `cline-tools` (Cline Tools Reference Guide, New Task Tool, Remote Browser Support, Slash Commands), `mcp` (MCP Overview, Adding/Configuring Servers, Transport Mechanisms, MCP Dev Protocol), `enterprise` (Cloud provider integration, Security concerns, Custom instructions), `more-info` (Telemetry and other reference content)
|
||||
|
||||
@@ -594,7 +594,7 @@ CAPABILITIES
|
||||
====
|
||||
|
||||
If the user asks for help or wants to give feedback inform them of the following:
|
||||
- To give feedback, users should report the issue using the /reportbug slash command in the chat.
|
||||
- To give feedback, users can open a GitHub issue in the Cline repository.
|
||||
|
||||
When the user directly asks about Cline (eg 'can Cline do...', 'does Cline have...') or asks in second person (eg 'are you able...', 'can you do...'), first use the web_fetch tool to gather information to answer the question from Cline docs at https://docs.cline.bot.
|
||||
- The available sub-pages are `getting-started` (Intro for new coders, installing Cline and dev essentials), `model-selection` (Model Selection Guide, Custom Model Configs, Bedrock, Vertex, Codestral, LM Studio, Ollama), `features` (Auto approve, Checkpoints, Cline rules, Drag & Drop, Plan & Act, Workflows, etc), `task-management` (Task and Context Management in Cline), `prompt-engineering` (Improving your prompting skills, Prompt Engineering Guide), `cline-tools` (Cline Tools Reference Guide, New Task Tool, Remote Browser Support, Slash Commands), `mcp` (MCP Overview, Adding/Configuring Servers, Transport Mechanisms, MCP Dev Protocol), `enterprise` (Cloud provider integration, Security concerns, Custom instructions), `more-info` (Telemetry and other reference content)
|
||||
|
||||
@@ -79,7 +79,7 @@ CAPABILITIES
|
||||
|
||||
FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.
|
||||
|
||||
====
|
||||
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ CAPABILITIES
|
||||
|
||||
FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.
|
||||
|
||||
====
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ CAPABILITIES
|
||||
|
||||
FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.
|
||||
|
||||
====
|
||||
|
||||
|
||||
+1
-1
@@ -62,7 +62,7 @@ CAPABILITIES
|
||||
|
||||
FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.
|
||||
|
||||
====
|
||||
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ CAPABILITIES
|
||||
|
||||
FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.
|
||||
|
||||
====
|
||||
|
||||
|
||||
+1
-1
@@ -62,7 +62,7 @@ CAPABILITIES
|
||||
|
||||
FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.
|
||||
|
||||
====
|
||||
|
||||
|
||||
@@ -207,7 +207,7 @@ You can track and communicate your progress on the overall task using the task_p
|
||||
|
||||
FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.
|
||||
|
||||
====
|
||||
|
||||
|
||||
+1
-1
@@ -205,7 +205,7 @@ You can track and communicate your progress on the overall task using the task_p
|
||||
|
||||
FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.
|
||||
|
||||
====
|
||||
|
||||
|
||||
@@ -207,7 +207,7 @@ You can track and communicate your progress on the overall task using the task_p
|
||||
|
||||
FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.
|
||||
|
||||
====
|
||||
|
||||
|
||||
+1
-1
@@ -207,7 +207,7 @@ You can track and communicate your progress on the overall task using the task_p
|
||||
|
||||
FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.
|
||||
|
||||
====
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { PromptVariant, SystemPromptContext } from "../types"
|
||||
|
||||
const FEEDBACK_TEMPLATE_TEXT = `
|
||||
If the user asks for help or wants to give feedback inform them of the following:
|
||||
- To give feedback, users should report the issue using the /reportbug slash command in the chat.
|
||||
- To give feedback, users can open a GitHub issue in the Cline repository.
|
||||
|
||||
When the user directly asks about Cline (eg 'can Cline do...', 'does Cline have...') or asks in second person (eg 'are you able...', 'can you do...'), first use the web_fetch tool to gather information to answer the question from Cline docs at https://docs.cline.bot.
|
||||
- The available sub-pages are \`getting-started\` (Intro for new coders, installing Cline and dev essentials), \`model-selection\` (Model Selection Guide, Custom Model Configs, Bedrock, Vertex, Codestral, LM Studio, Ollama), \`features\` (Auto approve, Checkpoints, Cline rules, Drag & Drop, Plan & Act, Workflows, etc), \`task-management\` (Task and Context Management in Cline), \`prompt-engineering\` (Improving your prompting skills, Prompt Engineering Guide), \`cline-tools\` (Cline Tools Reference Guide, New Task Tool, Remote Browser Support, Slash Commands), \`mcp\` (MCP Overview, Adding/Configuring Servers, Transport Mechanisms, MCP Dev Protocol), \`enterprise\` (Cloud provider integration, Security concerns, Custom instructions), \`more-info\` (Telemetry and other reference content)
|
||||
|
||||
@@ -142,7 +142,7 @@ const GEMINI_3_RULES_TEMPLATE = (context: SystemPromptContext) => `RULES
|
||||
|
||||
const GEMINI_3_FEEDBACK_TEMPLATE = (_context: SystemPromptContext) => `FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.`
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.`
|
||||
|
||||
const GEMINI_3_ACT_VS_PLAN_TEMPLATE = (context: SystemPromptContext) => `ACT MODE V.S. PLAN MODE
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ This ensures your work aligns with the existing codebase structure and avoids un
|
||||
|
||||
const GPT5_1_FEEDBACK = (_context: SystemPromptContext) => `FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.`
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.`
|
||||
|
||||
export const gpt51ComponentOverrides: PromptVariant["componentOverrides"] = {
|
||||
[SystemPromptSection.AGENT_ROLE]: {
|
||||
|
||||
@@ -83,7 +83,7 @@ You accomplish a given task iteratively, breaking it down into clear steps and w
|
||||
|
||||
const FEEDBACK = (_context: SystemPromptContext) => `FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.`
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.`
|
||||
|
||||
export const GPT_5_TEMPLATE_OVERRIDES = {
|
||||
BASE,
|
||||
|
||||
@@ -100,7 +100,7 @@ You accomplish a given task iteratively, breaking it down into clear steps and w
|
||||
|
||||
const FEEDBACK = (_context: SystemPromptContext) => `FEEDBACK
|
||||
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to report new issue using the '/reportbug' slash command.`
|
||||
When user is providing you with feedback on how you could improve, you can let the user know to open a GitHub issue in the Cline repository.`
|
||||
|
||||
export const TEMPLATE_OVERRIDES = {
|
||||
BASE,
|
||||
|
||||
@@ -11,7 +11,6 @@ import {
|
||||
explainChangesToolResponse,
|
||||
newRuleToolResponse,
|
||||
newTaskToolResponse,
|
||||
reportBugToolResponse,
|
||||
} from "../prompts/commands"
|
||||
import { StateManager } from "../storage/StateManager"
|
||||
|
||||
@@ -49,7 +48,7 @@ export async function parseSlashCommands(
|
||||
providerInfo?: ApiProviderInfo,
|
||||
mcpPromptFetcher?: McpPromptFetcher,
|
||||
): Promise<{ processedText: string; needsClinerulesFileCheck: boolean }> {
|
||||
const SUPPORTED_DEFAULT_COMMANDS = ["newtask", "smol", "compact", "newrule", "reportbug", "deep-planning", "explain-changes"]
|
||||
const SUPPORTED_DEFAULT_COMMANDS = ["newtask", "smol", "compact", "newrule", "deep-planning", "explain-changes"]
|
||||
|
||||
// Determine if the current provider/model/setting actually uses native tool calling
|
||||
const willUseNativeTools = isNativeToolCallingConfig(providerInfo!, enableNativeToolCalls || false)
|
||||
@@ -59,7 +58,6 @@ export async function parseSlashCommands(
|
||||
smol: condenseToolResponse(focusChainSettings),
|
||||
compact: condenseToolResponse(focusChainSettings),
|
||||
newrule: newRuleToolResponse(),
|
||||
reportbug: reportBugToolResponse(),
|
||||
"deep-planning": deepPlanningToolResponse(focusChainSettings, providerInfo, willUseNativeTools),
|
||||
"explain-changes": explainChangesToolResponse(),
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@ import { LoadMcpDocumentationHandler } from "./handlers/LoadMcpDocumentationHand
|
||||
import { NewTaskHandler } from "./handlers/NewTaskHandler"
|
||||
import { PlanModeRespondHandler } from "./handlers/PlanModeRespondHandler"
|
||||
import { ReadFileToolHandler } from "./handlers/ReadFileToolHandler"
|
||||
import { ReportBugHandler } from "./handlers/ReportBugHandler"
|
||||
import { SearchFilesToolHandler } from "./handlers/SearchFilesToolHandler"
|
||||
import { UseSubagentsToolHandler } from "./handlers/SubagentToolHandler"
|
||||
import { SummarizeTaskHandler } from "./handlers/SummarizeTaskHandler"
|
||||
@@ -99,7 +98,6 @@ export class ToolExecutorCoordinator {
|
||||
[ClineDefaultTool.WEB_SEARCH]: (_v: ToolValidator) => new WebSearchToolHandler(),
|
||||
[ClineDefaultTool.CONDENSE]: (_v: ToolValidator) => new CondenseHandler(),
|
||||
[ClineDefaultTool.SUMMARIZE_TASK]: (_v: ToolValidator) => new SummarizeTaskHandler(_v),
|
||||
[ClineDefaultTool.REPORT_BUG]: (_v: ToolValidator) => new ReportBugHandler(),
|
||||
[ClineDefaultTool.NEW_RULE]: (v: ToolValidator) =>
|
||||
new SharedToolHandler(ClineDefaultTool.NEW_RULE, new WriteToFileToolHandler(v)),
|
||||
[ClineDefaultTool.APPLY_PATCH]: (_v: ToolValidator) => new ApplyPatchHandler(_v),
|
||||
|
||||
@@ -1,140 +1,7 @@
|
||||
import type { ToolUse } from "@core/assistant-message"
|
||||
import { formatResponse } from "@core/prompts/responses"
|
||||
import { processFilesIntoText } from "@integrations/misc/extract-text"
|
||||
import { showSystemNotification } from "@integrations/notifications"
|
||||
import { createAndOpenGitHubIssue } from "@utils/github-url-utils"
|
||||
import * as os from "os"
|
||||
import { HostProvider } from "@/hosts/host-provider"
|
||||
import { ExtensionRegistryInfo } from "@/registry"
|
||||
import { Logger } from "@/shared/services/Logger"
|
||||
import { ClineDefaultTool } from "@/shared/tools"
|
||||
import type { ToolResponse } from "../../index"
|
||||
import type { IPartialBlockHandler, IToolHandler } from "../ToolExecutorCoordinator"
|
||||
import type { TaskConfig } from "../types/TaskConfig"
|
||||
import type { StronglyTypedUIHelpers } from "../types/UIHelpers"
|
||||
|
||||
export class ReportBugHandler implements IToolHandler, IPartialBlockHandler {
|
||||
readonly name = ClineDefaultTool.REPORT_BUG
|
||||
|
||||
constructor() {}
|
||||
|
||||
getDescription(block: ToolUse): string {
|
||||
return `[${block.name}]`
|
||||
}
|
||||
|
||||
async handlePartialBlock(block: ToolUse, uiHelpers: StronglyTypedUIHelpers): Promise<void> {
|
||||
const partialMessage = JSON.stringify({
|
||||
title: uiHelpers.removeClosingTag(block, "title", block.params.title),
|
||||
what_happened: uiHelpers.removeClosingTag(block, "what_happened", block.params.what_happened),
|
||||
steps_to_reproduce: uiHelpers.removeClosingTag(block, "steps_to_reproduce", block.params.steps_to_reproduce),
|
||||
api_request_output: uiHelpers.removeClosingTag(block, "api_request_output", block.params.api_request_output),
|
||||
additional_context: uiHelpers.removeClosingTag(block, "additional_context", block.params.additional_context),
|
||||
})
|
||||
|
||||
await uiHelpers.ask(this.name, partialMessage, block.partial).catch(() => {})
|
||||
}
|
||||
|
||||
async execute(config: TaskConfig, block: ToolUse): Promise<ToolResponse> {
|
||||
const title = block.params.title
|
||||
const what_happened = block.params.what_happened
|
||||
const steps_to_reproduce = block.params.steps_to_reproduce
|
||||
const api_request_output = block.params.api_request_output
|
||||
const additional_context = block.params.additional_context
|
||||
|
||||
// Validate required parameters
|
||||
if (!title) {
|
||||
config.taskState.consecutiveMistakeCount++
|
||||
return await config.callbacks.sayAndCreateMissingParamError(block.name, "title")
|
||||
}
|
||||
if (!what_happened) {
|
||||
config.taskState.consecutiveMistakeCount++
|
||||
return await config.callbacks.sayAndCreateMissingParamError(block.name, "what_happened")
|
||||
}
|
||||
if (!steps_to_reproduce) {
|
||||
config.taskState.consecutiveMistakeCount++
|
||||
return await config.callbacks.sayAndCreateMissingParamError(block.name, "steps_to_reproduce")
|
||||
}
|
||||
if (!api_request_output) {
|
||||
config.taskState.consecutiveMistakeCount++
|
||||
return await config.callbacks.sayAndCreateMissingParamError(block.name, "api_request_output")
|
||||
}
|
||||
if (!additional_context) {
|
||||
config.taskState.consecutiveMistakeCount++
|
||||
return await config.callbacks.sayAndCreateMissingParamError(block.name, "additional_context")
|
||||
}
|
||||
|
||||
config.taskState.consecutiveMistakeCount = 0
|
||||
|
||||
// Show notification if enabled
|
||||
if (config.autoApprovalSettings.enableNotifications) {
|
||||
showSystemNotification({
|
||||
subtitle: "Cline wants to create a github issue...",
|
||||
message: `Cline is suggesting to create a github issue with the title: ${title}`,
|
||||
})
|
||||
}
|
||||
|
||||
// Derive system information values algorithmically
|
||||
const operatingSystem = os.platform() + " " + os.release()
|
||||
const currentMode = config.mode
|
||||
const clineVersion = ExtensionRegistryInfo.version
|
||||
const host = await HostProvider.env.getHostVersion({})
|
||||
const systemInfo = `${host.platform}: ${host.version}, Node.js: ${process.version}, Architecture: ${os.arch()}`
|
||||
const apiConfig = config.services.stateManager.getApiConfiguration()
|
||||
const apiProvider = currentMode === "plan" ? apiConfig.planModeApiProvider : apiConfig.actModeApiProvider
|
||||
const providerAndModel = `${apiProvider} / ${config.api.getModel().id}`
|
||||
|
||||
// Ask user for confirmation
|
||||
const bugReportData = JSON.stringify({
|
||||
title,
|
||||
what_happened,
|
||||
steps_to_reproduce,
|
||||
api_request_output,
|
||||
additional_context,
|
||||
// Include derived values in the JSON for display purposes
|
||||
provider_and_model: providerAndModel,
|
||||
operating_system: operatingSystem,
|
||||
system_info: systemInfo,
|
||||
cline_version: clineVersion,
|
||||
})
|
||||
|
||||
const { text, images, files: reportBugFiles } = await config.callbacks.ask(this.name, bugReportData, false)
|
||||
|
||||
// If the user provided a response, treat it as feedback
|
||||
if (text || (images && images.length > 0) || (reportBugFiles && reportBugFiles.length > 0)) {
|
||||
let fileContentString = ""
|
||||
if (reportBugFiles && reportBugFiles.length > 0) {
|
||||
fileContentString = await processFilesIntoText(reportBugFiles)
|
||||
}
|
||||
|
||||
await config.callbacks.say("user_feedback", text ?? "", images, reportBugFiles)
|
||||
return formatResponse.toolResult(
|
||||
`The user did not submit the bug, and provided feedback on the Github issue generated instead:\n<feedback>\n${text}\n</feedback>`,
|
||||
images,
|
||||
fileContentString,
|
||||
)
|
||||
} else {
|
||||
// If no response, the user accepted the bug report
|
||||
try {
|
||||
// Create a Map of parameters for the GitHub issue
|
||||
const params = new Map<string, string>()
|
||||
params.set("title", title)
|
||||
params.set("operating-system", operatingSystem)
|
||||
params.set("cline-version", clineVersion)
|
||||
params.set("system-info", systemInfo)
|
||||
params.set("additional-context", additional_context)
|
||||
params.set("what-happened", what_happened)
|
||||
params.set("steps", steps_to_reproduce)
|
||||
params.set("provider-model", providerAndModel)
|
||||
params.set("logs", api_request_output)
|
||||
|
||||
// Use our utility function to create and open the GitHub issue URL
|
||||
// This bypasses VS Code's URI handling issues with special characters
|
||||
await createAndOpenGitHubIssue("cline", "cline", "bug_report.yml", params)
|
||||
} catch (error) {
|
||||
Logger.error(`An error occurred while attempting to report the bug: ${error}`)
|
||||
}
|
||||
|
||||
return formatResponse.toolResult(`The user accepted the creation of the Github issue.`)
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Compatibility shim for downstream integration workflows that may temporarily
|
||||
* mirror file updates without propagating deletions.
|
||||
*
|
||||
* The original report-bug handler has been removed.
|
||||
*/
|
||||
export {}
|
||||
|
||||
@@ -151,7 +151,6 @@ export type ClineAsk =
|
||||
| "new_task"
|
||||
| "condense"
|
||||
| "summarize_task"
|
||||
| "report_bug"
|
||||
| "use_subagents"
|
||||
|
||||
export type ClineSay =
|
||||
|
||||
@@ -24,7 +24,6 @@ function convertClineAskToProtoEnum(ask: AppClineAsk | undefined): ClineAsk | un
|
||||
new_task: ClineAsk.NEW_TASK,
|
||||
condense: ClineAsk.CONDENSE,
|
||||
summarize_task: ClineAsk.SUMMARIZE_TASK,
|
||||
report_bug: ClineAsk.REPORT_BUG,
|
||||
use_subagents: ClineAsk.USE_SUBAGENTS,
|
||||
}
|
||||
|
||||
@@ -57,7 +56,6 @@ function convertProtoEnumToClineAsk(ask: ClineAsk): AppClineAsk | undefined {
|
||||
[ClineAsk.NEW_TASK]: "new_task",
|
||||
[ClineAsk.CONDENSE]: "condense",
|
||||
[ClineAsk.SUMMARIZE_TASK]: "summarize_task",
|
||||
[ClineAsk.REPORT_BUG]: "report_bug",
|
||||
[ClineAsk.USE_SUBAGENTS]: "use_subagents",
|
||||
}
|
||||
|
||||
|
||||
@@ -30,12 +30,6 @@ export const BASE_SLASH_COMMANDS: SlashCommand[] = [
|
||||
section: "default",
|
||||
cliCompatible: true,
|
||||
},
|
||||
{
|
||||
name: "reportbug",
|
||||
description: "Create a Github issue with Cline",
|
||||
section: "default",
|
||||
cliCompatible: true,
|
||||
},
|
||||
]
|
||||
|
||||
// VS Code-only slash commands
|
||||
|
||||
@@ -27,7 +27,6 @@ export enum ClineDefaultTool {
|
||||
WEB_SEARCH = "web_search",
|
||||
CONDENSE = "condense",
|
||||
SUMMARIZE_TASK = "summarize_task",
|
||||
REPORT_BUG = "report_bug",
|
||||
NEW_RULE = "new_rule",
|
||||
APPLY_PATCH = "apply_patch",
|
||||
GENERATE_EXPLANATION = "generate_explanation",
|
||||
|
||||
@@ -782,15 +782,6 @@ export const CondenseConversation = quickStory(
|
||||
"Would you like me to condense the conversation to improve performance?",
|
||||
"Shows utility action to condense conversation for better performance.",
|
||||
)
|
||||
export const ReportBug = quickStory(
|
||||
"Report Bug",
|
||||
"report_bug",
|
||||
JSON.stringify({
|
||||
steps_to_reproduce: "1. Open Cline\n2. Start a new task\n3. Observe the error",
|
||||
what_happened: "Cline crashes unexpectedly",
|
||||
}),
|
||||
"Shows utility action to report bugs to the GitHub repository.",
|
||||
)
|
||||
export const ResumeCompletedTask = quickStory(
|
||||
"Resume Completed Task type",
|
||||
"resume_completed_task",
|
||||
|
||||
@@ -59,7 +59,6 @@ import { MarkdownRow } from "./MarkdownRow"
|
||||
import NewTaskPreview from "./NewTaskPreview"
|
||||
import PlanCompletionOutputRow from "./PlanCompletionOutputRow"
|
||||
import QuoteButton from "./QuoteButton"
|
||||
import ReportBugPreview from "./ReportBugPreview"
|
||||
import { RequestStartRow } from "./RequestStartRow"
|
||||
import SearchResultsDisplay from "./SearchResultsDisplay"
|
||||
import SubagentStatusRow from "./SubagentStatusRow"
|
||||
@@ -1259,16 +1258,6 @@ export const ChatRowContent = memo(
|
||||
<NewTaskPreview context={message.text || ""} />
|
||||
</div>
|
||||
)
|
||||
case "report_bug":
|
||||
return (
|
||||
<div>
|
||||
<div className={HEADER_CLASSNAMES}>
|
||||
<FilePlus2Icon className="size-2" />
|
||||
<span className="text-foreground font-bold">Cline wants to create a Github issue:</span>
|
||||
</div>
|
||||
<ReportBugPreview data={message.text || ""} />
|
||||
</div>
|
||||
)
|
||||
case "plan_mode_respond": {
|
||||
let response: string | undefined
|
||||
let options: string[] | undefined
|
||||
|
||||
@@ -40,9 +40,6 @@ const FEATURE_TIPS: FeatureTipItem[] = [
|
||||
{
|
||||
text: "Cline can browse websites — ask it to test your local dev server in the browser.",
|
||||
},
|
||||
{
|
||||
text: "Use /reportbug to quickly file a GitHub issue with diagnostic context included.",
|
||||
},
|
||||
{
|
||||
text: 'You can disable these tips in Settings → Features → "Feature Tips".',
|
||||
},
|
||||
|
||||
@@ -1,84 +1,9 @@
|
||||
import React from "react"
|
||||
import MarkdownBlock from "../common/MarkdownBlock"
|
||||
|
||||
interface ReportBugPreviewProps {
|
||||
data: string
|
||||
/**
|
||||
* Compatibility shim for downstream integration workflows that may temporarily
|
||||
* mirror file updates without propagating deletions.
|
||||
*
|
||||
* The original preview component has been removed.
|
||||
*/
|
||||
export default function ReportBugPreview() {
|
||||
return null
|
||||
}
|
||||
|
||||
const ReportBugPreview: React.FC<ReportBugPreviewProps> = ({ data }) => {
|
||||
// Parse the JSON data from the context string
|
||||
const bugData = React.useMemo(() => {
|
||||
try {
|
||||
return JSON.parse(data || "{}")
|
||||
} catch (e) {
|
||||
console.error("Failed to parse bug report data", e)
|
||||
return {}
|
||||
}
|
||||
}, [data])
|
||||
|
||||
return (
|
||||
<div className="bg-badge-background/50 text-badge-foreground rounded-xs p-3">
|
||||
<h2 className="font-bold mb-3">{bugData.title || "Bug Report"}</h2>
|
||||
|
||||
<div className="space-y-3 text-sm">
|
||||
{bugData.what_happened && (
|
||||
<div>
|
||||
<div className="font-semibold">What Happened?</div>
|
||||
<MarkdownBlock markdown={bugData.what_happened} />
|
||||
</div>
|
||||
)}
|
||||
|
||||
{bugData.steps_to_reproduce && (
|
||||
<div>
|
||||
<div className="font-semibold">Steps to Reproduce</div>
|
||||
<MarkdownBlock markdown={bugData.steps_to_reproduce} />
|
||||
</div>
|
||||
)}
|
||||
|
||||
{bugData.api_request_output && (
|
||||
<div>
|
||||
<div className="font-semibold">Relevant API Request Output</div>
|
||||
<MarkdownBlock markdown={bugData.api_request_output} />
|
||||
</div>
|
||||
)}
|
||||
|
||||
{bugData.provider_and_model && (
|
||||
<div>
|
||||
<div className="font-semibold">Provider/Model</div>
|
||||
<MarkdownBlock markdown={bugData.provider_and_model} />
|
||||
</div>
|
||||
)}
|
||||
|
||||
{bugData.operating_system && (
|
||||
<div>
|
||||
<div className="font-semibold">Operating System</div>
|
||||
<MarkdownBlock markdown={bugData.operating_system} />
|
||||
</div>
|
||||
)}
|
||||
|
||||
{bugData.system_info && (
|
||||
<div>
|
||||
<div className="font-semibold">System Info</div>
|
||||
<MarkdownBlock markdown={bugData.system_info} />
|
||||
</div>
|
||||
)}
|
||||
|
||||
{bugData.cline_version && (
|
||||
<div>
|
||||
<div className="font-semibold">Cline Version</div>
|
||||
<MarkdownBlock markdown={bugData.cline_version} />
|
||||
</div>
|
||||
)}
|
||||
|
||||
{bugData.additional_context && (
|
||||
<div>
|
||||
<div className="font-semibold">Additional Context</div>
|
||||
<MarkdownBlock markdown={bugData.additional_context} />
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default ReportBugPreview
|
||||
|
||||
@@ -82,7 +82,6 @@ export function useMessageHandlers(messages: ClineMessage[], chatState: ChatStat
|
||||
case "api_req_failed":
|
||||
case "new_task":
|
||||
case "condense":
|
||||
case "report_bug":
|
||||
await TaskServiceClient.askResponse(
|
||||
AskResponseRequest.create({
|
||||
responseType: "messageResponse",
|
||||
@@ -280,11 +279,6 @@ export function useMessageHandlers(messages: ClineMessage[], chatState: ChatStat
|
||||
console.error(err),
|
||||
)
|
||||
break
|
||||
case "report_bug":
|
||||
await SlashServiceClient.reportBug(StringRequest.create({ value: lastMessage?.text })).catch((err) =>
|
||||
console.error(err),
|
||||
)
|
||||
break
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
@@ -106,7 +106,6 @@ describe("getButtonConfig", () => {
|
||||
{ ask: "resume_completed_task", expectedConfig: "resume_completed_task" },
|
||||
{ ask: "new_task", expectedConfig: "new_task" },
|
||||
{ ask: "condense", expectedConfig: "condense" },
|
||||
{ ask: "report_bug", expectedConfig: "report_bug" },
|
||||
]
|
||||
|
||||
stateConfigs.forEach(({ ask, expectedConfig }) => {
|
||||
|
||||
@@ -10,7 +10,7 @@ export type ButtonActionType =
|
||||
| "proceed" // Send messageResponse or yesButtonClicked
|
||||
| "new_task" // Start a new task
|
||||
| "cancel" // Cancel streaming
|
||||
| "utility" // Execute utility function (condense, report_bug)
|
||||
| "utility" // Execute utility function (condense)
|
||||
| "retry" // Retry the last action
|
||||
|
||||
/**
|
||||
@@ -169,14 +169,6 @@ export const BUTTON_CONFIGS: Record<string, ButtonConfig> = {
|
||||
primaryAction: "utility",
|
||||
secondaryAction: undefined,
|
||||
},
|
||||
report_bug: {
|
||||
sendingDisabled: false,
|
||||
enableButtons: true,
|
||||
primaryText: "Report GitHub issue",
|
||||
secondaryText: undefined,
|
||||
primaryAction: "utility",
|
||||
secondaryAction: undefined,
|
||||
},
|
||||
|
||||
// Streaming/partial states - disable interaction during streaming
|
||||
partial: {
|
||||
@@ -287,8 +279,6 @@ export function getButtonConfig(message: ClineMessage | undefined, _mode: Mode =
|
||||
// Utility
|
||||
case "condense":
|
||||
return BUTTON_CONFIGS.condense
|
||||
case "report_bug":
|
||||
return BUTTON_CONFIGS.report_bug
|
||||
|
||||
default:
|
||||
return BUTTON_CONFIGS.tool_approve
|
||||
|
||||
Reference in New Issue
Block a user