Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

[Bug]: Remote environments stay switched off after a protocol mismatch, even once the host is updated

Đã đóng Phù hợp với người mới
#15,051 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@vitalyiegorov đang làm issue này rồi.

Từ ngày 3/10/2026.

  • #15052 của @vitalyiegorov — đang mở
  • #19251 của @shivamhwp — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
78/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
typescript
Lĩnh vực
desktop

Hướng nghiên cứu

Bắt đầu trong packages/client-runtime/src/connection/registry.ts tại setCompatibility, sau đó theo dõi cách enabled và unsupportedReason ảnh hưởng đến kết nối và kết nối lại. Tái hiện một lỗi không tương thích giao thức, sau đó là một lần cập nhật host; hoàn thành khi compatibility chỉ chặn các kết nối trong runtime, các môi trường tương thích kết nối lại và các môi trường được chủ ý tắt vẫn ở trạng thái tắt.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug via-triage
Before submitting
  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.
Area

Not sure

Steps to reproduce
  1. Update the client to a release with a new orchestration protocol (here #2829, 0.0.46-nightly.20261003.2610). A saved T3 Connect host, switched on, is still on the old protocol. Its row shows Client not supported.
  2. Update the host to the same release.
  3. Look at Settings → Connections, with or without relaunching the client.
Expected behavior

The environment reconnects once its host is compatible. The user never switched it off.

Actual behavior

It stays Off (tooltip: Switched off), and its threads disappear until the user notices and turns it back on by hand.

Cause

setCompatibility in packages/client-runtime/src/connection/registry.ts writes an incompatible environment into the user's persisted switched-off list (registrations.setEnabled(id, false)). The reason (unsupportedReason) is kept only in memory. When a fresh check clears it, or after a relaunch, the entry is indistinguishable from one the user switched off, so nothing turns it back on.

Suggested fix

Treat compatibility as runtime state. Keep setting unsupportedReason and disconnecting, but stop changing enabled or the persisted list. Connect only when enabled && !unsupportedReason, and reconnect when the block clears. An environment the user switched off stays off. I can open the PR.

Impact

Major degradation or frequent failure

Version or commit

[email protected] (main 8283b481a3)

Environment

macOS desktop client. Hosts: macOS (launchd) and Linux (systemd) services over T3 Connect.

Screenshots, recordings, or supporting files

Both hosts updated to the same nightly with relay tunnels registered. The client still shows them switched off:

Both saved environments stuck at T3 Connect · Off after their hosts were updated

Workaround

Turn each environment back on in Settings → Connections.

Related
  • #14979: same symptom, and its reporter confirmed every host was on the same build. Its triage scoped that issue to switch contrast (#14984), so this failure is untracked.
  • #11990 introduced persisting the rejection as switched off.
Ngôn ngữ chính
TypeScript
Star
24.8k
Fork
6.4k
Merge trung bình
3 giờ 39 phút
Pull request đã merge (30 ngày)
301

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của pingdotgg/t3code

Tất cả issue của pingdotgg/t3code

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.