🎯 Multi-document redesign (xlwings 모델)
ADR-003 의 결정대로 v3 부터 App 은 process lifecycle 만 책임지고
모든 문서 작업은 app.docs.open(path) / add() 가 반환하는
Document 인스턴스에서 직접 수행합니다 (xlwings 의 app.books[i]
와 동형).
💔 BREAKING
App.open / save / save_as / close / doc모두 제거 (clean cut, no shim)- v2 사용자:
pip install hwpapi==2.*로 동결 - 마이그레이션: v2→v3 가이드
➕ 신규
app.docs.open(path)/add()/active/[i]/["name"]/iter/lenDocument풀 surface — text I/O / lifecycle / 7 컬렉션 / cursor / actions proxydoc.set_charshape(**fmt)/set_parashape(**fmt)—with없이 즉시 적용 (v3.1)doc.selection(Selection) /doc.range(p1, p2)(Range)doc.find_all(query)/doc.replace_brackets({...})
📚 문서
- ADR-003 (accepted) — Multi-document redesign 결정
- ADR-004/005/006 (proposed) — Element API / API ergonomics / python-docx 패턴
- 양언어 (en + ko) 47+47 페이지
🧪 테스트
- 1,341 mock-based passes (windows-latest × Python 3.9~3.12)
자세한 변경사항은 CHANGELOG.md 참조.