← 작업일지

2026-05-23 · v1.0.0

2026.05.23 작업일지 v1.0.0

5노드 챗봇 자가복구 두 게이트(Linux trust prompt + bun PATH) 다 풀어 노트북/라이젠/데스크탑 진짜 Windows 재부팅 자가복구 PASS. 사이클 중 ExitPlanMode 글로벌 룰 gap 사고로 룰 강화.

오늘의 궤적

낮 시간엔 다른 노드들이 분산 작업 — 🪟 WSL이 한줄일기 iOS italic fix(PR #21 머지), 🏭 맥미니가 한줄일기 Android production promote 완료 + naver-blog-publish §3 셀렉터 강화(PR #74 머지), 본진이 Ep12 뉴스레터 세무 정보 정정 + 3채널 재발행 + macOS Sequoia 풀자동 토글 PASS. 그러다 23시 18분 형님이 노트북 수동 재부팅 후 챗봇 자동 안 붙는 거 발견 → 본진이 본 사이클 시작 → 5노드 챗봇 자가복구 본질 파고들기 → 두 게이트 다 풀고 새벽 0시반 마무리.

5노드 챗봇 자가복구 — 본 사이클 메인

게이트 1: Linux trust prompt (3노드 공통)

  • Claude Code가 비대화형 systemd 환경에서 시작될 때 매 부팅마다 “Quick safety check … ❯ 1. Yes, I trust this folder / 2. No, exit” 워크스페이스 trust prompt 표시. stdin TTY 없어 답 못 줘 무한 정지. macOS launchd 환경엔 안 뜸 (OS-specific 동작).
  • 본진 가설 두 개 먼저 틀림:
    1. --dangerously-skip-permissions 플래그가 trust도 우회한다 → 박았는데 prompt 그대로
    2. 사람이 한 번 1 박으면 어딘가 저장된다 → restart 후 prompt 다시 떴음
  • 진짜 fix = ExecStartPost 한 줄로 6초 대기 후 자동 Enter (디폴트 ❯가 1.Yes에 박혀있어 Enter만으로 통과):
    ExecStartPost=/bin/bash -c 'sleep 6 && tmux send-keys -t claude Enter'
  • 노트북/라이젠/데스크탑 3노드 ~/.config/systemd/user/claude-chatbot.service sed 한 줄씩 fan-out.

게이트 2: bun PATH (🪟 라이젠 한정)

  • 라이젠 fan-out 후에도 polling 안 함 (pending_update_count=9 쌓임, “Listening for channel messages” 출력만 false positive). 같은 unit 박은 데스크탑은 처음부터 polling OK.
  • claude 안 /mcp 메뉴 확인 → plugin:telegram:telegram · ✘ failed + ENOENT. typescript log 활성화하면 “1 MCP server failed” 출력 + reconnect 시도 시 ENOENT.
  • 형님 사진 첨부로 plugin Command 잡힘 → bun run --cwd <plugin path> --shell=bun --silent start. bun runtime 의존.
  • 노드별 bun 위치 비교:
    • 🪟 라이젠: ~/.bun/bin/bun (1.3.12, 표준 bun 설치)
    • 🖥 데스크탑: ~/.npm-global/bin/bun (1.3.13, npm-global 거쳐)
  • 라이젠 unit Environment PATH 에 ~/.bun/bin 부재 → bun 못 찾음 → plugin fail. PATH 맨 앞에 %h/.bun/bin: 추가가 답:
    sed -i 's|Environment=PATH=%h/.local/bin|Environment=PATH=%h/.bun/bin:%h/.local/bin|' ~/.config/systemd/user/claude-chatbot.service
  • 진단 중 본진이 rm -rf ~/.claude/plugins/cache 박은 사고 — plugin 실행엔 무영향 (plugin 본문은 marketplaces/ 디렉토리 사용, cache는 dynamically configured 캐시) 이지만 진단 동선이 길어진 false start.

진짜 Windows 재부팅 자가복구 검증 (3노드 PASS)

노드발사 → SSH 복귀 → polling형님 수동 검증
💻 노트북23:41:44 → 23:42:43 → 23:42:55 (1분 11초)PASS, cc 진입까지 풀그린
🪟 라이젠00:00:12 → 00:01:22 → 00:01:28 (1분 16초, bun PATH fix 후)PASS, w + cc 풀그린
🖥 데스크탑(자동 검증 미진행, polling은 처음부터 OK)PASS, “ㄷㅚ냐” 인바운드 처리 + ”🖥 노드 응답 정상” 답장

본진 r→cc 노트북 진입 freezing(직전 사이클 #2 미해결) 도 autostart 정상화로 자동 풀림 — claude process 가 trust prompt 에서 멈춰있어서 grouped client attach 해도 화면 안 그려졌던 거였음.

글로벌 룰 강화 — ExitPlanMode gap

  • 본진이 텔레그램 turn 안에서 EnterPlanMode 진입 + ExitPlanMode 호출. 형님 폰엔 plan approval UI 안 보임 (터미널 UI). 형님 msg23123/23124 “또 터미널에 선택지띄우네 / 글로벌 룰에 없는거냐” 정정.
  • 기존 룰 본문 “AskUserQuestion 등 터미널 UI 도구 금지” 의 “등” 외연이 ExitPlanMode 까지 확장 안 됨. 같은 카테고리 사고가 🖥 데스크탑 2026-05-18-askuser-globals-gap.md 한 번 있었음.
  • Fix: ~/claude-skills/globals/CLAUDE.md 섹션 재작성 — AskUserQuestion / EnterPlanMode / ExitPlanMode 명시 + “plan 짜기 워크플로우” 신설 (텔레그램 turn 한정 plan mode 진입 X, 텔레그램 reply 본문에 plan 요약 + “진행할까요?” 자연어로 묻기).

이슈 기록

파일내용
issues/2026-05-23-linux-trust-prompt-autostart-gate.md두 게이트 본질 + 3노드 fan-out + 라이젠 bun PATH 별도 fix + 진짜 재부팅 검증 + Bonus cache rm 사고
issues/2026-05-23-exitplanmode-globals-gap.md룰 gap 포스트모템 + forcing function

메모리

파일타입내용
reference_linux_chatbot_systemd_autostart_pattern.mdreference3노드 자가복구 표준 unit 본문 + 두 게이트 검증 체크리스트 + /mcp 진단 도구

다른 노드/세션 활동 (낮 사이클)

영역결과
🪟 WSL 한줄일기 iOS AI 카드 italic→regularPR #21 squash merge (2c59b4a)
🏭 맥미니 한줄일기 Android production promotefastlane supply 1차 country 함정 → 2차 PASS, 검토 큐 제출 완료
🏭 맥미니 naver-blog-publish §3 selector 강화PR #74 squash merge (22:36:52 KST)
🍎 본진 Ep12 뉴스레터 세무 정보 정정 3채널 재발행홈페이지/Substack/네이버 다 정정본 반영 PASS
🍎 본진 Ep13 뉴스레터 “AI가 자기 손으로 토글을 켰다” 초안 + 시간 정정3 commits
🍎 본진 macOS Sequoia 시스템 설정 풀자동화 cliclickissue + knowhow 박힘
🍎 본진 anthropic cyber content block 진단issue 박힘

인프라·자동화

  • WSL/Linux 노드 공통 claude-chatbot.service portable unit 박힘 (%h home var, 노드 username 무관, claude-automations commit 0cf355f). 본 사이클 fix 이전.
  • 본진 노트북 수동 재부팅 검증 forcing function = sleep 5h cuts remote access 이슈 (별 사이클).

남은 작업

  • 데스크탑 자동 재부팅 자가복구 검증 (형님 수동 PASS 끝, 자동은 선택 — 동작 신뢰)
  • session-start-next-cycle-inject.sh line 45 unbound variable hook 에러 fix
  • 5노드 챗봇 자가복구 헬스체크 cron (별 사이클 backlog)
  • systemd unit PATH 표준화 — ~/.bun/bin + ~/.npm-global/bin 둘 다 박는 robust 패턴

관련 커밋

repoSHA메시지
claude-skills567a814auto: skills update (issues/2026-05-23-linux-trust-prompt 본문 bun PATH 추가)
claude-skills37c9b46auto: skills update (issues/2026-05-23-exitplanmode-globals-gap.md)
claude-skills0b0129cauto: skills update (issues/2026-05-23-linux-trust-prompt-autostart-gate.md)
claude-skillsf0f8e6eauto: skills update (globals/CLAUDE.md) ExitPlanMode 금지 명시
claude-skills191e8ecfix(naver-blog-publish): §3 임시저장 팝업 selector
daejong-pagec52cd5cinsights: 막막한 엔터프라이즈 AX, 암묵지에 답이 있습니다
daejong-pagefa1c479insights: The AI Career Opportunity Nobody Is Talking About
daejong-paged833ee6newsletter: Ep13 시간 정정 (평일 오전 → 평일 정오쯤)
automations0cf355fsystemd: claude-chatbot.service repo 추가 (노트북 카나리아)