← 작업일지

2026-04-25 · v1.0.0

2026.04.25 작업일지 v1.0.0

핸드오프 인프라가 텔레그램 한 줄 트리거에서 SSH+tmux 양방향 자동 직접 인젝션으로 진화한 날. Playwright WSL 막힘 해결, 인스타 Mac 미러링, hanjul Android ship-ready 까지 동시에 굴러간 큰 하루.

오늘의 궤적

새벽 0시에 4/24 마무리(worklog v1.0.1, done, Substack Ep.1 편집본, 인스타 카드)부터 마치고 잠들었음. 아침 7시 반 기상 → hanjul Android 런처/스크린샷/ship-ready/keystore SoT 등록 → 점심 무렵 Playwright WSL 막힘 4단계 핸드오프 turn 으로 Option E (env-var 단독) 발견 → 검증 PASS → 오후 인스타 Mac 미러링 + venv 셋업 + 정책 A 확정 → 늦은 오후 claude-automations PR #1 (CDP 모듈화) 머지 → 저녁 핸드오프 본격 인프라 구축 (SSH+tmux METHOD A 발견) → 21~23시 양방향 end-to-end 무손 검증 PASS + 이모지 prefix 추가 → 자정 직전 다른 기기 오케스트레이터 구상.

4/24 마무리 (00:00 ~ 00:30 KST)

자정 직전~직후 작업:

  • Substack Ep.1 발행용 편집본 추가 (daejong-page eb14db7) — newsletter/ep1-substack.md 완성. 어제 막혔던 Substack 설정 재개 항목은 🤝→🍎 이관 (af3ced0).
  • 작업일지 2026-04-24 v1.0.1 (daejong-page 690612e) — 원본+뉴스레터 공개본.
  • done 2026-04-24 evening (daejong-page bb5dec2) — 심사 제출 2건 (약먹자/더치페이) + 한줄일기 APK + goodnight insta 편입.
  • goodnight step 4.5 = insta-post 자동 호출 (skills c116f6f) — non-fatal 폴백 포함.
  • 이슈 페어 기록 — 2026-04-24 (skills aea2bff) — iPad 13” 스크린샷 필수 + Playwright ref 오클릭.
  • todos: 내일 MEMORY.md 인덱스 다이어트 (daejong-page 48b258b) — 🗑️ 8개 retire + 🟡 3개 검토.

hanjul Android ship-ready (07:55 ~ 09:46 KST)

한줄일기 안드 출시 직전 작업 4 커밋:

시각repoSHA메시지
07:55hanjulf18092ffeat(hanjul/android): generate launcher icons from diary-notebook master
08:32hanjul944f001feat(hanjul): JSON export + Play Store ship-ready assets
08:42hanjulc2774b6chore(hanjul): finalize Android Play Console screenshots
09:46hanjul704bfdechore(android): wire release signingConfig + bump to 1.1.0+3
  • 7시 40분 강대종님 “한줄일기 아이콘이 왜 없지? 맥에서 만들어서 아이폰에서는 나오는데 어제 apk 에는 없던데” → diary-notebook 마스터에서 런처 아이콘 자동 생성으로 해결.
  • 09:39 /submit-app hanjul --platform=android 첫 호출 시 release keystore 없이 debug 서명 상태 발견 → 09:46 signingConfigs.release 와이어링 + 1.1.0+3 으로 버전 올림.
  • skills 0caf714 — submit-app 문서에 hanjul keystore SoT 를 Mac 으로 등록 (다음 사이클부터 SoT 명확).

Playwright WSL 막힘 → Option E (10:07 ~ 13:42 KST)

오늘 가장 길었던 멀티 turn:

10:07, 강대종님이 “왜 mac에서는 플레이라이트 잘되는데 wsl에서는 자꾸 하네스(?)한테 막히는건지 이거 해결방법좀 mac 너가 찾아줘”. 13:25, Mac 이 Option E (env-var 단독) 보낸 후 새 WSL 세션에서 검증. 13:42, WSL Playwright MCP smoke PASS — example.com heading + HN DOM 둘 다 인식.

핵심 발견(Mac 13:10 보고): @playwright/mcp@0.0.70 의 default browser channel 이 "chrome" 으로 고정돼 있음. WSL 환경엔 Google Chrome stable 이 깔려 있지 않아 launch 실패 → 하네스가 “ugly error” 로 막아온 것처럼 보였음.

해결: ~/.bashrcexport PLAYWRIGHT_MCP_BROWSER=chromium 추가. .mcp.json 수정 불필요. 가장 싼 옵션이었음 (A2/B/D 후보보다 패치 면적 작음).

skills 5ebacbb / 413329d 로 이슈 트레이스 + resolve 기록. issues/2026-04-25-wsl-playwright-mcp-install-blocked.md 가 그 사이클의 포스트모템.

인스타 Mac 미러링 + 정책 A 확정 (13:43 ~ 14:35 KST)

