You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(renderer): exclude durable and unready RPC catalog entries from known Hosts - #758
Codex Desktop 26.1027+ touches the RPC signal-family map during [remote-connections/bootstrap] catalog_synced for:
"durable" — Desktop's built-in Long-lived Cloud Host (wss://codex-cloud-backend.chatgpt.com/), which has { status: "unavailable" } and is not a codexhost Host runtime.
"remote-control:env_e_<id>" — cloud environments synced from the user's account catalog, which remain { status: "disconnected" } with generation: null when not connected.
Previously, rendererHostRpcHostIds returned [...discovery.family.keys()] unconditionally, causing knownHostIds() to expose "durable" and disconnected remote-control:env_e_<id> entries to Settings → Connections and Settings → Usage Statistics, where they rendered with fallback labels (durable and env_e_<id>) and failed Harness directory discovery.
Reject "durable" in resolveRendererHostRpc and rendererHostRpcHostIds.
Filter discovery.family.entries() in rendererHostRpcHostIds so only entries with status === "ready", matching client.hostId, and a callable/object client.rpc are returned.
Exclude "durable" from forHost and knownHostIds().
Filter knownHostIds() by connectionFor(hostId) !== null (and resolve(current, hostId) !== null for RPC entries) so disconnected remote-control: entries with generation: null are not advertised.
This change keeps Desktop's built-in durable entry and disconnected remote-control entries out of Host discovery, routing, Harness probing, and the Connections and Usage Statistics lists. Ready, connected Hosts continue to appear as before. No concrete merge-blocking defect was established. The one open question is whether Desktop's durable Composer is affected, and it can only be answered by checking real Desktop behavior.
Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 7 remain after this review.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #757
Summary
Codex Desktop
26.1027+touches the RPCsignal-familymap during[remote-connections/bootstrap] catalog_syncedfor:"durable"— Desktop's built-inLong-lived Cloud Host(wss://codex-cloud-backend.chatgpt.com/), which has{ status: "unavailable" }and is not acodexhostHost runtime."remote-control:env_e_<id>"— cloud environments synced from the user's account catalog, which remain{ status: "disconnected" }withgeneration: nullwhen not connected.Previously,
rendererHostRpcHostIdsreturned[...discovery.family.keys()]unconditionally, causingknownHostIds()to expose"durable"and disconnectedremote-control:env_e_<id>entries toSettings → ConnectionsandSettings → Usage Statistics, where they rendered with fallback labels (durableandenv_e_<id>) and failed Harness directory discovery.Changes
packages/desktop-control/src/renderer-host-rpc-discovery.ts:"durable"inresolveRendererHostRpcandrendererHostRpcHostIds.discovery.family.entries()inrendererHostRpcHostIdsso only entries withstatus === "ready", matchingclient.hostId, and a callable/objectclient.rpcare returned.packages/desktop-control/src/renderer-host-rpc-routing.ts&packages/desktop-control/src/renderer-host-routing.ts:"durable"fromforHostandknownHostIds().knownHostIds()byconnectionFor(hostId) !== null(andresolve(current, hostId) !== nullfor RPC entries) so disconnectedremote-control:entries withgeneration: nullare not advertised.packages/renderer-extension/src/renderer-binding-probe.ts&packages/renderer-extension/src/renderer-usage-statistics-source.ts:"durable"enteringharnessAvailabilityByHost,connectionDiagnostics,activeModelHostId, or usage statistics Host lists.renderer-host-rpc-routing.test.ts,renderer-binding-probe-host-catalog.test.ts, andrenderer-usage-statistics-source.test.ts.docs/architecture/official-traffic-ownership.md.Validation
npm run build:typescriptnpx vitest run --config tests/vitest.config.js packages/desktop-control/test/renderer-host-rpc-routing.test.ts packages/desktop-control/test/renderer-host-routing.test.ts packages/renderer-extension/test/renderer-binding-probe-host-catalog.test.ts packages/renderer-extension/test/renderer-usage-statistics-source.test.ts packages/renderer-extension/test/settings/pages.test.ts(5 files, 196 tests passed)npm run build:renderernpm run typechecknpm run lintnpm run format:check