[Bug] Resumed session injects COLORTERM=truecolor and changes prompt highlight color
Personne n'a encore pris cette issue.
- Langage dominant
- Shell
- Étoiles
- 11.2k
- Forks
- 1.9k
- Merge moyen
- 14 h 16 min
- PR mergées (30 j)
- 6
Description
Describe the bug
Resuming a Copilot CLI session can inject COLORTERM=truecolor into the spawned session process even though the launching shell and parent Copilot process have COLORTERM unset. This changes the submitted-user-prompt highlight from the terminal-palette green rendering to a gray truecolor background.
The result is inconsistent UI rendering between two Copilot sessions launched by the same WSL user, with the same global theme: "github" setting, the same Windows Terminal profile, and TERM=xterm-256color.
Process inspection showed:
- Direct launch from Bash:
- process is a direct child of the login shell;
COLORTERMis unset;- submitted user prompts have a green highlight.
- Resumed session:
copilot --allow-all --remote --resumespawns a child Copilot process with--session-id;- the shell and parent Copilot process have
COLORTERMunset; - the spawned child has
COLORTERM=truecolor; - submitted user prompts have a gray highlight.
There is no repository-local Copilot setting or Git color configuration explaining the difference. copilot help config exposes only whole-theme presets and no prompt-background setting.
Affected version
GitHub Copilot CLI 1.0.76-3
The long-running resumed session was originally started on an earlier 1.0.76 build and survived CLI updates, but the current process/executable reports 1.0.76-3.
Steps to reproduce the behavior
-
Open a fresh WSL2 Bash shell in Windows Terminal.
-
Confirm the variable is absent:
printenv COLORTERM -
Launch Copilot directly:
copilot --allow-all --remote -
Submit a prompt and observe the user-message highlight.
-
In another fresh shell with
COLORTERMstill unset, resume a saved session:copilot --allow-all --remote --resume -
Select a session, submit a prompt, and observe that the highlight color differs.
-
Inspect the processes:
ps -eo pid,ppid,args | grep '[c]opilot' tr '\0' '\n' </proc/<copilot-pid>/environ | grep -E '^(TERM|COLORTERM|WT_SESSION)=' -
Observe that the resumed child has
COLORTERM=truecolor, while its parent Copilot process and launching Bash shell do not.
Expected behavior
Copilot CLI should preserve the launching terminal's color-capability environment consistently across direct, resumed, and restarted sessions.
A resumed child process should not inject or change COLORTERM relative to its launching shell/parent. With the same terminal and theme setting, submitted user prompts should render with the same highlight colors.
Additional context
- OS: WSL2 Linux, x86_64
- Terminal: Windows Terminal
- Shell: Bash login shell
TERM=xterm-256colorin both sessions- Same Windows Terminal profile ID in both sessions
- User setting:
"theme": "github" - No repository-local theme/config override found
- The only observed discriminator was
COLORTERM=truecoloron the resumed child
Related open issues:
- #3591 — user prompt visual distinction/configuration
- #4292 — truecolor-related rendering differences
- #4212 — prompt/highlight rendering differs by terminal context
This report is narrower: it concerns Copilot CLI's resumed-session process launch changing COLORTERM, producing different rendering without any terminal, user, repository, or theme-setting change.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez les lancements directs et repris dans WSL2 Bash, puis inspectez le processus enfant repris avec ps et /proc//environ comme indiqué. Suivez la manière dont le processus enfant avec --session-id est lancé et assurez-vous qu’il conserve l’état de COLORTERM du shell qui le lance ; le travail est terminé lorsque les sessions directes, reprises et redémarrées affichent le même surlignage de l’invite avec les mêmes paramètres du terminal.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- bash, linux, shell
- Domaine
- cli, operating-systems
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100