Add per-session env overrides for built-in shell tool child processes
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- shell, typescript
Línea de trabajo
Empieza siguiendo la estructura wire de ShellOptions y el manejo de session.rpc.options.update descritos en la issue. Revisa cómo se comportan shell e initScripts entre actualizaciones y al reanudar, y después determina con precisión la semántica de reemplazo, precedencia, eliminación mediante null y persistencia; el trabajo estará terminado cuando el overlay de env esté representado y aplicado de forma coherente a los procesos hijo del shell integrado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Follow up to #1911. The initScripts half of that ask shipped through the runtime in github/copilot-agent-runtime#12710, but the per-session env part was deferred out of that PR.
Context: https://github.com/microsoft/vscode/issues/323164
initScripts covers the Python activation case since the host can materialize a shell-specific activation file and have the runtime source it before each command. An explicit env map is still worth having for hosts that just want to set or unset a few variables without generating script files, and without dealing with per-shell quoting.
Current wire shape:
export interface ShellOptions {
initProfile?: "none" | "non-interactive";
initScripts?: ShellInitScript[];
processFlags?: string[];
}
Add the env map from the original proposal:
export interface ShellOptions {
/** Env applied to built-in shell tool child processes. `null` unsets/removes. */
env?: Record<string, string | null>;
}
The reason this was deferred is that the update semantics should be pinned down before the wire shape ships:
- Whether
session.rpc.options.updatewithshell.envreplaces the whole overlay or merges per key. Replace seems right: it stays idempotent and a host can revert a variable to the inherited value by omitting it. With merge there is no way to un-touch a variable once set. - Precedence: overlay applied to the spawned process env first,
initScriptssourced after, so scripts can override. nullmeaning remove-from-env vs revert-to-inherited.- Whether the overlay persists across resume or the host re-sends it, matching how the rest of
shellbehaves today.
(generated by copilot)
- Lenguaje dominante
- TypeScript
- Estrellas
- 10.5k
- Forks
- 1.5k
- Merge medio
- 1 d 6 h
- PR fusionados (30 d)
- 106
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de github/copilot-sdk
-
documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
github/copilot-sdk#2804 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
github/copilot-sdk#2798 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
github/copilot-sdk#2793 ·
Los mantenedores suelen responder en 1 día
-
agentic-workflows
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
github/copilot-sdk#2782 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
github/copilot-sdk#2781 ·
Los mantenedores suelen responder en 1 día
Todos los issues de github/copilot-sdk
Issues similares
-
area/core status/need-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
google-gemini/gemini-cli#29602 ·
Los mantenedores suelen responder en 1 día
-
area: backend enhancement priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
snapotter-hq/SnapOtter#1879 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Tencent/BrowserSkill#390 ·
Los mantenedores suelen responder en 1 día
-
good first issue status: needs triaging type: bug version: 2.0
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
medusajs/medusa#17094 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día