Metadata-Version: 2.4
Name: oiiaw
Version: 0.1.7
Summary: Obsidian <-> iCloud sync bridge for Windows
Author: zerossin
License-Expression: MIT
Project-URL: Homepage, https://github.com/zerossin/oiiaw
Project-URL: Repository, https://github.com/zerossin/oiiaw
Project-URL: Issues, https://github.com/zerossin/oiiaw/issues
Keywords: obsidian,icloud,sync,windows
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Win32 (MS Windows)
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: watchdog>=4.0.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: colorama>=0.4.6
Requires-Dist: pystray>=0.19.5
Requires-Dist: pillow>=10.0.0
Requires-Dist: packaging>=24.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Dynamic: license-file

# oiiaw

Obsidian ↔ iCloud, Windows용 자동 동기화 도구.

Obsidian을 iCloud Drive 폴더에서 직접 열면 저장할 때마다 충돌 파일이 생깁니다.
oiiaw는 로컬 폴더와 iCloud 폴더를 백그라운드에서 대신 동기화해서 이 문제를 없애줍니다.

> [!WARNING]
> 현재 Windows용 베타 버전입니다. 처음 사용하기 전에 로컬 및 iCloud 문서를 백업하세요.

## 설치

1. [Python 3.11+](https://www.python.org/downloads/) 설치 — **"Add python.exe to PATH"** 체크
2. 터미널(`PowerShell` 또는 `cmd`)에서 설치:
   ```powershell
   py -m pip install oiiaw
   ```
3. 설치 마법사 실행:
   ```powershell
   oiiaw-setup
   ```
4. 로컬 폴더와 iCloud 폴더를 선택해 설정 완료

일반 PyPI 설치는 새 버전을 하루 한 번 확인하고, 동기화가 대기 상태일 때 자동으로 업데이트한 뒤 재시작합니다.
소스 또는 editable 설치는 작업 파일을 덮지 않도록 자동 업데이트하지 않습니다. 수동 업데이트는 다음 명령을 사용하세요.

```powershell
py -m pip install --upgrade oiiaw
```

### 소스에서 설치

최신 개발 버전을 직접 설치하려면:

```powershell
git clone https://github.com/zerossin/oiiaw.git
cd oiiaw
py -m pip install .
```

## 사용법

- Obsidian에서는 iCloud 폴더가 아닌 항상 **로컬 폴더**만 vault로 여세요.
- 트레이 아이콘 색: 🔵 대기 · 🟠 동기화 중 · 🔴 충돌/에러
- 트레이 클릭시 현재 상태와 최근 활동 목록이 뜹니다.
- 충돌 기록을 선택하면 현재 문서와 보관된 충돌본을 Obsidian에서 바로 열 수 있습니다.
- 트레이 우클릭 → 재시작으로 안전하게 다시 시작할 수 있습니다.
- 온라인 전용 iCloud 파일은 자동으로 내려받고, 일시적인 파일 잠금이나 iCloud 연결 끊김은 자동으로 다시 시도합니다.
- iCloud가 업로드 완료를 확인하기 전에는 기준본을 확정하지 않아 이전 클라우드 버전이 로컬 편집을 되돌리지 못합니다.
- 최근 로컬 저장 세대를 재시작 후에도 기억해 iCloud가 직전 저장본을 늦게 재노출해도 충돌로 오인하지 않습니다.
- 콘텐츠 판정은 테스트 가능한 상태 머신으로 분리되고, 세대·삭제 기록은 SQLite journal에 트랜잭션으로 보존됩니다.
- 실제 원격 충돌본은 동기화 Vault 밖의 전용 복구 저장소에 보관해 후속 대량 편집이나 삭제 동기화로부터 격리합니다.
- 기존 문서의 0바이트 전환, 폴더 오인식, 짧은 시간의 대량 삭제는 자동으로 차단하고 오류 상태로 표시합니다.
- 삭제는 유예 시간 뒤 휴지통으로 이동하며, 삭제 기록을 남겨 iCloud가 옛 파일을 다시 노출해도 되살리지 않습니다.
- 동기화 엔진이 예기치 않게 종료돼도 트레이가 새 엔진을 만들어 자동 복구합니다.
- 트레이를 껐다면 `oiiaw-setup`을 다시 할 필요 없이 `oiiaw start`로
  기존 설정 그대로 다시 켤 수 있습니다.
- 터미널에서 `oiiaw status`로도 확인이 가능합니다.
- 작업 스케줄러 등록이 거부되면 관리자 권한이 필요 없는 사용자 자동 시작 방식으로 대체됩니다.

## 고급: 설정 파일 직접 편집

마법사 대신 `config.example.yaml`을 `config.yaml`로 복사해 경로를 채우고
`oiiaw run -c config.yaml`로 실행할 수도 있습니다.
