v1.6.0 — 백그라운드 탭에서도 제대로 도는 자동화
사용자 증상 하나에서 출발했다: "백그라운드 탭에서 무한 스크롤이 20개쯤에서 멈추고 푸터가
뜬다 — 크롬인크롬은 되는데." 원인은 크롬이 비활성 탭의 렌더링 프레임을 만들지 않는 것
이었고, 파고드는 과정에서 로딩 대기·스냅샷 병합의 결함까지 함께 드러났다.
Added
- 백그라운드 탭 렌더링 유지 (
chrome_scroll_collect의renderMode): 비활성 탭은
requestAnimationFrame이 멈춰 무한 스크롤이 의존하는IntersectionObserver가 영영
발화하지 않는다. CDP 로 주기적으로 프레임을 강제해(250ms 간격) 탭을 앞으로 끌어내지
않고도 지연 로딩이 정상 동작한다.auto(기본, 탭이 안 보일 때만) /force/off.
결과에 실제로 적용된 수단을renderAssist로 싣고, 살리지 못한 채 멈추면
stoppedReason을noGrowthWhileHidden으로 정정한다(바닥 도달로 오보고하지 않는다). - 작업 탭 재사용·정리: 이 세션이 만든 작업 탭이 유휴일 때만 재사용하고, 새 작업
탭이 열리면 같은 세션의 유휴 탭을 닫는다. 탭이 무한히 쌓이지 않으면서 병렬 작업은
서로의 페이지를 덮어쓰지 않는다.chrome_navigate의newTab:true로 강제할 수 있고,
사용자가chrome_set_work_tab으로 지정한 탭은 절대 끌려가지 않는다. - "Claude 작업 중" 표시: 작업 탭 페이지에 보라색 테두리와 배지를 띄운다. shadow DOM 이라
사이트 CSS·텍스트 수집과 섞이지 않고,pointer-events:none이라 클릭을 막지 않는다.
Fixed
- 렌더링 유지가 실제로는 동작하지 않았다:
Page.startScreencast는 "생산된 프레임을
받아 가는" 수동적 장치라, 프레임이 아예 안 나오는 숨은 탭에서는 첫 프레임이 영원히 오지
않는다(실측: force 모드 15초에 페이지 rAF 0회). 프레임 생산을 강제하는
Page.captureScreenshot을 주기적으로 눌러 주는 방식으로 교체했다. 실측 결과 같은
페이지에서 10개 → 100개 전량 수집. chrome_navigate의waitUntil이 무력했다: 내비게이션이 커밋되기 전에는 이전
문서가 살아 있고readyState가complete라, 대기가 1~7ms 만에 끝나고 결과의
url·title 도 이전 페이지 것이 나갔다. 이동을 걸기 전에 시작 신호를 잡고, 문서
식별자·탭 상태·목표 URL 커밋 여부로 판정한다. 탭이 닫히면 즉시tab_not_found,
주입할 수 없는 문서(about:blank·PDF)는 탭 상태로 판정해(not_injectable) 타임아웃까지
헛돌지 않는다.waitUntil:'none'이 탭 점유를 풀지 않았다: 재사용 탭이 영원히 busy 로 남아 이후
호출이 새 탭만 계속 만들었다.chrome_scroll_collect텍스트가 패스마다 페이지 전체를 중복 누적했다: 푸터나 로딩
스피너 때문에 새 항목이 가운데로 들어오면 접두·접미 겹침이 둘 다 빗나갔다(실측: 최종
16.8KB 페이지가 120KB). 줄 단위 정렬로 다시 짜서 같은 페이지가 16.9KB 로 수렴한다.
Changed
docs/TOOLS.md를 실제 도구 41개에 맞춰 동기화했다(문서에는 21개만 있었고 그중 6개는
이미 없어진 도구였다). 공통 파라미터를 한 절로 뽑고, Performance·Automation 섹션을 추가.
Tests
- 이 영역들에는 단위 테스트가 없었다 — 그래서 깨진 채로 배포됐다. 56건을 추가했고,
그중 24건은 무한 스크롤 페이지 모양 4종 × 시드 3개 × 페이지 크기 2종을 돌려 매 패스마다
"손실 0 · 중복 0 · 크기 폭발 없음" 을 확인하는 퍼즈 테스트다. 확장 762건 + 브리지 25건 통과.
설치 (Windows)
PowerShell 에서 한 줄:
irm https://raw.githubusercontent.com/cw02326/auto-chrome-mcp/main/install.ps1 | iex설치가 끝나면 chrome://extensions 에서 압축해제된 확장 프로그램을 로드 로 설치 폴더를
한 번 지정해 주면 됩니다. 자세한 안내는 초보자용 설치 가이드.
npm
auto-chrome-mcp-bridge@1.6.0auto-chrome-mcp-shared@1.6.0