Repository navigation
feat: prepare experimental support for Dots-assisted connection recovery #45
Copy link
Copy link
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestpriority: mediumPlanned work after higher-priority prerequisites.Planned work after higher-priority prerequisites.
Milestone
Description
목적
Dots를 이용한 연결 복구를 사용자가 재현할 수 있는 실험 기능으로 공개하기 위한 지원 범위, 설정 문서, 운영·중지 방법과 공개 조건을 정리합니다. v0.5.0 후보 작업을 묶는 공개 준비 이슈이며, 정식 자동복구 지원이나 릴리스 포함을 선행 약속하지 않습니다.
현재 근거
2026-10-23에 Dots가 유효한 claim을 받은 뒤 기존 start.sh를 한 번 실행하고, 외부의 새 SSH·Tailscale ping으로 연결 복구가 확인됐습니다. 다만 Mac→MCP 서버 전송의 SSH 재인증, 복구 지침 구체화 및 명시적 재개 요청이 개입한 사례입니다. 사람의 개입 없이 전체 경로가 복구된 장기 운영 실적으로 취급하지 않습니다.
- 상세 실측: research: investigate external MCP event triggers for Dots recovery #43 (comment)
- 현재 구성은 개인 외부 서버·인증 서버·MCP 연결·외부 감시에 의존하므로 일반 사용자에게 그대로 요구하기에는 설정 부담이 있습니다.
- 이벤트 수신과 실제 실행 사이에 지연이 있으며, 새 실행 환경의 터미널 접근과 설치 파일·인증 state 보존도 조건입니다.
기존 이슈와 역할
- research: investigate external MCP event triggers for Dots recovery #43: MCP 전달·구독·인증, 관측 전송 신뢰성, 실제 실행과 외부 복구 검증. 해당 연구·구현을 이 이슈로 옮기지 않습니다.
- feat: coordinate local watchdog and external recovery lifecycle #44: 내부 watchdog과 외부 복구의 역할, 중복 실행 방지, 재시도 한도, 시작·중지 정책.
- research: validate Dots lifecycle, recovery, and proxy compatibility #20: Dots 수명 주기와 복구 범위의 실측 근거.
- feat: add opt-in automatic updates with recovery safeguards #31: opt-in 자동 업데이트. 자동복구 활성화가 자동 업데이트 승인으로 이어지지 않도록 구분합니다.
- 이 이슈: 위 결과를 바탕으로 사용자가 설정하고 운영할 수 있는 실험 기능의 공개 조건과 문서·사용 흐름을 통합합니다.
공개 단계와 범위
- 예약 작업 방식 평가: 개인 외부 서버 없이 설정 가능한 진입 경로로 우선 검토합니다. 주기적 점검 지연, 새 실행 환경에서의 실행 가능성, 다른 계정의 설정 재현을 검증해야 합니다. 공유 URL이 존재한다는 이유만으로 다른 계정의 복제·사용을 지원한다고 기재하지 않습니다.
- MCP 고급 실험 지원: 외부 감시·인증·이벤트 서버를 운영할 수 있는 사용자용 선택지로 분리합니다. 서버리스/호스팅형 경로는 구현·운영 조건을 검증한 뒤 채택 여부를 결정합니다.
- 정식 자동복구 지원 판단: 사람 개입 없는 자연 장애 복구와 장기 운영 결과가 쌓인 뒤 별도로 결정합니다.
예약 작업 방식의 구체적인 연구·개발에 착수할 때 별도 이슈를 만들어 이 이슈에 연결합니다. 이 이슈 등록만으로 신규 자동화·서버·OAuth·호스팅 서비스를 배포하지 않습니다.
공개 준비 작업
- 각 방식의 준비물, 사용자 작업 수, 예상 운영 부담을 비교하고 최초 공개 경로를 결정합니다. 개인 서버·특정 브라우저 자동화 도구가 모든 사용자에게 있다고 가정하지 않습니다.
- 설치 → 명시적 opt-in → 권한 범위 확인 → 상태 확인 → 중지·해제의 사용자 흐름을 정의합니다. 기본 설치만으로 외부 이벤트 전송이나 자동 실행이 활성화되지 않아야 합니다.
- 복구 지침 템플릿을 버전 관리합니다. 기존 시작 경로의 지정된 chmod·서비스 시작·상태/로그 갱신은 허용하고, 키 교체·state 초기화·재설치/재로그인·권한 확대·네트워크 정책 변경은 구분합니다.
- 실행 준비, fresh 관측, claim, 1회 실행, 결과 보고, 외부 SSH·ping 확인을 단계별로 설명합니다. 실행 전 중단·관측 전달 중단·인증 만료 시 사용자가 조치할 수 있는 진단을 제공합니다.
- #43의 무인 인증 경로, 관측 전달/신선도 경고, claim 전 중단 사유 기록의 해결 상태를 확인합니다.
- #44의 중복 실행·재시도 예산·명시적 중지·watchdog 정책과 연결합니다. 복구 중지와 Tailscale 연결 중지의 차이를 문서에 명확히 표시합니다.
- 다른 계정의 새 설정으로 절차를 재현하고, 계정별 권한·구독·이벤트 격리 및 해제를 확인합니다. 비밀이나 기존 개인 설정을 배포 자료에 포함하지 않습니다.
- 영어 기본 문서와 한국어 문서에 지원 범위·실측·한계·중지 방법을 반영하고, 다른 제공 언어에도 같은 사실을 적용합니다.
실험 기능 공개 조건
- 공개할 경로에서 사용자가 문서만으로 설정·진단·중지할 수 있습니다.
- 사람의 수정·재인증·재개 요청 없이 자연 장애 → 복구 요청/예약 실행 → start.sh 실행 → 새 외부 SSH·ping 정상까지 확인하고, 조건·시각·실패 사례를 기록합니다.
- 새 실행 환경/VM 교체 뒤의 동작은 실제 관측 근거로 지원 여부를 판정합니다. 미검증 범위는 공개 문서에 명시합니다.
- 중복 트리거, stale 관측, 인증/구독 만료, 서버·감시 재시작, 실행 전 중단, 결과 불명을 검증하고 재시도 한도와 중지 의사가 유지됩니다.
- 운영 관측 기간과 성공 판정 기준을 시험 전에 정하고, 장기 관측 결과 및 남은 수동 조치를 공개합니다. 횟수·지연 보장을 임의로 만들지 않습니다.
- 공개 표현은 검증된 실험 범위에 한정합니다. 즉시 실행, 모든 VM 교체 후 복구, 완전 무인 운영을 보장하지 않습니다.
완료 조건
최초 실험 지원 경로와 대상 사용자가 결정되고, 관련 구현 이슈의 해결 상태·재현 가능한 설정 문서·검증 근거·제약·중지 절차가 연결돼 공개 여부를 판단할 수 있어야 합니다. 아직 충족하지 못한 조건은 남은 과제로 표시하며 정식 지원 판정은 분리합니다.
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestpriority: mediumPlanned work after higher-priority prerequisites.Planned work after higher-priority prerequisites.
Activity
abruption commentedon Oct 25, 2026
Experimental support readiness — 2026-10-25
External logs independently confirm three additional connection recoveries after changed boot IDs, with the internal watchdog stopped. Observed outages were 7m35s, 9m45s, and 7m34s (details in #20/#43). Dots reported one recovery command per case; exact claim/execution counts still require independent reconciliation with the protected broker ledger. VM replacement itself is unproven.
The earlier rolling-limit-blocked outage required manual resumption and is not an unattended success. The deployed trial now uses 12 claims/24h plus a one-hour cooldown while defaults remain 3/3600; same-incident single-claim protection is preserved. Dots instructions were updated to use the server's policy and distinguish policy denial from local preflight problems.
Monitor maintenance is an additional readiness concern: a long-running relay referenced a removed Python installation after an upgrade. A fresh interpreter worked and a relay-only restart restored observation delivery. Exact exception evidence was unavailable. Document and validate runtime-upgrade/restart behavior and sanitized diagnostics before treating this as a generally supported unattended service.
Keep support experimental. Another-account setup, claim-ledger reconciliation, monitor maintenance, and remaining installation/stop/recovery documentation are still open acceptance criteria. No automatic closure of the existing checklist is implied. Current implementation and deployment notes: #46.
abruption commentedon Oct 25, 2026
v0.5.0 scope decision: PR #46 will deliver the current experimental research implementation, operational documentation and validated package metadata/artifacts. This issue remains open; its uncompleted acceptance criteria move to v0.6.0 rather than being marked complete. Repeated boot-change recovery is evidence for the experiment, not a guarantee of arbitrary VM replacement, general-account setup or unattended operation under every monitoring-host failure.
abruption commentedon Oct 26, 2026
v0.6.0의 범위를 #49/#51로 확정하여, 다른 계정의 재현 가능한 실험 지원 공개 준비는 v0.7.0으로 이월합니다. 기존 연구 자료 공개와 일반 사용자용 설정·해제 재현 검증을 구분합니다.
abruption commentedon Oct 29, 2026
Development implementation is available in PR #74: #74
The owner cannot provide a second real ChatGPT/Dots account. This issue stays OPEN and PR #74 references it without a closing keyword. Two-owner fixtures do not replace fresh-account setup/OAuth/subscription/unsubscription, natural unattended recovery or replacement-VM evidence. The advanced MCP path and versioned coordinated instructions remain experimental.
The reviewed runtime candidate passed Linux core CI on Python 3.11/3.13 (541 tests each, zero skipped), plus the scoped independent Claude/Codex review process. Exact revisions, research checks, fixture limits and remaining gates: https://github.com/abruption/dots-tailscale/blob/feat/v080/docs/validation/v0.8.0-development-review.md
PR-head checks are recorded on #74. No merge, tag/release or operating deployment is included in this development update.