WSL Playwright 풀린 직후 다음 task:

  • 시크릿 미러링 (b260ead) — ~/.claude/secrets/instagram.json 274B 0600 + ~/insta-autopost/ 폴더(render.py, publish.py, posted.json, GET_TOKEN.md) WSL→Mac.
  • Mac venv setup A 경로 PASS (efc60e4) — render.py + publish.py 둘 다 venv 안에서 dry-run 통과.
  • insta-post SKILL.md venv 가드 + 텔레그램 알림 (07a10a2 / 8bbb134) — venv 없으면 “venv 없음” 텔레그램 보내고 중단.
  • 정책 A 명문화 (6926151) — WSL primary 업로드, Mac standby. posted.json 동기화 안 함 (SoT 충돌 막기).
  • goodnight step 4.5 hostname 라우팅 (4809068) — Mac 이면 텔레그램 핸드오프, WSL 이면 직접 /insta-post 호출.
  • insta-post 핸드오프 트리거 키워드 (70001a0) — ”📸 /insta-post 핸드오프” 메시지가 WSL @Myclaude2 에 들어오면 자동으로 /insta-post <date> 발화.

오후 14:28 카드 1장 어제분 백필로 자동 업로드 (card-20260425-142848.png, daejong-page 2fc20ef).

claude-automations PR #1 — CDP 모듈화 (14:44 ~ 15:10 KST)

14:44, Mac → WSL: C 경로 = “WSL→Windows Chrome CDP attach 헬퍼 스크립트 모듈화” 15:01, Mac 이 코드 검토 + PR #1 (wsl-chrome-cdp/guards-and-portability) 올림. 15:10, 강대종님 “PR 머지 완료. 최신 main HEAD 는 f506c6c.”

reference_wsl_chrome_cdp.md 메모리에 적혀있던 레시피를 실제 스크립트 모듈로 빼냄. WSL 에서 attach-chrome.sh 한 줄로 portproxy + 방화벽 + Chrome CDP 다 띄움.

Mac↔WSL Handoff Controller 구상 → 핸드오프 인프라 본격 (15:25 ~ 16:35 KST)

15:25, 강대종님 “Mac ↔ WSL Claude Code Handoff Controller를 만들어줘” 16:02, “그냥 핸드오프 기능을 하고 싶을 때 복붙을 자동화하고 싶었어” 16:35, “끝남”

  • /handoff 스킬 정직 재작성 (b1e5608) — 자동전달 약속 빼고 “챗 전환 1회 제거” UX 개선만 명시.
  • peer-bot direct POST (6e588c0) — 강대종님 user_id 매개로 봇 → 봇 메시지 직접 송신 시도. 텔레그램 정책상 봇끼리 가시성 차단됨이 발견됨 (reference_telegram_bot_to_bot_blocked.md).

핸드오프 SSH+tmux METHOD A — 21~23시 KST

오늘 핵심:

20:46, feat(handoffs): introduce SSH+send-keys handoff channel + first trial (fa68357) 21:14, S-Enter (Shift+Enter) 시도 — 실패 (387d781) 21:37, METHOD A 발견 (a75cef1) — text → sleep 0.5 → Enter 분리. 21:42, 양방향 verify directive (655b60b) 21:46, Mac PATH 함정 — /opt/homebrew/bin/tmux 절대경로 (e4e71a2 / 6961a4f) 21:49, WSL → Mac zero-touch demo 첫 PASS (2ee45f5) 21:54, Mac claude-main 가드로 양방향 대칭 셋업 완성 (f4f9cf7) 22:50 KST, WSL → Mac PING 도착 + PONG 회신 확인. 23:21, 이모지 prefix (🪟/🍎) 핑 정체성 표시. 22:57, 양방향 e2e 검증 후 SSH peer-user placeholder 화 (cc6dc89).

배운 것 — tmux send-keys 로 Claude Code 프롬프트 자동 submit 시키려면 텍스트와 Enter 를 한 burst 가 아닌 별도 호출로 보내야 함. 빠른 burst 가 통째로 bracketed paste 마커 안에 감싸지면 안의 Enter 가 newline 으로 흡수됨. sleep 0.5 끼우면 paste 모드 종료 후 Enter 가 진짜 keystroke 으로 도착.

Other commits

  • review_radar v0.2 홈 필터칩 (cd7f831) — “방금 변경” 하이라이트.
  • automations report 잡 — Mac 5건 + WSL 2건 (자동, 토큰 0).

학습·상담

  • 07:25 강대종님 “명령어 치는거는 채팅 따로달라는데 어제 각인 시켰는데 제대로 안된듯” → feedback_paste_blocks_as_separate_message.md 재확인.
  • 08:06 “내 클로드 memory 같은거 이런 파일도 git 에 공개되어있나?” → claude-memory private repo 라 공개 X (memory 인덱스 다이어트 todos 동기 부여).
  • 18:34 “로미오와 줄리엣같구만 서로 말걸게하기가 이렇게 어려울 줄이야 ㅋㅋ” — 봇 간 직접 통신 막힌 것에 대한 코멘트.
  • 18:36 “안되는데 방법을 찾아서 어떻게된 성공시키는 이 과정 이걸 즐기는게 재밌어” — 핸드오프 인프라 4시간 디버깅 기점.
  • 23:31 “데스크탑 1대 + 윈도우 노트북 1대 더 있어서 오케스트레이터 구성을 해보고싶어” → plan 모드, 23:35 “단순 wsl 일듯, 아직 구체적 계획 없음”.
  • 23:36 “llm 없이 일시키는 방법” — claude-cowork 후보 검토.

