refactor: improve quoting and keybindings

Amolith created

- Quote prefix variables in parameter expansion for safer handling
- Use typeset instead of local for Zsh variable declarations
- Remove -k flag from Fish bind commands (direct key syntax)
- Add trailing newline to agentsh.fish

Assisted-by: Claude Sonnet 4.5 via Crush

Change summary

agentsh.zsh         | 8 ++++----
conf.d/agentsh.fish | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)

Detailed changes

agentsh.zsh 🔗

@@ -56,7 +56,7 @@ command_not_found_handler() {
 		effective_cmd=("${remaining_args[@]}")
 	elif [[ "$missing_command" == ${prefix_char}* ]]; then
 		handled=true
-		local stripped="${missing_command#$prefix_char}"
+		local stripped="${missing_command#"$prefix_char"}"
 		if [[ -n "$stripped" ]]; then
 			effective_cmd=("$stripped" "${remaining_args[@]}")
 		else
@@ -107,7 +107,7 @@ __agentsh_toggle_prefix() {
 	local prefix_len=${#prefix}
 
 	if [[ "$BUFFER" == "$prefix"* ]]; then
-		BUFFER="${BUFFER#$prefix}"
+		BUFFER="${BUFFER#"$prefix"}"
 		if ((CURSOR > prefix_len)); then
 			CURSOR=$((CURSOR - prefix_len))
 		else
@@ -214,8 +214,8 @@ __agentsh_register_guard_widget() {
 if [[ -o interactive ]]; then
 	zle -N __agentsh_toggle_prefix
 
-	local -a __agentsh_keymaps=("emacs" "viins")
-	local keymap
+	typeset -a __agentsh_keymaps=("emacs" "viins")
+	typeset keymap
 	for keymap in "${__agentsh_keymaps[@]}"; do
 		bindkey -M "$keymap" '^X' __agentsh_toggle_prefix 2>/dev/null
 	done

conf.d/agentsh.fish 🔗

@@ -170,7 +170,7 @@ if status is-interactive
     # Bind multiple backspace variants
     bind \b __agentsh_guard_backward_delete
     bind \x7f __agentsh_guard_backward_delete
-    bind -k backspace __agentsh_guard_backward_delete
+    bind backspace __agentsh_guard_backward_delete
     
     # Bind Alt+Backspace variants
     bind \eb __agentsh_guard_backward_kill_word
@@ -182,8 +182,8 @@ if status is-interactive
     # Bind in insert mode too
     bind -M insert \b __agentsh_guard_backward_delete
     bind -M insert \x7f __agentsh_guard_backward_delete
-    bind -M insert -k backspace __agentsh_guard_backward_delete
     bind -M insert \eb __agentsh_guard_backward_kill_word
     bind -M insert \e\x7f __agentsh_guard_backward_kill_word
     bind -M insert \cw __agentsh_guard_backward_kill_word
 end
+