[Bug]: ACP adapter re-sends an unchanged model, which resets Copilot's 1M context tier
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 74/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- backend
Línea de trabajo
Lee packages/provider-acp/src/server/adapter.ts en torno a la configuración del modelo de la opción de configuración en las líneas 6694–6709 y compárala con la comprobación de session/set_model que aparece justo debajo. Reproduce el caso con una sesión ACP cuyo modelo actual ya coincide con el modelo solicitado e inspecciona el registro de la sesión. La tarea se considera completada cuando el adaptador omite el ajuste redundante de la opción de configuración y conserva los cambios de modelo cuando el modelo solicitado es distinto.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
[!NOTE]
🤖 Claude Opus 5.5 responding on behalf of uzairansaruzi
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
- Add GitHub Copilot through the ACP Registry (agent
github-copilot-cli). - Start Copilot on a long-context-eligible model with the 1M tier:
copilot --acp --model claude-opus-5.5 --context long_context, or set"contextTier": "long_context"in~/.copilot/settings.json. - Start a T3 Code thread on
claude-opus-5.5and send a message. - Read the session journal at
~/.copilot/session-state/<session-id>/events.jsonl.
Expected behavior
The model the thread wants is already the session's current model, so T3 Code leaves it alone and the session keeps the tier Copilot started with.
Actual behavior
T3 Code sends session/set_config_option {configId: "model", value: "claude-opus-5.5"} even though currentValue is already claude-opus-5.5. Copilot treats every model change as clearing the context tier, so the session drops to the 200K default.
On the config-option path, the adapter sets the model without checking the current value:
https://github.com/pingdotgg/t3code/blob/960d5761c13f68a2f10635bcd26489a5fa404ec1/packages/provider-acp/src/server/adapter.ts#L6694-L6709
The session/set_model path just below skips a model that already matches:
https://github.com/pingdotgg/t3code/blob/960d5761c13f68a2f10635bcd26489a5fa404ec1/packages/provider-acp/src/server/adapter.ts#L6715-L6717
The real fix belongs in Copilot CLI (github/copilot-cli#4275). Its ACP model switch drops contextTier, and the tier isn't offered as a config option. Skipping a model set that changes nothing still matters on our side: it is the only thing resetting the tier when the thread model matches Copilot's startup model. It also brings the two paths in line.
Once Copilot advertises a context-tier config option, T3 Code should show it with no changes (sessionConfig.ts passes through everything outside the model and collaboration_mode categories).
Impact
Major degradation or frequent failure
Version or commit
0.1.4-nightly.20261028.3841 (code references at main @ 960d576)
Environment
macOS 26, GitHub Copilot CLI 1.0.104 over ACP, claude-opus-5.5
Logs or stack traces
# Copilot started with --model claude-opus-5.5 --context long_context, then T3 Code's model set
1 session.start {"selectedModel":"claude-opus-5.5","contextTier":"long_context"}
2 session.model_change {"newModel":"claude-opus-5.5","previousModel":"claude-opus-5.5","contextTier":null,"source":"sdk"}
6 session.usage_record maxPromptTokens: 200000
# Every recent T3 Code Copilot session (Copilot 1.0.97 to 1.0.104) shows the same pattern
2 session.model_change {"newModel":"claude-opus-5.5","contextTier":null,"source":"sdk"}
8 session.usage_record maxPromptTokens: 200000
Workaround
None in T3 Code today. The launch flag and the settings.json tier are both cleared by the model set. Over ACP, /model -s <id> takes no tier argument and doesn't restore the saved tier. The interactive copilot CLI is the only way to get the 1M window.
- Lenguaje dominante
- TypeScript
- Estrellas
- 24.8k
- Forks
- 6.4k
- Merge medio
- 14 h 12 min
- PR fusionados (30 d)
- 194
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
- Tiene una 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 pingdotgg/t3code
-
via-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Pi provider reports "timed out" on pi --version because the version probe timeout is only 4 sAbiertovia-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
[Bug]: Update button overflows the sidebar at its minimum widthPosiblemente ocupada @Derpedyea la tomó hace 2 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
pingdotgg/t3code#27767 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
[Bug]: Dragging a sidebar thread from the lower part of the list auto-scrolls the sidebar to the bottomPosiblemente ocupada @juliusmarminge la tomó hace 2 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
pingdotgg/t3code#27146 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de pingdotgg/t3code
Issues similares
-
docker infra P1 security size:S
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
josephfung/curia#2408 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
ehmpathy/rhachet-roles-ehmpathy#1231 ·
Los mantenedores suelen responder en 1 día
-
enhancement good first issue help wanted
Dificultad 2/5 Medio día Aptitud para principiantes 70/100
danielw-sudo/agentuto#32 ·
Los mantenedores suelen responder en 1 día
-
type:docs
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
nightgauge/nightgauge#2836 ·
Los mantenedores suelen responder en 1 día