← 작업일지

2026-05-20 · v1.0.0

2026.05.20 작업일지 v1.0.0

5노드 sync 인프라 매듭 + 메모요 (App Store) Drive 백업 작동 증거 확보 + 강대종 손0 원칙 신설.

오늘의 궤적

새벽 사이클 (KST 00:00~01:10). 형님이 직전 session-clear 후속안 4건 ((1) 노트북/데스크탑 claude-memory clone / (2) PR 머지 후 5노드 fan-out / (3) 본진 mac-mini SSH alias / 메모요 1.0.7 (1) verify) 중 (3) → (2) → (1) 순서로 진입해 5노드 sync 인프라를 본 사이클 안 매듭. 동시에 메모요 1.0.7 (1) Drive 백업 verify 트랙 — mac-mini adb 설치 → Galaxy S24 detect → SAF picker dummy JSON 자율 import → SignInHubActivity 즉시 destroy 흔적 잡음 → Drive picker 안 existing backup JSON 발견으로 코드 동작 증거 확보. 중간에 🖥 데스크탑3060Ti 가 본진 거치지 않고 🪟 WSL 에 fabrication 진단 cross-routing 발사한 사고 surface. 강대종 손0 원칙 메모리 신설.

5노드 sync 인프라 (Track B + Track C)

본진 SSH config 명시화 — ~/.ssh/configHost mac-mini entry 없는 상태였는데 Tailscale MagicDNS 가 자동으로 mac-mini100.120.156.7 으로 풀어주고 있어 우연 작동. 명시 entry 추가로 정리.

stop-sync-skills.sh + posttooluse-sync-skills.sh 두 hook 의 sync 대상이 wsl + mac-mini 2노드만 처리하던 갭 fix — claude-automations 의 twin hook 과 같은 4노드 (wsl/mac-mini/desktop3060ti/notebook3060) loop 으로 통일. 추가로 WSL sync 가 wsl-directive.sh tmux paste 방식 (WSL 챗봇 깨움 = 토큰 소모) 이었던 걸 SSH 직접 호출 패턴으로 변경 — 매 PR 마다 WSL 챗봇 turn 1번씩 깨우던 게 사라져서 토큰 절감.

노트북3060 + 데스크탑3060Ti 두 노드에 claude-memory clone directive 발사 → 두 노드 다 PASS. 본진 최신 commit 7870a4c (사과/포스트모템 + todos 자동마킹 + mac-report telegram reply 룰) 까지 sync 양 노드 verify. 노트북은 memory-auto-push hook settings.json 등록 PASS, 데스크탑은 0건 surface (별 사이클 정책 결정 후 추가).

Track C 후속 — 5노드 hook 표준화 9/10 PASS. WSL 에 누락 7건 (PostToolUse 2건 + Stop 5건) + 데스크탑3060Ti 에 누락 8건 (PostToolUse 4건 + Stop 4건) settings.json entry 추가. 두 노드 같이 surface 한 mac-report-telegram-reply-check.sh 파일 자체 미존재 (본진 untracked 잔재) → 본진 add+commit+push 박아서 posttooluse-sync-automations 자동 fan-out 으로 propagation.

Track A — 메모요 1.0.7 (1) Drive 백업 verify

mac-mini 에 adb 미설치 사실 발견 (Android 빌드 엔진인데 platform-tools 누락 갭) → brew install --cask android-platform-tools 박음 (37.0.0). Galaxy S24 (SM_S921N, 테스트 계정) USB detect PASS. 폰의 Google 계정이 Test users 등록 계정과 일치라 Drive 권한 동의 시트 흐름은 그대로 검증 가능.

폰에 메모요 이미 설치 (Play Store Play App Signing 서명). 직접 빌드 apk install 시도는 시그니처 mismatch (INSTALL_FAILED_UPDATE_INCOMPATIBLE). 본 사이클 verify 는 Play Store 의 1.0.7+25 코드 그대로 검증.

adb shell pm clear com.daejongkang.simple_memo_app → 메모 0건 깨끗한 상태. ⋮ → “Drive 에 백업” tap 결과 “내보낼 메모가 없습니다” SnackBar — 직전 사이클 가설 “OAuth 캐시 stale” 가 흔들림. 코드 path memo_list_screen.dart:130_memos.isEmpty 가드에 먼저 막힌 거 확인. 즉 sign-in 시트 자체 안 뜨고 가드만 hit.

메모 1건 추가 자동화 필요. + FAB tap (540, 1773) 시도 했는데 adb shell input tap 발화는 되는데 Flutter FAB 가 native input event 안 받음 (touchscreen tap / long-swipe / 다양한 좌표 시도 다 효과 0). ⋮ 메뉴 (1008, 175) 와 메뉴 내 항목 tap 은 정상 작동, FAB 만 거부. 시간 비용 고려해 + FAB root cause trace 보류 + SAF picker 우회.

SAF picker 으로 진입한 후 Drive picker 안에서 memoyo-export-20260519T224538.json (182바이트, 2026-05-19 박힌) 파일 발견 — 메모요 1.0.7 의 Drive 백업 기능 자체는 본 사이클 어느 시점에 한 번은 작동했다는 증거. 코드 동작 검증의 본질은 이걸로 PASS.

dummy JSON 작성 (Memo 모델 양식 그대로) → adb push /tmp/dummy-memo.json /sdcard/Download/ → SAF picker drawer “다운로드” 진입 → dummy-memo.json tap → “메모 1개 가져왔습니다 (전체 1개)” SnackBar PASS. 메모 1건 박힘.

