Roaming M2.5 client: unified pairing in the one Add Environment flow - #22
Merged
Conversation
client-runtime: registerBearerGrant registers a connection from an already-exchanged bearer (the attach half of the unified handshake), verifying the descriptor at the URL matches the granted environmentId. PeerIntroduction is the peer-introduction seam: manual URL+code dialog is producer #1, T3 Cloud/relay discovery later constructs the same value with everything downstream identical. web: the Add Environment -> Remote link dialog gains the JetBrains- style sync-options step (Projects always on; Secret files pre-checked) and, when this client's session can administer its own server, drives the unified handshake (addRoamingPeer -> registerBearerGrant) instead of the plain attach; without administrative rights it falls back to plain connectPairing with no sync options shown. Attach-only outcomes get an honest toast that says how to enable offline availability. The create-pairing-URL dialog gains an 'Another machine of yours' preset (admin scopes, existing loud warning). MachineSyncSettings is deleted; the secrets toggle survives as one ordinary settings row under Remote environments, visible once paired. Sidebar: rows from a non-live remote environment (status not live or synchronizing) leave the merged list, letting the mirrored registry rows surface as offline + Materialize — fixing the visible-but-dead state a killed peer used to leave. One filter point feeds both the rendered rows and the offline-row dedup; primary and desktop-local environments are exempt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
codex review P2: a user who had explicitly disabled roamingSecretsSync would have it silently re-enabled by the pre-checked box on a later pairing. The dialog now seeds the checkbox from the current setting when roaming is already on; pre-checked only for a first pairing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
thanostourik
added a commit
that referenced
this pull request
Jul 6, 2026
…22) * Roaming M2.5 client: unified pairing in the one Add Environment flow client-runtime: registerBearerGrant registers a connection from an already-exchanged bearer (the attach half of the unified handshake), verifying the descriptor at the URL matches the granted environmentId. PeerIntroduction is the peer-introduction seam: manual URL+code dialog is producer #1, T3 Cloud/relay discovery later constructs the same value with everything downstream identical. web: the Add Environment -> Remote link dialog gains the JetBrains- style sync-options step (Projects always on; Secret files pre-checked) and, when this client's session can administer its own server, drives the unified handshake (addRoamingPeer -> registerBearerGrant) instead of the plain attach; without administrative rights it falls back to plain connectPairing with no sync options shown. Attach-only outcomes get an honest toast that says how to enable offline availability. The create-pairing-URL dialog gains an 'Another machine of yours' preset (admin scopes, existing loud warning). MachineSyncSettings is deleted; the secrets toggle survives as one ordinary settings row under Remote environments, visible once paired. Sidebar: rows from a non-live remote environment (status not live or synchronizing) leave the merged list, letting the mirrored registry rows surface as offline + Materialize — fixing the visible-but-dead state a killed peer used to leave. One filter point feeds both the rendered rows and the offline-row dedup; primary and desktop-local environments are exempt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Roaming M2.5 client: seed the secrets checkbox from the existing choice codex review P2: a user who had explicitly disabled roamingSecretsSync would have it silently re-enabled by the pre-checked box on a later pairing. The dialog now seeds the checkbox from the current setting when roaming is already on; pre-checked only for a first pairing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
thanostourik
added a commit
that referenced
this pull request
Jul 10, 2026
…22) * Roaming M2.5 client: unified pairing in the one Add Environment flow client-runtime: registerBearerGrant registers a connection from an already-exchanged bearer (the attach half of the unified handshake), verifying the descriptor at the URL matches the granted environmentId. PeerIntroduction is the peer-introduction seam: manual URL+code dialog is producer #1, T3 Cloud/relay discovery later constructs the same value with everything downstream identical. web: the Add Environment -> Remote link dialog gains the JetBrains- style sync-options step (Projects always on; Secret files pre-checked) and, when this client's session can administer its own server, drives the unified handshake (addRoamingPeer -> registerBearerGrant) instead of the plain attach; without administrative rights it falls back to plain connectPairing with no sync options shown. Attach-only outcomes get an honest toast that says how to enable offline availability. The create-pairing-URL dialog gains an 'Another machine of yours' preset (admin scopes, existing loud warning). MachineSyncSettings is deleted; the secrets toggle survives as one ordinary settings row under Remote environments, visible once paired. Sidebar: rows from a non-live remote environment (status not live or synchronizing) leave the merged list, letting the mirrored registry rows surface as offline + Materialize — fixing the visible-but-dead state a killed peer used to leave. One filter point feeds both the rendered rows and the offline-row dedup; primary and desktop-local environments are exempt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Roaming M2.5 client: seed the secrets checkbox from the existing choice codex review P2: a user who had explicitly disabled roamingSecretsSync would have it silently re-enabled by the pre-checked box on a later pairing. The dialog now seeds the checkbox from the current setting when roaming is already on; pre-checked only for a first pairing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
thanostourik
added a commit
that referenced
this pull request
Jul 16, 2026
…22) * Roaming M2.5 client: unified pairing in the one Add Environment flow client-runtime: registerBearerGrant registers a connection from an already-exchanged bearer (the attach half of the unified handshake), verifying the descriptor at the URL matches the granted environmentId. PeerIntroduction is the peer-introduction seam: manual URL+code dialog is producer #1, T3 Cloud/relay discovery later constructs the same value with everything downstream identical. web: the Add Environment -> Remote link dialog gains the JetBrains- style sync-options step (Projects always on; Secret files pre-checked) and, when this client's session can administer its own server, drives the unified handshake (addRoamingPeer -> registerBearerGrant) instead of the plain attach; without administrative rights it falls back to plain connectPairing with no sync options shown. Attach-only outcomes get an honest toast that says how to enable offline availability. The create-pairing-URL dialog gains an 'Another machine of yours' preset (admin scopes, existing loud warning). MachineSyncSettings is deleted; the secrets toggle survives as one ordinary settings row under Remote environments, visible once paired. Sidebar: rows from a non-live remote environment (status not live or synchronizing) leave the merged list, letting the mirrored registry rows surface as offline + Materialize — fixing the visible-but-dead state a killed peer used to leave. One filter point feeds both the rendered rows and the offline-row dedup; primary and desktop-local environments are exempt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Roaming M2.5 client: seed the secrets checkbox from the existing choice codex review P2: a user who had explicitly disabled roamingSecretsSync would have it silently re-enabled by the pre-checked box on a later pairing. The dialog now seeds the checkbox from the current setting when roaming is already on; pre-checked only for a first pairing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
thanostourik
added a commit
that referenced
this pull request
Jul 21, 2026
…22) * Roaming M2.5 client: unified pairing in the one Add Environment flow client-runtime: registerBearerGrant registers a connection from an already-exchanged bearer (the attach half of the unified handshake), verifying the descriptor at the URL matches the granted environmentId. PeerIntroduction is the peer-introduction seam: manual URL+code dialog is producer #1, T3 Cloud/relay discovery later constructs the same value with everything downstream identical. web: the Add Environment -> Remote link dialog gains the JetBrains- style sync-options step (Projects always on; Secret files pre-checked) and, when this client's session can administer its own server, drives the unified handshake (addRoamingPeer -> registerBearerGrant) instead of the plain attach; without administrative rights it falls back to plain connectPairing with no sync options shown. Attach-only outcomes get an honest toast that says how to enable offline availability. The create-pairing-URL dialog gains an 'Another machine of yours' preset (admin scopes, existing loud warning). MachineSyncSettings is deleted; the secrets toggle survives as one ordinary settings row under Remote environments, visible once paired. Sidebar: rows from a non-live remote environment (status not live or synchronizing) leave the merged list, letting the mirrored registry rows surface as offline + Materialize — fixing the visible-but-dead state a killed peer used to leave. One filter point feeds both the rendered rows and the offline-row dedup; primary and desktop-local environments are exempt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Roaming M2.5 client: seed the secrets checkbox from the existing choice codex review P2: a user who had explicitly disabled roamingSecretsSync would have it silently re-enabled by the pre-checked box on a later pairing. The dialog now seeds the checkbox from the current setting when roaming is already on; pre-checked only for a first pairing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
thanostourik
added a commit
that referenced
this pull request
Jul 25, 2026
…22) * Roaming M2.5 client: unified pairing in the one Add Environment flow client-runtime: registerBearerGrant registers a connection from an already-exchanged bearer (the attach half of the unified handshake), verifying the descriptor at the URL matches the granted environmentId. PeerIntroduction is the peer-introduction seam: manual URL+code dialog is producer #1, T3 Cloud/relay discovery later constructs the same value with everything downstream identical. web: the Add Environment -> Remote link dialog gains the JetBrains- style sync-options step (Projects always on; Secret files pre-checked) and, when this client's session can administer its own server, drives the unified handshake (addRoamingPeer -> registerBearerGrant) instead of the plain attach; without administrative rights it falls back to plain connectPairing with no sync options shown. Attach-only outcomes get an honest toast that says how to enable offline availability. The create-pairing-URL dialog gains an 'Another machine of yours' preset (admin scopes, existing loud warning). MachineSyncSettings is deleted; the secrets toggle survives as one ordinary settings row under Remote environments, visible once paired. Sidebar: rows from a non-live remote environment (status not live or synchronizing) leave the merged list, letting the mirrored registry rows surface as offline + Materialize — fixing the visible-but-dead state a killed peer used to leave. One filter point feeds both the rendered rows and the offline-row dedup; primary and desktop-local environments are exempt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Roaming M2.5 client: seed the secrets checkbox from the existing choice codex review P2: a user who had explicitly disabled roamingSecretsSync would have it silently re-enabled by the pre-checked box on a later pairing. The dialog now seeds the checkbox from the current setting when roaming is already on; pre-checked only for a first pairing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
thanostourik
added a commit
that referenced
this pull request
Jul 30, 2026
…22) * Roaming M2.5 client: unified pairing in the one Add Environment flow client-runtime: registerBearerGrant registers a connection from an already-exchanged bearer (the attach half of the unified handshake), verifying the descriptor at the URL matches the granted environmentId. PeerIntroduction is the peer-introduction seam: manual URL+code dialog is producer #1, T3 Cloud/relay discovery later constructs the same value with everything downstream identical. web: the Add Environment -> Remote link dialog gains the JetBrains- style sync-options step (Projects always on; Secret files pre-checked) and, when this client's session can administer its own server, drives the unified handshake (addRoamingPeer -> registerBearerGrant) instead of the plain attach; without administrative rights it falls back to plain connectPairing with no sync options shown. Attach-only outcomes get an honest toast that says how to enable offline availability. The create-pairing-URL dialog gains an 'Another machine of yours' preset (admin scopes, existing loud warning). MachineSyncSettings is deleted; the secrets toggle survives as one ordinary settings row under Remote environments, visible once paired. Sidebar: rows from a non-live remote environment (status not live or synchronizing) leave the merged list, letting the mirrored registry rows surface as offline + Materialize — fixing the visible-but-dead state a killed peer used to leave. One filter point feeds both the rendered rows and the offline-row dedup; primary and desktop-local environments are exempt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Roaming M2.5 client: seed the secrets checkbox from the existing choice codex review P2: a user who had explicitly disabled roamingSecretsSync would have it silently re-enabled by the pre-checked box on a later pairing. The dialog now seeds the checkbox from the current setting when roaming is already on; pre-checked only for a first pairing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
thanostourik
added a commit
that referenced
this pull request
Jul 31, 2026
…22) * Roaming M2.5 client: unified pairing in the one Add Environment flow client-runtime: registerBearerGrant registers a connection from an already-exchanged bearer (the attach half of the unified handshake), verifying the descriptor at the URL matches the granted environmentId. PeerIntroduction is the peer-introduction seam: manual URL+code dialog is producer #1, T3 Cloud/relay discovery later constructs the same value with everything downstream identical. web: the Add Environment -> Remote link dialog gains the JetBrains- style sync-options step (Projects always on; Secret files pre-checked) and, when this client's session can administer its own server, drives the unified handshake (addRoamingPeer -> registerBearerGrant) instead of the plain attach; without administrative rights it falls back to plain connectPairing with no sync options shown. Attach-only outcomes get an honest toast that says how to enable offline availability. The create-pairing-URL dialog gains an 'Another machine of yours' preset (admin scopes, existing loud warning). MachineSyncSettings is deleted; the secrets toggle survives as one ordinary settings row under Remote environments, visible once paired. Sidebar: rows from a non-live remote environment (status not live or synchronizing) leave the merged list, letting the mirrored registry rows surface as offline + Materialize — fixing the visible-but-dead state a killed peer used to leave. One filter point feeds both the rendered rows and the offline-row dedup; primary and desktop-local environments are exempt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Roaming M2.5 client: seed the secrets checkbox from the existing choice codex review P2: a user who had explicitly disabled roamingSecretsSync would have it silently re-enabled by the pre-checked box on a later pairing. The dialog now seeds the checkbox from the current setting when roaming is already on; pre-checked only for a first pairing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
thanostourik
added a commit
that referenced
this pull request
Aug 1, 2026
…22) * Roaming M2.5 client: unified pairing in the one Add Environment flow client-runtime: registerBearerGrant registers a connection from an already-exchanged bearer (the attach half of the unified handshake), verifying the descriptor at the URL matches the granted environmentId. PeerIntroduction is the peer-introduction seam: manual URL+code dialog is producer #1, T3 Cloud/relay discovery later constructs the same value with everything downstream identical. web: the Add Environment -> Remote link dialog gains the JetBrains- style sync-options step (Projects always on; Secret files pre-checked) and, when this client's session can administer its own server, drives the unified handshake (addRoamingPeer -> registerBearerGrant) instead of the plain attach; without administrative rights it falls back to plain connectPairing with no sync options shown. Attach-only outcomes get an honest toast that says how to enable offline availability. The create-pairing-URL dialog gains an 'Another machine of yours' preset (admin scopes, existing loud warning). MachineSyncSettings is deleted; the secrets toggle survives as one ordinary settings row under Remote environments, visible once paired. Sidebar: rows from a non-live remote environment (status not live or synchronizing) leave the merged list, letting the mirrored registry rows surface as offline + Materialize — fixing the visible-but-dead state a killed peer used to leave. One filter point feeds both the rendered rows and the offline-row dedup; primary and desktop-local environments are exempt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Roaming M2.5 client: seed the secrets checkbox from the existing choice codex review P2: a user who had explicitly disabled roamingSecretsSync would have it silently re-enabled by the pre-checked box on a later pairing. The dialog now seeds the checkbox from the current setting when roaming is already on; pre-checked only for a first pairing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
thanostourik
added a commit
that referenced
this pull request
Aug 5, 2026
…22) * Roaming M2.5 client: unified pairing in the one Add Environment flow client-runtime: registerBearerGrant registers a connection from an already-exchanged bearer (the attach half of the unified handshake), verifying the descriptor at the URL matches the granted environmentId. PeerIntroduction is the peer-introduction seam: manual URL+code dialog is producer #1, T3 Cloud/relay discovery later constructs the same value with everything downstream identical. web: the Add Environment -> Remote link dialog gains the JetBrains- style sync-options step (Projects always on; Secret files pre-checked) and, when this client's session can administer its own server, drives the unified handshake (addRoamingPeer -> registerBearerGrant) instead of the plain attach; without administrative rights it falls back to plain connectPairing with no sync options shown. Attach-only outcomes get an honest toast that says how to enable offline availability. The create-pairing-URL dialog gains an 'Another machine of yours' preset (admin scopes, existing loud warning). MachineSyncSettings is deleted; the secrets toggle survives as one ordinary settings row under Remote environments, visible once paired. Sidebar: rows from a non-live remote environment (status not live or synchronizing) leave the merged list, letting the mirrored registry rows surface as offline + Materialize — fixing the visible-but-dead state a killed peer used to leave. One filter point feeds both the rendered rows and the offline-row dedup; primary and desktop-local environments are exempt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Roaming M2.5 client: seed the secrets checkbox from the existing choice codex review P2: a user who had explicitly disabled roamingSecretsSync would have it silently re-enabled by the pre-checked box on a later pairing. The dialog now seeds the checkbox from the current setting when roaming is already on; pre-checked only for a first pairing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Client seam for M2.5 — folds M2's standalone Machine sync pairing into the existing pairing/thin-client flow, per the canonical workflow.
registerBearerGrant(registration half ofconnectPairing, factored out) registers a connection from the handshake's attach bearer, verifying the descriptor at the URL matches the granted environmentId.PeerIntroductionis the peer-introduction seam for future T3 Cloud/relay discovery.MachineSyncSettings.tsxdeleted — no second pairing flow, no "sync"/"roaming" concept anywhere. The secrets consent survives as one ordinary settings row under Remote environments, visible once paired.live/synchronizing) leave the merged list, so a killed peer's rows stop suppressing the mirrored offline+Materialize rows. Single filter point feeds both the rendered rows and the dedup (per the design-review spec); primary and desktop-local environments exempt.Resolves both P2s from the server PR's codex review (attach-only result now consumed; syncOptions now sent from the dialog).
🤖 Generated with Claude Code