인프라·스킬·자동화

  • /handoff 스킬 — 자동 전달 약속 → 챗 전환 1회 제거 UX 로 정직 재작성, SSH+send-keys Primary 채널 추가.
  • /insta-post — venv 가드, 정책 A 명문화, 핸드오프 트리거 키워드 등록.
  • /goodnight — step 4.5 hostname 라우팅 (Mac 이면 텔레그램 핸드오프, WSL 이면 직접 호출).
  • /submit-app — hanjul keystore SoT 를 Mac 으로 등록.
  • 메모리: feedback_auto_mode_no_allow_prompt.md, reference_tmux_bracketed_paste_submit.md, feedback_plain_korean.md 박힘 (이전 세션에서).

남은 작업

  • MEMORY.md 인덱스 다이어트 (🗑️ 8개 retire + 🟡 3개 검토) — todos 에 등록됨.
  • Auto Mode → Bypass 전환 검토 (강대종님 23:28 이후 제안, 위험 트레이드오프 있음).
  • 다른 기기 오케스트레이터 구상 (구체 계획 미정).
  • 인스타 Mac 미러링 검증 (정책 A 라 실제 업로드는 WSL 만, Mac 은 standby).
  • 약먹자/더치페이 iOS 심사 결과 대기 (1.0.1 / 1.0.2, 48h 내 이메일).

관련 커밋

repoSHA메시지
skillsc116f6ffeat(goodnight): add insta-post as step 4.5 after done
skillsaea2bffdocs(issues): log 2026-04-24 pair
skills0caf714docs(submit-app): register hanjul keystore SoT as Mac
skills5ebacbbdocs(issues): WSL Playwright MCP 설치 후속
skills413329dfix(issue): wsl playwright mcp resolved via PLAYWRIGHT_MCP_BROWSER env var
skillsb260eadissue(insta-autopost): mirror secrets+folder WSL→Mac
skills4b13988issue(insta-autopost): mac venv setup partial
skillsefc60e4issue(insta-autopost): mac venv setup A path complete, dry-run PASS
skills07a10a2feat(insta-post): add venv guard, plain dependency spec, telegram alert
skills8bbb134issue(insta-autopost): SKILL.md updated with venv guard
skills6926151feat(insta-post): codify A policy - WSL primary, Mac standby
skills4809068feat(goodnight): step 4.5 hostname routing
skills70001a0feat(insta-post): handoff trigger keyword + policy A correction
skills6e588c0feat(handoff): peer-bot direct POST
skillsb1e5608fix(handoff): rewrite skill honestly
skillsfa68357feat(handoffs): introduce SSH+send-keys handoff channel
skillsdb8f997handoff(wsl→mac): trial followup
skills6daa14ffeat(handoff): promote SSH+send-keys to Primary
skills387d781fix(handoff): submit chord Enter Enter → S-Enter
skillsa75cef1fix(handoff): submit chord 진짜 정답 — sleep 분리 + Enter (METHOD A PASS)
skills655b60bfeat(handoffs): bidirectional end-to-end verify directive
skillse4e71a2fix(handoffs): bidir verify retry with /opt/homebrew/bin/tmux absolute path
skills6961a4fdocs(handoff): note Mac PATH quirk
skills2ee45f5handoff(wsl→mac): zero-touch demo — first WSL-initiated autonomous handoff
skillsf4f9cf7handoff: Mac claude-main 가드
skillscc6dc89handoff: SSH peer-user 를 placeholder 화
daejong-pageeb14db7docs(newsletter): Ep.1 Substack 발행용 편집본
daejong-page690612edocs: 작업일지 2026-04-24 v1.0.1
daejong-pagebb5dec2done: 2026-04-24 (evening session)
daejong-page48b258btodos: 내일 MEMORY.md 인덱스 다이어트
daejong-pageaf3ced0todos(2026-04-24): Substack 설정 재개 🤝→🍎 이관
daejong-pagebc183f4todos: 2026-04-25 — Playwright WSL 차단 풀기 추가
daejong-page58f4bdctodos(2026-04-25): cancel Playwright WSL 풀기 (전제 오인)
daejong-pageca8d9a2todos: bump 2026-04-25 index timestamp
daejong-page2fc20efinsta-host: add card-20260425-142848.png
hanjulf18092ffeat(hanjul/android): generate launcher icons
hanjul944f001feat(hanjul): JSON export + Play Store ship-ready assets
hanjulc2774b6chore(hanjul): finalize Android Play Console screenshots
hanjul704bfdechore(android): wire release signingConfig + bump to 1.1.0+3
review_radarcd7f831feat(review_radar/v0.2): home filter chips + 방금 변경 highlight