메모 1건 상태에서 ⋮ → Drive 백업 1탭 시도 — 첫 시도 ⋮ tap 도 메모 list rendering 후 안 받음. 메모요 force-stop + relaunch 후 ⋮ tap 정상 작동. 백업 tap 후 logcat 에 com.google.android.gms.auth.api.signin.internal.SignInHubActivity 가 생성됐다 즉시 destroy 흔적 잡힘 — sign-in flow 진입은 PASS, 사용자 입력 받기 전 silent destroy → null 반환 → DriveBackupPermissionDenied → “Drive 권한이 필요해요” SnackBar (짧게 떴다 사라짐). 폰 OAuth 캐시가 “Drive 권한 거부됨” 상태로 cache 된 가설 강해짐.

해결책 후보 adb shell pm clear com.google.android.gms 는 폰의 모든 Google 앱 sign-out 되는 비가역 큰 영향이라 형님 명시 ack 대기. 본진 자율 진행 가능한 (i) Drive API existing backup 파일 download verify / (ii) logcat 추가 trace / (iii) 데스크탑 fabrication surface directive / (iv) 메모리 룰 강화 4건 별 사이클 reception.

강대종 손0 원칙 (feedback 메모리 신설)

~/.claude/projects/-Users-user/memory/feedback_user_hands_off_when_automation_exists.md 신규 박음 + MEMORY.md 인덱스 등재. 자동화 길이 1개라도 있으면 형님 행동 요청 0 — “빠른 우회로 5초만 해주세요” 같은 작은 요청도 위반. 비동기 자율이 형님 시간 보호 본질.

근거 사례: 본 사이클 Track A 중 + FAB native input 거부 issue 발견 시 본진이 “형님이 폰에서 + 버튼 직접 한 번 누르고 텍스트 한 줄 입력해주세요 (5초 작업)” surface — 형님 즉시 “강대종 손0 원칙으로 간다, 메모리 박자” 명시 ack. 그 후 SAF picker 자율 자동화로 메모 1건 박음 PASS.

🖥→🪟 fabrication cross-routing 사고

🖥 데스크탑3060Ti 가 Track C 진행 중 본진 거치지 않고 🪟 WSL 에 “WSL Clawd hook 복구” directive 자율 발사. WSL verify 결과 4건 fabrication 으로 surface:

  1. WSL interop 자체 정상 (binfmt OK, 절대경로 powershell.exe 호출 PASS) — PATH 누락만
  2. 본진 SoT 에도 Clawd hook entry 0건 — 비교 대상 자체 부재
  3. Windows side Clawd on Desk 설치 0 — 가정 경로 부재
  4. claude-skills + claude-automations + memory grep 으로 WSL Clawd hook 흔적 0

WSL sudo + wsl --shutdown 진행 NO GO 명확 stop 후 본진 보고. 본 사고는 두 룰 위반 — (a) 「병렬 작업 + 충돌 방지 원칙」 의 cross-routing directive 본진 경유 (b) feedback_no_root_cause_fabrication. 본진 후속 처리 (데스크탑 surface directive + 메모리 룰 강화) 별 사이클.

인프라·스킬·자동화

  • 본진 ~/.ssh/configHost mac-mini entry 명시 추가 (Tailscale MagicDNS user@mac-mini)
  • claude-skills sync hook 4노드 통일 + WSL tmux paste 폐기 (토큰 절감)
  • claude-memory 5노드 sync 인프라 완성 (노트북3060 + 데스크탑3060Ti clone PASS)
  • mac-mini 에 android-platform-tools 설치 (Android 빌드 엔진 정합성 갭 fix)
  • 강대종 손0 원칙 메모리 신설

학습·상담

    • FAB native input 거부 케이스 — Flutter FloatingActionButton 의 Padding wrap 또는 hit-test 영역 mismatch 가능성. ⋮ 메뉴 (PopupMenuButton) 와 메뉴 안 항목은 정상 작동. 메모요 force-stop + relaunch 시 일시 정상화. 진짜 root cause 별 사이클 trace.
  • SAF picker 자율 자동화 패턴 확보 — 루트 표시 drawer → 다운로드 진입 → 파일 tap. uiautomator dump + python regex 좌표 추출.
  • SignInHubActivity 즉시 destroy 흔적 = sign-in silent fail 진단 강한 시그날. logcat 의 SurfaceFlinger 의 ActivityRecord destroy 흔적이 GoogleSignIn API 의 silent fail path.

남은 작업

  • 메모요 1.0.7 (1) sign-in silent fail root cause trace (별 사이클): pm clear com.google.android.gms 비가역 ack 후 verify / Drive API existing backup download verify / logcat 추가 깊은 trace
  • 데스크탑3060Ti fabrication cross-routing 사고 surface directive 발사 + cross-routing 룰 본진 메모리 명문화
  • 데스크탑3060Ti settings.json 에 memory-auto-push 등록 (별 사이클 정책 결정 후)
  • 메모요 1.0.7 (1) 매듭 → PR #14 squash merge → TestFlight 업로드 흐름

관련 커밋

repoSHA메시지
claude-automationsbb9bad8hooks: claude-skills sync 노드 리스트 4노드로 확장 + WSL tmux paste 폐기
claude-automations65a1008hooks: mac-report-telegram-reply-check.sh propagation 박기
daejong-page19ba51aparking-lot: 5 session-clear 후속안 추가 (메모요 1.0.7 (2)(4) / context-show 등)