mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-10 22:21:22 -07:00
fix(core): whitelist TERM and COLORTERM in environment sanitization
Terminal editors (vim, emacs) and interactive commands (top) fail when these variables are redacted. They are safe to pass through as they only describe terminal capabilities. Fixes #20444
This commit is contained in:
@@ -32,6 +32,28 @@ describe('sanitizeEnvironment', () => {
|
||||
expect(sanitized).toEqual(env);
|
||||
});
|
||||
|
||||
it('should allow TERM and COLORTERM environment variables', () => {
|
||||
const env = {
|
||||
TERM: 'xterm-256color',
|
||||
COLORTERM: 'truecolor',
|
||||
};
|
||||
const sanitized = sanitizeEnvironment(env, EMPTY_OPTIONS);
|
||||
expect(sanitized).toEqual(env);
|
||||
});
|
||||
|
||||
it('should preserve TERM and COLORTERM even in strict sanitization mode', () => {
|
||||
const env = {
|
||||
GITHUB_SHA: 'abc123',
|
||||
TERM: 'xterm-256color',
|
||||
COLORTERM: 'truecolor',
|
||||
SOME_OTHER_VAR: 'value',
|
||||
};
|
||||
const sanitized = sanitizeEnvironment(env, EMPTY_OPTIONS);
|
||||
expect(sanitized['TERM']).toBe('xterm-256color');
|
||||
expect(sanitized['COLORTERM']).toBe('truecolor');
|
||||
expect(sanitized['SOME_OTHER_VAR']).toBeUndefined();
|
||||
});
|
||||
|
||||
it('should allow variables prefixed with GEMINI_CLI_', () => {
|
||||
const env = {
|
||||
GEMINI_CLI_FOO: 'bar',
|
||||
|
||||
@@ -71,6 +71,10 @@ export const ALWAYS_ALLOWED_ENVIRONMENT_VARIABLES: ReadonlySet<string> =
|
||||
'TMPDIR',
|
||||
'USER',
|
||||
'LOGNAME',
|
||||
// Terminal capability variables (needed by editors like vim/emacs and
|
||||
// interactive commands like top)
|
||||
'TERM',
|
||||
'COLORTERM',
|
||||
// GitHub Action-related variables
|
||||
'ADDITIONAL_CONTEXT',
|
||||
'AVAILABLE_LABELS',
|
||||
|
||||
Reference in New Issue
Block a user