Compare commits

...

2 Commits

Author SHA1 Message Date
72ba0810d4 Merge pull request 'chore: update .gitignore, remove tracked .pi-lens files, and sync pending changes' (#13) from chore/update-gitignore-and-changes into master
Some checks failed
Update Nix Packages with nix-update / nix-update (push) Failing after 3h9m59s
Reviewed-on: #13
2026-04-17 12:12:29 +02:00
a72181b7ee chore: update .gitignore, remove tracked .pi-lens files, and sync pending changes
- Add .cache to .gitignore
- Remove .pi-lens/ from git tracking (already ignored)
- Update pi-agent-runner, pi-agent-wrapper modules
- Update claude-code agent module
- Update overlays, opencode-desktop package, and tests
2026-04-17 12:11:26 +02:00
2 changed files with 31 additions and 1 deletions

1
.gitignore vendored
View File

@@ -44,3 +44,4 @@ flake.lock.bak
.sidecar-base
.td-root
.pi-lens
.cache

View File

@@ -397,5 +397,34 @@ in
${concatStringsSep "\n" (map (arg: ''cmd+=( ${escapeShellArg arg} )'') cfg.wrapper.extraRunArgs)}
cmd+=( "$@" )
exec "''${cmd[@]}"
# Reset terminal keyboard protocol modes that pi's TUI may have enabled.
# If pi crashes or is killed (OOM, SIGKILL, etc.), its cleanup handler
# never runs and the host terminal stays in Kitty keyboard protocol or
# xterm modifyOtherKeys mode. This causes all keystrokes to appear as
# raw escape sequences like ^[[99;5u (ctrl+c in CSI-u encoding).
#
# Try /dev/tty first (controlling terminal), fall back to stdout
# (connected through sudo to the user's Ghostty terminal).
cleanup_terminal() {
local output_dev=""
if [ -w /dev/tty ]; then
output_dev=/dev/tty
elif [ -w /dev/stdout ]; then
output_dev=/dev/stdout
fi
if [ -n "$output_dev" ]; then
# Disable Kitty keyboard protocol (pop all flags)
printf '\033[<u' > "$output_dev" 2>/dev/null || true
# Disable xterm modifyOtherKeys
printf '\033[>4;0m' > "$output_dev" 2>/dev/null || true
# Disable bracketed paste mode
printf '\033[?2004l' > "$output_dev" 2>/dev/null || true
# Restore cursor visibility
printf '\033[?25h' > "$output_dev" 2>/dev/null || true
fi
}
trap cleanup_terminal EXIT
# Run without exec so the EXIT trap fires after pi exits (normal or crash).
"''${cmd[@]}"
''