# Desktop app: BYOK custom model provider is not forwarded to remote (WSL) se...
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 45/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- github, linux, ubuntu
调研方向
Start by tracing remote session creation and the existing LlmInferenceSetProvider and ProviderTokenAcquire RPCs described in the report. Compare provider handling for local and WSL sessions; done means the configured BYOK provider and models are available remotely without falling back to GitHub models.
由索引模型根据 Issue 内容生成。
描述
Desktop app: BYOK custom model provider is not forwarded to remote (WSL) sessions — BYOK models unavailable, requests fall back to GitHub models
Environment
- GitHub Copilot desktop app 1.1.22 on Windows 11
- WSL2 (Ubuntu),
.wslconfigwithnetworkingMode=mirrored - BYOK provider configured in app settings: OpenAI-compatible endpoint (
https://ollama.com/v1), wire APIresponses, with models such askimi-k3andGLM-5.3 - Windows-side CLI 1.0.84-5; remote CLI in WSL at
~/.cache/github-copilot-sdk/cli/1.0.79(binary reports 1.0.86); copilotd 0.7.3 - Projects whose path lives inside the WSL filesystem run as remote sessions (via copilotd on the WSL side)
What happens
- Sessions on Windows-path projects: BYOK models are selectable and work correctly.
- Sessions on WSL-path projects (remote sessions): BYOK models are not available. The remote CLI log shows:
Model 'GLM-5.3' from CLI argument/session ... not available. Falling back to next option.
and requests are served by GitHub's model routing instead of the configured provider.
Repro
- In the app, add a custom model provider (BYOK) and add models to it.
- Add a project whose repository is inside the WSL filesystem.
- Create a session on that project and observe the fallback (or inability to select the BYOK model).
Evidence that the gap is provider-registry forwarding
- The remote copilotd/CLI processes do receive the full
COPILOT_PROVIDER_*environment variable set (verified via/proc/<pid>/environ), but the server-mode CLI ignores env-var BYOK — in server mode the provider is controlled by the host over RPC, so the env vars are inert there. - Running the same CLI directly in a WSL terminal with the same env vars works perfectly (verified even with
COPILOT_HOMEisolated and no GitHub auth) — so the endpoint, credentials, and network path are all fine. - copilotd 0.7.3 already ships the remote BYOK plumbing:
LlmInferenceSetProvider,ProviderTokenAcquire(providerName,accessToken,expiresIn,tokenType),LlmInferenceHttpRequestStart/Chunk— so an RPC path for forwarding providers exists. - The app binary contains the flow strings ("provider registry attached to new session", "re-applying provider registry on session resume"), but no provider-registry activity appears in app logs when a remote session is created.
Conclusion: when creating a remote session, the app passes the model name (e.g. GLM-5.3) but does not attach/forward the provider registry, so the remote CLI has no provider for those model IDs and falls back to GitHub models.
Expected behavior
The BYOK provider and its models should be forwarded to remote sessions via the existing SetProvider/ProviderTokenAcquire RPCs, so remote (WSL) sessions can use BYOK models just like local sessions.
Additional observations (possibly related)
- Every remote session creation logs
skills.discover: Invalid working directory(customization discovery failure). - After an app restart, remote sessions fail to resume:
resume_sessionreports "session not found".
| Field | Value |
|---|---|
| App version | 1.1.22 |
| OS | Windows 10.0.26340 |
| Theme | GitHub |
| Path | /chat |
| Tenure | Week 5 |
- 主要语言
- 没有语言数据
- 星标
- 2.1k
- 派生
- 157
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
github/app 的其他 Issue
-
triage
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 65/100
-
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 70/100
相似的 Issue
-
`--app` focus through the daemon can pick an off-screen window and refuse with `axElementNotFound` 未关闭clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:other issue-rating: 🦞 diamond lobster no-stale P1
难度 2/5 1-3 小时 新手友好度 88/100
-
bug
难度 2/5 1-3 小时 新手友好度 76/100
-
难度 1/5 1 小时以内 新手友好度 92/100
CachyOS/cachyos-aur-derived#754 ·
-
bug draftomen size: S
难度 2/5 1-3 小时 新手友好度 82/100
andreagrandi/draftomen#681 ·
-
bug good first issue
难度 2/5 1-3 小时 新手友好度 75/100
alexgorbatchev/simple-ptt#11 ·