mirror of
https://github.com/pacnpal/Roo-Code.git
synced 2025-12-20 12:21:13 -05:00
Fix bug with auto-approving commands
This commit is contained in:
5
.changeset/fuzzy-horses-run.md
Normal file
5
.changeset/fuzzy-horses-run.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"roo-cline": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix bug with auto-approving commands
|
||||||
@@ -834,7 +834,7 @@ const ChatView = ({ isHidden, showAnnouncement, hideAnnouncement, showHistoryVie
|
|||||||
const autoApprove = async () => {
|
const autoApprove = async () => {
|
||||||
if (isAutoApproved(lastMessage)) {
|
if (isAutoApproved(lastMessage)) {
|
||||||
// Add delay for write operations
|
// Add delay for write operations
|
||||||
if (alwaysAllowWrite && isWriteToolAction(lastMessage)) {
|
if (lastMessage?.ask === "tool" && isWriteToolAction(lastMessage)) {
|
||||||
await new Promise(resolve => setTimeout(resolve, writeDelayMs))
|
await new Promise(resolve => setTimeout(resolve, writeDelayMs))
|
||||||
}
|
}
|
||||||
handlePrimaryButtonClick()
|
handlePrimaryButtonClick()
|
||||||
|
|||||||
@@ -247,7 +247,8 @@ describe('ChatView - Auto Approval Tests', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('auto-approves write tools when alwaysAllowWrite is enabled', async () => {
|
describe('Write Tool Auto-Approval Tests', () => {
|
||||||
|
it('auto-approves write tools when alwaysAllowWrite is enabled and message is a tool request', async () => {
|
||||||
render(
|
render(
|
||||||
<ExtensionStateContextProvider>
|
<ExtensionStateContextProvider>
|
||||||
<ChatView
|
<ChatView
|
||||||
@@ -301,6 +302,59 @@ describe('ChatView - Auto Approval Tests', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('does not auto-approve write operations when alwaysAllowWrite is enabled but message is not a tool request', () => {
|
||||||
|
render(
|
||||||
|
<ExtensionStateContextProvider>
|
||||||
|
<ChatView
|
||||||
|
isHidden={false}
|
||||||
|
showAnnouncement={false}
|
||||||
|
hideAnnouncement={() => {}}
|
||||||
|
showHistoryView={() => {}}
|
||||||
|
/>
|
||||||
|
</ExtensionStateContextProvider>
|
||||||
|
)
|
||||||
|
|
||||||
|
// First hydrate state with initial task
|
||||||
|
mockPostMessage({
|
||||||
|
alwaysAllowWrite: true,
|
||||||
|
clineMessages: [
|
||||||
|
{
|
||||||
|
type: 'say',
|
||||||
|
say: 'task',
|
||||||
|
ts: Date.now() - 2000,
|
||||||
|
text: 'Initial task'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
// Then send a non-tool write operation message
|
||||||
|
mockPostMessage({
|
||||||
|
alwaysAllowWrite: true,
|
||||||
|
clineMessages: [
|
||||||
|
{
|
||||||
|
type: 'say',
|
||||||
|
say: 'task',
|
||||||
|
ts: Date.now() - 2000,
|
||||||
|
text: 'Initial task'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'ask',
|
||||||
|
ask: 'write_operation',
|
||||||
|
ts: Date.now(),
|
||||||
|
text: JSON.stringify({ path: 'test.txt', content: 'test content' }),
|
||||||
|
partial: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
// Verify no auto-approval message was sent
|
||||||
|
expect(vscode.postMessage).not.toHaveBeenCalledWith({
|
||||||
|
type: 'askResponse',
|
||||||
|
askResponse: 'yesButtonClicked'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
it('auto-approves allowed commands when alwaysAllowExecute is enabled', async () => {
|
it('auto-approves allowed commands when alwaysAllowExecute is enabled', async () => {
|
||||||
render(
|
render(
|
||||||
<ExtensionStateContextProvider>
|
<ExtensionStateContextProvider>
|
||||||
|
|||||||
Reference in New Issue
Block a user