fix: set TERM in local terminal so backspace/delete work#480
Merged
nadaverell merged 1 commit intomainfrom Apr 16, 2026
Merged
Conversation
xterm.js sends 0x7f for Backspace and CSI 3~ for Delete. Without TERM set, the shell's terminfo doesn't bind these sequences — Backspace shows as a space and Delete leaks through as ~. Radar launched from a GUI (desktop app, browser) inherits an env that often has no TERM. Pod exec already sets TERM=xterm-256color; local terminal was missing the same. Fixes #372
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Backspace was printing a space and Delete was printing
~in the local (OS) terminal tab. Fix by settingTERM=xterm-256coloron the shell process.Why
xterm.js sends
0x7ffor Backspace andCSI 3~for Delete. WithoutTERMset, the shell's terminfo doesn't bind these escape sequences, so they fall through as raw bytes.When Radar is launched from a GUI (desktop app, or browser opening the binary), the inherited environment typically has no
TERM. Pod exec already handles this (internal/server/exec.go:53); local terminal was missing the same.Fixes #372