Repository navigation
Conversation
f23a41c to
94d8d48
Compare
|
CI note:
|
664c5e1 to
2821af1
Compare
|
排查补充:手机端远程会话仍可用,说明设备登记与会话链路正常;桌面端 Connections 布局缺失来自 renderer 的 |
|
感谢排查,Connections 页只剩 SSH 的现象和 dispatcher 搬到
再次感谢! |
Codex 26.1016 起 dispatcher 类定义并导出在 app-shared-*(getInstance 单例), app-initial-* 只导入不再导出,setting-storage-* / vscode-api-* 已不存在。 原来三个前缀全部落空,补丁失败 8 次后自动放弃,纯 API / 聚合 / 官登混入 Key 下 thread/start、thread/resume、turn/start 的 modelProvider 改写整层失效。 本机日志与 app.asar 解析均已确认。补按 26.1016 实际模块结构构造的回归测试。 思路来自 PR #2657(Rat0323)。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
补充一下:你发现的 核实过程:
PR 剩下的部分(在没有开关的情况下强开 Statsig 的 |
|
已按 review 意见把这个修复收窄为 opt-in:
本地验证:
PR 已从 draft 转为 ready for review。 |
Codex 26.1016 起 dispatcher 类定义并导出在 app-shared-*(getInstance 单例), app-initial-* 只导入不再导出,setting-storage-* / vscode-api-* 已不存在。 原来三个前缀全部落空,补丁失败 8 次后自动放弃,纯 API / 聚合 / 官登混入 Key 下 thread/start、thread/resume、turn/start 的 modelProvider 改写整层失效。 本机日志与 app.asar 解析均已确认。补按 26.1016 实际模块结构构造的回归测试。 思路来自 PR #2657(Rat0323)。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8fe42fc to
7a696cd
Compare
|
Status update after checking Codex Desktop 26.1021 I re-checked this against the current Codex Desktop build. The 26.1016-specific
This PR is therefore closing as superseded by the current Codex Desktop behavior. The more general |
Problem
Codex desktop 26.1016.6573.0 gates the Connections page on a new desktop feature flag:
control: kewhereke = useGate("2171042036")shouldLoadRemoteControlConnectionsdefaults tofalse; while it stays false,refreshRemoteControlConnections()writesremote_control_connections_state = { available: false }control-this-mac/access-other-deviceswhen that state is available; SSH is unconditionalWith a relay profile that keeps the ChatGPT session identity (
activeRelaySessionProvider = "openai", upstream API configured), thecontrolgate evaluates tofalseunder the relay launch even though the account is still signed in and the device enrollment is valid. This PR does not try to decide whether an account is genuinely in the rollout; it exposes an explicit opt-in repair for the UI gate.The original hard-forcing behavior is intentional. Users who are not affected, or who want the native Statsig result, keep the default-off state.
Fix
This PR is limited to the remote-control gate repair. The separate
app-shared-*dispatcher discovery issue was already merged in9e5360c; this branch has been synced against latestmainaccordingly.The repair is controlled by a new backend setting:
It only rewrites
electron-desktop-features-changedtocontrol: truewhen all of the following are true:codexAppRemoteControlGateRepairEnabled === trueupstreamBaseUrlactiveRelaySessionProvider === "openai"Pure API profiles (
activeRelaySessionProvider = "custom") and official-only profiles without a relay upstream stay untouched: official remote control requires ChatGPT authentication, so forcing the flag there would only create a broken entry or a sign-in prompt.The renderer also keeps a lightweight replay path:
electron-desktop-features-changedpayloadThat avoids two known edge cases:
control: truesticking around after switching from an OpenAI-identity relay profile to a pure API profileTests
node scripts/assemble-renderer-inject.mjs --checkcargo test --release -p codex-plus-core --lib remote_control_gate_repair_defaults_off_for_legacy_settingscargo test --release -p codex-plus-core --test cdp_bridge injection_script_preserves_native_tiers_and_shared_provider_contractsnpm testinapps/codex-plus-managernpm run checkinapps/codex-plus-managerThe contract test asserts:
controluntouched while the switch is off