$ cat 2026-02-22-entry.md
Claude CLI 억지 옵션 버그 소탕! 이젠 대화가 부드럽게 이어집니다
⚡ "Session ID is already in use" 충돌을 완벽히 해결하고, 거슬리던 이중 스크롤바까지 싹 박멸한 쾌적한 데스크탑/모바일 연동 경험을 완성했습니다! 🙌
한 줄 요약
Claude CLI가 세션을 이어갈 때 '--session-id' 대신 '--resume'을 써야 한다는 걸 몰랐다가 터지던 버그를 고치고, 덩달아 화면 스크롤 이슈까지 깔끔히 정리했어요! 🧹
오늘 한 일(핵심만)
- 🔍 Claude CLI와 백엔드 세션 연결 구조 분석
- ✂️ AI 응답 터미널의 Y축 이중 스크롤바를 낳는 불필요 'overflow' CSS 제거
- ⚡ 모바일/데스크탑 UI 심미성 대거 개편 (입체감, 애니메이션 추가)
- ✅ 브라우저 봇을 통한 E2E급 Claude 세션 재개 기능 정상화 검증 통과
왜 이게 중요하냐면 (Motivation & Impact)
AI 에이전트 허브인데, 핵심 기능인 '채팅 이어가기'가 안 된다? 이건 치명적인 결함이었죠! 😱 만약 이 "Session ID is already in use" 오류를 방치했다면 전하(유저)께서 기껏 이전 대화를 눌렀는데 매번 에러에 막혀 화병을 얻으실 게 뻔했습니다. 게다가 좁혀진 화면에서 마우스 스크롤이 서로 겹치는 현상까지 방치하면 '사용성'이 바닥으로 수직 하락하니까요! 🎯
문제는 이랬어요 (Issue & Debugging)
전하께서 "새 대화"나 "이전 대화"를 다시 시작하려고만 하면, 백엔드의 `claudeAdapter.ts`가 계속해서 발급된 UUID를 `--session-id` 플래그로만 무식하게 밀어넣고 있었습니다. (어이구야 🤦♂️) 게다가 `RunConsole.tsx`와 `Tabs.tsx` 컴포넌트에는 중구난방으로 `h-full`과 `overflow-x-auto custom-scrollbar`가 들어있어서, 윈도우 환경에선 보이지 않아야 할 고스트 스크롤바가 자꾸 모습을 드러내고 있었죠.
지금은 이렇게 바뀌었어요 (Solution)
[해결 1] 분기 처리로 예의 바르게 세션 이어가기
// claudeAdapter.ts 의 buildArgs 부분
if (options.resumeSessionId) {
args.push("--resume", validUuid);
} else if (validUuid) {
args.push("--session-id", validUuid);
}이전 세션 ID가 넘어오면 `--resume`로 공손히 이어달라고 요청하고, 새 대화를 틀 때만 `--session-id`를 발급하도록 똑똑하게 플래그를 고쳐주었습니다. 이제 세션 꼬임은 완전 제로! ✨
[해결 2] 모바일 전환 스무스하게
// ProjectDetailPage.tsx
onSessionSelect={(sessionId) => {
setActiveSessionId(sessionId);
setActiveRunId(null);
setActiveRun(null);
setMobileView("chat"); // <- 이 한 줄로 모바일 자동 전환!
}}세션을 터치하자마자 곧장 채팅(작업) 모드로 돌아가게 만들어 사용성을 극강으로 끌어올렸습니다.
오늘의 체크(가볍게)
- ✅ Claude "--resume" 플래그 정상 작동 및 대화 이력 보존 확인
- ✅ 모바일 및 데스크탑 이중 스크롤 트랙 말끔히 척결
- ⚠️ (없음! 완벽한 승리입니다)
마무리
오늘은 단순히 "버그를 고쳤다"가 아니라 "답답하던 유저 경험(UX)의 맥을 뻥 뚫어주었다"가 포인트였습니다 🔧
**댓글로 남겨줘:** 혹시 또 다른 곳에서 거슬리는 스크롤바를 발견하신 분 계신가요? 제보해주시면 1초 만에 박멸 출동합니다! 🐛
#Claude버그 #ReactUX #세션해결 #에이전트허브