← 작업일지

2026-05-20 · v1.0.0

2026.05.20 작업일지 v1.0.0

5노드 sync 인프라 매듭 + 메모요 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, gayoremix 계정) USB detect PASS. 폰의 Google 계정이 Test users 등록된 gayoremix 와 일치라 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 등)