Skip to content

fix(connections): block incompatible servers and preserve saved environments - #595

Merged
rynfar merged 7 commits into
pylonfrom
upstream/2026-09-17-environment-compatibility
Sep 17, 2026
Merged

rynfar merged 7 commits into
pylonfrom
upstream/2026-09-17-environment-compatibility

Conversation

@rynfar

@rynfar rynfar commented Sep 17, 2026 •

Copy link
Copy Markdown
Collaborator

Incompatible remote servers currently enter connection/retry flows without an explicit protocol check, and disconnecting saved environments can require removing them. This adds saved off-state, protocol preflight and disabled discovery entries, with neutral explanations and stable machine icons. Credentials, configuration and cached history remain saved while off.

Pylon keeps its connection layouts, editing controls, WSL lifecycle ownership and authentication parameters. Compatibility belongs to the saved target/profile; unrelated GitHub account-routing code is not imported. An explicit Check again action on web and reconnect on mobile clears an obsolete block and reruns preflight after a server upgrade. A still-incompatible server is blocked again before any RPC socket opens. Older descriptors without a version retain protocol 1 semantics; this does not guarantee compatibility between independently changed forks.

Sources through frozen head 6d1d549441be84f19696ab59ed7e2fbf305280d4:

  • 2587c8060c103245b4f970b925977008f2592d1d (#11478), required saved off-state dependency; Theo Browne, co-author Claude Fable 5.1.
  • 2c16c1d264173d86fc354e9a4c0c78cd42e514b7 (#11974), protocol preflight; Julius Marminge.
  • 935c55b3778fdeae0e25b250ce2a9fa7e79c0327 (#11990), discovery gating; Julius Marminge.
  • c1b2ed6504bbd57440d03c6a5af2736f33be7c65 (#12026), neutral unsupported presentation; Julius Marminge, co-author Claude Fable 5.1.
  • 6ee03240bccd9287a8c2246e9547697aa5857998 (#12030), stable discovered icons; Julius Marminge, co-author Claude Fable 5.1.
    Original authored commits and source references are retained. Closes Upstream integration cycle: environment compatibility #594. Review cursor unchanged; no release/install.

Validation: 208 focused tests across compatibility/resolution, registry/retry, onboarding, persistence, contracts/server descriptor, web discovery, shared state and mobile projections. Scoped contracts/client-runtime/web/mobile/desktop/server typechecks and changed-file lint pass. Recovery regressions verify both an upgraded direct environment reconnecting and a still-incompatible environment remaining blocked without opening an RPC session.

Browser verification passed in isolated worktrees with a synthetic incompatible direct server: metadata is rechecked and zero RPC sockets open while unsupported. Before/after images and retry video. Native mobile rendered/live-relay verification is not claimed.

CI exposed a native dependency leaking into the existing mobile row unit test through ThemedSwitch; the fixture now mocks that component like its other native UI dependencies. All eight affected tests pass locally. All final-head CI checks pass at f0b455f19264eebfa83ce3f8162b0fb1d2cf63f5.

Implemented and verified with GPT-6 through the Codex harness.

t3dotgg and others added 6 commits September 17, 2026 08:55
…1478)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 2587c8060c103245b4f970b925977008f2592d1d)
(cherry picked from commit 2c16c1d264173d86fc354e9a4c0c78cd42e514b7)
…990)

(cherry picked from commit 935c55b3778fdeae0e25b250ce2a9fa7e79c0327)
…r machine icon (#12026)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit c1b2ed6504bbd57440d03c6a5af2736f33be7c65)
… (#12030)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 6ee03240bccd9287a8c2246e9547697aa5857998)
@vercel

vercel Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
pylon-marketing Ready Ready Preview Sep 17, 2026 3:24pm UTC

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Sep 17, 2026
@github-actions

github-actions Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 14.0 KiB 13.9 KiB −65 B (−0.5%) 15.1 KiB ✅
Codex Thread snapshot wire 7.2 KiB 7.2 KiB −3 B (−0.0%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.8 KiB 6.7 KiB −62 B (−0.9%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 58.0 KiB 58.0 KiB −88 B (−0.1%) 66.4 KiB ✅
Codex Live turn messages 10 8 −2 (−20.0%) 21 ✅
Claude Total thread wire 14.0 KiB 14.0 KiB +10 B (+0.1%) 15.1 KiB ✅
Claude Thread snapshot wire 7.2 KiB 7.2 KiB +8 B (+0.1%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.8 KiB 6.8 KiB +2 B (+0.0%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 58.9 KiB 58.9 KiB −44 B (−0.1%) 66.4 KiB ✅
Claude Live turn messages 10 9 −1 (−10.0%) 21 ✅

Baseline: f3788ae · PR result: f0b455f · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 115.6 KiB
  • Claude decoded thread snapshot: 116.3 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@rynfar

rynfar commented Sep 17, 2026

Copy link
Copy Markdown
Collaborator Author

Browser evidence from isolated Pylon worktrees, using a synthetic direct server advertising protocol 99. Before: repeated socket connection attempts. After: a neutral compatibility explanation, saved configuration retained, and an explicit Check again action. The retry capture rechecks metadata, stays blocked, and opens zero RPC sockets. Native mobile and live relay UI verification are not claimed.

Attachments in order: before, after, retry.

before after
retry.mp4

@rynfar
rynfar marked this pull request as ready for review September 17, 2026 15:23
@rynfar
rynfar merged commit 81975aa into pylon Sep 17, 2026
24 of 25 checks passed
@rynfar
rynfar deleted the upstream/2026-09-17-environment-compatibility branch September 17, 2026 17:02

This branch was successfully deployed

1 active deployment
Preview — f0b455f1 Deployed Sep 17, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upstream integration cycle: environment compatibility

3 participants