feat(config): add cobra-probe-enabled toggle option and safeguard cobra probing (#133)
currently, every command that doesn't have a completion spec is assumed to be a cobra cli and it gets ran with a `__complete` argument. for non cobra clis this can cause problems if those non-cobra clis have sideeffects even when ran with the `__complete` argument, and there is no way to disable this. one of these problems was solved at #111, but a full solution would probably require actual sandboxing which is i think is an overkill just for attempting to get suggestions for unrecognized commands. instead of sandboxing, this pr adds a config option for allowing only selected commands to be probed and disallowing the rest. currently the default is still allowing all (`["*"]`) so default behavior is the same, but it might be better to just have a long list of known cobra clis as the default instead. here's a demo of a side effect caused by the probing, in this case "deleting" a file with rmtrash without actually trying to run the command: https://github.com/user-attachments/assets/5256d363-5291-42e8-bb4f-cf7467927246 --------- Co-authored-by: shemishtamesh <shemishtamail@gmail.com>
This commit is contained in:
co-authored by
shemishtamesh
parent
0f173f78dc
commit
89fcd6f830
@@ -7,13 +7,14 @@ import (
|
||||
func DefaultConfig() *Config {
|
||||
return &Config{
|
||||
Core: CoreConfig{
|
||||
Version: 1,
|
||||
Shell: "",
|
||||
ShellLogin: false,
|
||||
Mode: "last",
|
||||
Debug: false,
|
||||
ExpandAlias: true,
|
||||
AutoExecute: false,
|
||||
Version: 1,
|
||||
Shell: "",
|
||||
ShellLogin: false,
|
||||
Mode: "last",
|
||||
Debug: false,
|
||||
ExpandAlias: true,
|
||||
AutoExecute: false,
|
||||
CobraProbeEnabled: true,
|
||||
},
|
||||
UI: UIConfig{
|
||||
Style: "modern",
|
||||
|
||||
Reference in New Issue
Block a user