Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .github/workflows/research-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Research checks

on:
push:
paths: ['research/**', '.github/workflows/research-checks.yml']
pull_request:
paths: ['research/**', '.github/workflows/research-checks.yml']
workflow_dispatch:

permissions:
contents: read

env:
PYTHONDONTWRITEBYTECODE: "1"

jobs:
research:
name: Research Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
python-version: ['3.12', '3.13']
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
with:
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
with:
python-version: ${{ matrix.python-version }}
- name: Install locked research dependencies
run: python -m pip install --disable-pip-version-check --require-hashes -r research/mcp-events/requirements.lock
- name: Validate recovery coordination and transport
working-directory: research/mcp-events
run: python -m unittest discover -v
- name: Validate bounded lifecycle collector
working-directory: research/lifecycle-20
run: python -m unittest discover -v
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Changelog

## v0.5.0 — 2026-10-25

- Add opt-in MCP Events recovery research with authenticated external observations, durable single-use claims, explicit eligibility reasons and bounded reminders when a policy limit clears (#43).
- Add external relay/subscription health checks, preflight reporting, and bounded lifecycle observation tools (#20).
- Document a separately deployed recovery broker with a dedicated service account, restricted Unix socket, bounded request handling and resource limits. Include reviewed deployment helpers and offline fixtures.
- Record boot-change recovery observations, broker restart checks and monitor maintenance limitations to define the experimental support scope (#45).

The four installed executable sources are unchanged from v0.4.0; this release updates package metadata and adds research material and documentation. The standard installer and updater do not deploy the broker, register a Dots task, start a watchdog or enable automatic recovery. Existing installations are not changed by preparing or publishing a release.

Research remains experimental. Three observed boot-change recoveries do not establish VM replacement, a recovery-time guarantee or reproducible setup for another account. See the [release preparation notes](docs/releases/v0.5.0.md) for evidence and remaining gates. Publishing the release does not establish deployment to an existing environment.

## v0.4.0 — 2026-10-21

- Add offline `dots-ts version` reporting for package identity, source-file integrity and the separate Tailscale binary version (#27).
Expand Down
6 changes: 5 additions & 1 deletion README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ Dots のクラウドコンピューターで、ユーザー権限の OpenSSH と

`/workspace` が環境の入れ替え後も保持される環境を対象としています。新しい環境では、その都度 start コマンドを実行する必要があります。このプロジェクトは独立したもので、OpenAI や Tailscale の公式ツールではありません。

## 実験的な外部復旧

v0.5.0 には、外部監視と MCP Events で Dots に既存の起動コマンドの実行を依頼する実験コードと運用手順を含めています。通常のインストールでは有効になりません。外部サーバーと認証・監視の運用が必要です。再起動後の接続復旧は複数回確認していますが、すべての VM 交換での復旧や即時実行を保証するものではありません。[実験機能の運用ガイド(英語)](docs/experimental-recovery.md)をご覧ください。

## デモ

![Dots ターミナルでインストール状況と Tailscale バージョン 1.102.4 を確認する画面](docs/assets/dots-tailscale-ssh-verification.png)
Expand All @@ -28,7 +32,7 @@ Linux x86_64、Git、Python 3、OpenSSH、およびローカルポート 22 を
```bash
cd /workspace
HTTPS_PROXY=http://browser-proxy:8889 HTTP_PROXY=http://browser-proxy:8889 \
git clone --branch v0.4.0 --depth 1 https://github.com/abruption/dots-tailscale.git
git clone --branch v0.5.0 --depth 1 https://github.com/abruption/dots-tailscale.git
cd dots-tailscale
bash tailscale-setup.sh check
bash tailscale-setup.sh install
Expand Down
6 changes: 5 additions & 1 deletion README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ Dots 클라우드 컴퓨터에서 일반 사용자 권한으로 Tailscale과 Ope

`/workspace`가 환경 교체 후 보존되는 환경을 대상으로 합니다. 새 환경에서는 start 명령을 실행해야 합니다. OpenAI 또는 Tailscale 공식 도구가 아닌 독립 프로젝트입니다.

## 외부 연결 복구 실험 기능

고급 사용자를 위한 [외부 복구 실험 안내](docs/experimental-recovery.ko.md)를 제공합니다. 외부 서버·개인 SSO·승인된 Dots 작업이 필요하며 일반 설치기로 활성화되지 않습니다. 다른 계정의 설치 재현과 임의의 VM 교체 후 복구는 아직 검증하지 않았습니다.

## 데모

![Dots 터미널에서 설치 상태와 Tailscale 버전 1.102.4를 확인하는 스크린샷](docs/assets/dots-tailscale-ssh-verification.png)
Expand All @@ -28,7 +32,7 @@ Linux x86_64, Git, Python 3, OpenSSH와 사용자 계정의 22번 포트 바인
```bash
cd /workspace
HTTPS_PROXY=http://browser-proxy:8889 HTTP_PROXY=http://browser-proxy:8889 \
git clone --branch v0.4.0 --depth 1 https://github.com/abruption/dots-tailscale.git
git clone --branch v0.5.0 --depth 1 https://github.com/abruption/dots-tailscale.git
cd dots-tailscale
bash tailscale-setup.sh check
bash tailscale-setup.sh install
Expand Down
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ Run Tailscale with user-level OpenSSH in a Dots cloud computer. Installation fil

This setup targets environments that preserve `/workspace`. Processes still need a start command in each new environment. This project is independent and is not an official OpenAI or Tailscale tool.

## Experimental external recovery

Advanced users can review the [external recovery experiment](docs/experimental-recovery.md). It requires an external server, private SSO and an authorized Dots task; it is not enabled by the normal installer. Setup on another account and recovery after arbitrary VM replacement remain unverified.

## Demo

![Dots terminal screenshot showing installation checks and Tailscale version 1.102.4](docs/assets/dots-tailscale-ssh-verification.png)
Expand All @@ -28,7 +32,7 @@ The clone command explicitly uses the Dots proxy because direct GitHub HTTPS fai
```bash
cd /workspace
HTTPS_PROXY=http://browser-proxy:8889 HTTP_PROXY=http://browser-proxy:8889 \
git clone --branch v0.4.0 --depth 1 https://github.com/abruption/dots-tailscale.git
git clone --branch v0.5.0 --depth 1 https://github.com/abruption/dots-tailscale.git
cd dots-tailscale
bash tailscale-setup.sh check
bash tailscale-setup.sh install
Expand Down
6 changes: 5 additions & 1 deletion README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@

本方案适用于会保留 `/workspace` 的环境。每次进入新环境后,仍需运行启动命令。本项目独立开发,并非 OpenAI 或 Tailscale 的官方工具。

## 实验性外部恢复

v0.5.0 包含实验代码和运维说明,可通过外部监控与 MCP Events 请求 Dots 执行已有的启动命令。普通安装不会启用这项功能,需要自行维护外部服务器、认证和监控。我们已多次观察到新启动后的连接恢复,但这不保证每次 VM 替换后都能恢复,也不保证立即执行。详见[实验功能运维指南(英文)](docs/experimental-recovery.md)。

## 演示

![Dots 终端中的安装检查以及 Tailscale 版本 1.102.4 截图](docs/assets/dots-tailscale-ssh-verification.png)
Expand All @@ -28,7 +32,7 @@ bash /workspace/.dots-tailscale/start.sh check
```bash
cd /workspace
HTTPS_PROXY=http://browser-proxy:8889 HTTP_PROXY=http://browser-proxy:8889 \
git clone --branch v0.4.0 --depth 1 https://github.com/abruption/dots-tailscale.git
git clone --branch v0.5.0 --depth 1 https://github.com/abruption/dots-tailscale.git
cd dots-tailscale
bash tailscale-setup.sh check
bash tailscale-setup.sh install
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.4.0
0.5.0
Loading
Loading