sync 도움말 — SyncHelpModal + ConflictModal inline + README 동기화 섹션 재작성 #33
Reference in New Issue
Block a user
Delete Branch "worktree-v034-sync-help"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
v0.3.0 Cut E (양방향 sync) dogfood 첫 시도 (v0.3.3 hotfix 직후) 의 결과로, 사용자가 conflict 시나리오에 막힌 순간 도움받을 곳이 부재한 갭을 메운다. 3 표면 (in-app modal + ConflictModal inline + README) 통합.
주요 변경
신규 —
SyncHelpModal(4 anchor 섹션)설정 → 동기화 저장소 → "도움말"버튼 또는 ConflictModal 의 "자세히 보기 →" 링크에서 진입.#main-conflict— 편집/편집, 삭제/편집, AI 결과 충돌 3 케이스의 결정 트리#auto— fetch+rebase / 첫 sync 순서 / push 거부 자동 처리 / 자동 sync 주기#silent— 시계 어긋남 (NTP) / 동시 수정 회피 / 자동 sync 실패 silent#setup— URL 형식 (SSH/HTTPS, 잘못된 git@https:// 사례) / 인증 (SSH key, OS credential helper) / 연결 테스트 실패 troubleshoot / URL 재설정ConflictModal 패턴 정합 (overlay onClick + body stopPropagation, X 버튼
aria-label="닫기", zIndex 110 으로 ConflictModal 100 위에 stack).갱신 —
ConflictModal각 conflict row 에 local/remote inline 설명 ("내 것 사용" / "원격 사용" 의미) + (옵션) "자세히 보기 →" 링크 (onOpenHelp callback).
onOpenHelpprop optional → 기존 caller (App.test, SettingsPage.test) type-clean 유지.갱신 —
SyncSection"도움말" 버튼 (URL row 마지막) +
SyncHelpModalmount +ConflictModal의onOpenHelpwiring. busy (저장/테스트/sync 진행) 중에도 도움말은 reachable (read-only).갱신 —
README.mdstale "원격 백업 (F6-L2)" 섹션 (v0.2.1 MVP 시점 — 트레이 "지금 동기화" + 수동
git init) 통째 재작성 → "동기화 (Git, F21 Cut E)". 일회 설정 / 일상 사용 / 충돌 해결 (3 케이스) / Silent risk / Troubleshoot. in-app SyncHelpModal 과 동일 정보 (다만 산문체).게이트
tests/unit/SyncService.test.tsWindows tmpdir EPERM, 본 PR 무영향)Spec / Plan
docs/superpowers/specs/2026-05-10-sync-help-design.mddocs/superpowers/plans/2026-05-10-sync-help.md(4 task TDD)후속 (deferred)
SyncHelpAnchorliteral union 의 ConflictModal.tsx duplicate 제거 (import 로 통일)비포함 (YAGNI)
회차 1 — final integration review 결과 1 actionable 발견.
Actionable (Minor):
src/renderer/inbox/components/ConflictModal.tsx:8—onOpenHelp?: (anchor: 'main-conflict' | 'auto' | 'silent' | 'setup') => void가SyncHelpModal.tsx:3의SyncHelpAnchor타입을 literal 로 duplicate. 두 파일이 동일 디렉터리 sibling 이고SyncHelpAnchor가 이미 export 되어 있으므로 import 1줄로 단일 source of truth 가능. 향후 anchor 추가 시 두 파일 동시 수정 누락 risk 가 있고 TS 가 catch 하지 않음. 수정 권장:Deferred (PR body 에 이미 명시):
Strengths (회차 등록 의무 이행):
8cd6382hotfix (도움말 버튼 busy 중 disable 해제) — 사용자 가장 막힌 순간 도움말 reachable, 적절한 follow-up.회차 2 — 회차 1 actionable (ConflictModal literal union duplicate) 반영 (commit
9d6f5bf,import type { SyncHelpAnchor } from './SyncHelpModal.js').검증:
Deferred 항목 (ESC handler, dogfood soak 후 텍스트 갱신) 은 PR body 에 명시된 대로 후속.
추가 actionable 없음. 머지 동의.