mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-29 21:49:33 +00:00
assistant: Prevent possible execution of generated terminal commands (#17647)
Some checks are pending
CI / Check formatting and spelling (push) Waiting to run
CI / (macOS) Run Clippy and tests (push) Waiting to run
CI / (Linux) Run Clippy and tests (push) Waiting to run
CI / (Windows) Run Clippy and tests (push) Waiting to run
CI / Create a macOS bundle (push) Blocked by required conditions
CI / Create a Linux bundle (push) Blocked by required conditions
CI / Create arm64 Linux bundle (push) Blocked by required conditions
Deploy Docs / Deploy Docs (push) Waiting to run
Docs / Check formatting (push) Waiting to run
Some checks are pending
CI / Check formatting and spelling (push) Waiting to run
CI / (macOS) Run Clippy and tests (push) Waiting to run
CI / (Linux) Run Clippy and tests (push) Waiting to run
CI / (Windows) Run Clippy and tests (push) Waiting to run
CI / Create a macOS bundle (push) Blocked by required conditions
CI / Create a Linux bundle (push) Blocked by required conditions
CI / Create arm64 Linux bundle (push) Blocked by required conditions
Deploy Docs / Deploy Docs (push) Waiting to run
Docs / Check formatting (push) Waiting to run
Closes #17424 Release Notes: - Fixed an issue where commands generated by the terminal command could sometimes be executed without confirmation
This commit is contained in:
parent
bf64c0899f
commit
93b3520c11
1 changed files with 5 additions and 1 deletions
|
@ -988,7 +988,7 @@ impl TerminalTransaction {
|
||||||
|
|
||||||
pub fn push(&mut self, hunk: String, cx: &mut AppContext) {
|
pub fn push(&mut self, hunk: String, cx: &mut AppContext) {
|
||||||
// Ensure that the assistant cannot accidentally execute commands that are streamed into the terminal
|
// Ensure that the assistant cannot accidentally execute commands that are streamed into the terminal
|
||||||
let input = hunk.replace(CARRIAGE_RETURN, " ");
|
let input = Self::sanitize_input(hunk);
|
||||||
self.terminal
|
self.terminal
|
||||||
.update(cx, |terminal, _| terminal.input(input));
|
.update(cx, |terminal, _| terminal.input(input));
|
||||||
}
|
}
|
||||||
|
@ -1003,6 +1003,10 @@ impl TerminalTransaction {
|
||||||
terminal.input(CARRIAGE_RETURN.to_string())
|
terminal.input(CARRIAGE_RETURN.to_string())
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn sanitize_input(input: String) -> String {
|
||||||
|
input.replace(['\r', '\n'], "")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Codegen {
|
pub struct Codegen {
|
||||||
|
|
Loading…
Reference in a new issue