Skip to content

feat: add opt-in automatic updates with recovery safeguards #31

Closed

Description

@abruption

목적

사용자가 명시적으로 활성화한 경우에만 새 정식 릴리스를 자동 설치합니다. 실행·복구 경로가 먼저 입증돼야 하는 조건부 후속 과제이며 출시 버전/일정을 약속하지 않습니다.

선행 조건

변경 범위

  • 기본 비활성화, 명시적 활성화·상태 조회·영구 비활성화를 제공합니다.
  • 확인 주기·업데이트 시간대·버전 고정/보류를 지원하고 prerelease·downgrade를 기본 제외합니다.
  • 수동 updater를 재사용하며 새 updater를 별도로 중복 구현하지 않습니다.
  • 지원이 확인된 실행 경로에서만 동작합니다. 읽기 전용 sandbox나 보이지 않는 소켓의 제약을 우회하지 않습니다.
  • 동시 작업·무한 재시도·반복 재시작을 막고 실패 후 재시도 조건과 결과 알림을 정합니다.
  • 비활성화/보류 설정은 재시작과 업데이트 후에도 유지합니다.
  • 예약 작업이 등록돼도 VM 교체 후 실행 주체가 없는 상황까지 복구한다고 안내하지 않습니다.

완료 조건

  • 명시적 활성화 없이는 자동 설치·재시작이 발생하지 않습니다.
  • #20의 근거를 바탕으로 지원 환경과 지원하지 않는 환경을 문서화합니다.
  • 시간대·보류·비활성화·중복 실행 제어가 적용되고 유지됩니다.
  • SSH 단절과 각 실패 단계에서 결과/원복 상태를 확인할 수 있습니다.
  • 기존 정상 버전을 보존하거나 검증된 절차로 복구하며 불가 시 수동 복구를 요청합니다.
  • 취소/제거 절차 및 예약의 소유·수명·환경 교체 한계를 영문·한글로 안내합니다.

범위

이번 이슈 등록은 예약·상시 서비스 설치나 실환경 장애 주입을 수행하지 않습니다. VM 기동 hook과 일반 자동 복구 연구는 #20에서 유지합니다.

Activity

  1. added this to the Research milestone on Oct 18, 2026
  2. added
    enhancementNew feature or request
    priority: lowDeferred research or work without a near-term implementation path.
    researchFeasibility work; implementation and release scope remain conditional on evidence.
    on Oct 18, 2026
  3. modified the milestones: v0.5.0, v0.6.0 on Oct 25, 2026
  4. abruption commented on Oct 25, 2026

    @abruption
    OwnerAuthor

    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.

  5. modified the milestones: v0.6.0, v0.7.0 on Oct 26, 2026
  6. abruption commented on Oct 26, 2026

    @abruption
    OwnerAuthor

    v0.6.0 범위를 수동 Tailscale 업데이트(#50/#51)와 감시 진단 개선(#49)으로 확정했습니다. 이 이슈의 자동 업데이트는 v0.7.0으로 이월합니다. 실행 예약·보류·영구 비활성화와 실패 후 복구 정책은 별도 구현/검증 대상입니다. 기본 Tailscale pin 변경도 기존 패키지 updater의 binary_update_unsupported 경계와 함께 검토해야 합니다.

  7. modified the milestones: v0.7.0, v0.8.0 on Oct 28, 2026
  8. abruption commented on Oct 29, 2026

    @abruption
    OwnerAuthor

    Development implementation is available in PR #74: #74

    The candidate adds explicit enable/status/hold/disable, schedules and pins, a bounded caller, durable worker fences and proof-only pre-staging reconciliation. It installs no scheduler or VM bootstrap. Automatic installation requires a trusted stable v0.8.0-or-newer installation and a newer attested target; the initial release/bootstrap gate is separate.

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority: lowDeferred research or work without a near-term implementation path.researchFeasibility work; implementation and release scope remain conditional on evidence.

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions