Releases: PlateerLab/xgen-chrome-extension
v0.6.3
수정 사항
fix(autoMatchAuthProfile): 프로필 생성 레이스 구제 + 실패 에러 메시지 명확화
문제
start_api_hook이 꺼진 상태에서 사용자가 로그인하면 로그인 API가 capturedApisByTab에 저장되지 않아 register_tool이 LOGIN_REQUIRED로 실패. 또한 API_CAPTURED 시점에 autoCreateAuthProfileFromCapture가 fire-and-forget으로 실행되어, 첫 register_tool 호출 시 DB에 프로필이 아직 없어 매칭 실패하는 레이스 컨디션도 존재.
변경 (src/background/service-worker.ts):
findCapturedLoginForDomain실패 시 500ms 대기 후 서버 프로필 목록 재조회로 뒤늦게 생성된 프로필을 구제 — 첫 시도로도 성공 가능- 재조회도 실패하면 기존
LOGIN_REQUIRED경로로 폴백 (동작 보존, 사이드 이펙트 없음) LOGIN_REQUIRED에러 메시지에 구체적 복구 절차 기재:- (1)
start_api_hook확인 → (2) 로그아웃 후 재로그인 → (3)register_tool재시도
- (1)
효과
- 타이밍 레이스로 인한 "한 번 더 시도해야 되는" 현상 완화
- 사용자/AI가 에러를 받았을 때 무엇을 해야 할지 바로 알 수 있음
설치
xgen-pathfinder-v0.6.3.zip다운로드 → 압축 해제chrome://extensions→ 개발자 모드 → "압축해제된 확장 프로그램을 로드합니다" → 압축 해제한 폴더 선택- 기존 v0.6.2 설치본은 업데이트 또는 제거 후 재설치
동반 변경
xgen-workflow: AI 프롬프트(canvas_tools.py)에 "로그인 유도 전에 start_api_hook 먼저 켜라" 순서 강제 (별도 MR)
v0.6.2
수정 사항
fix(register_tool): 원본 body를 static_body에 주입하여 빈 body 호출 방지
v0.6.1 패치 후에도 AI가 모든 필드를 api_body에 flat 형식으로 넣는 경우 static_body가 비어있게 되어,
서버측 api_tool_loader가 properties 키 없는 스키마를 인식 못해 AI 파라미터가 전부 무시되고
결국 body={}로 호출되어 Required request body is missing 500 에러가 발생했던 이슈 수정.
변경점 (src/background/service-worker.ts):
- 캡처 원본 request body 전체를
static_body에 주입 (단일 진실 원천) api_body는 flat이든 JSON Schema든 모두{type:"object", properties, required:[]}로 정규화- AI 상상 필드(원본에 없는 키)는
api_body.properties에서 제거 - AI가 파라미터 제공 안 해도 원본 값으로 호출 성공, 제공하면
api_tool_loader.py의 merge에서 덮어쓰기
효과: AI가 api_body 스키마 형식을 잘못 만들어도, 확장에서 올바른 static_body를 박아두므로 호출 자체는 성공.
설치
xgen-pathfinder-v0.6.2.zip다운로드 → 압축 해제chrome://extensions→ 개발자 모드 → "압축해제된 확장 프로그램을 로드합니다" → 압축 해제한 폴더 선택- 기존 v0.6.1 설치본은 업데이트 또는 제거 후 재설치
v0.6.1
수정 사항
fix(register_tool): 캡처 원본 body로 static_body/api_body 보정
AI가 register_tool을 호출할 때 api_body/static_body의 필드명을 상상해서 만들어,
실제 서버 스펙과 달라 API 호출이 500을 받는 문제를 해결합니다.
변경점 (src/background/service-worker.ts):
capturedApisByTab에서url(쿼리 제외) + method로 원본 요청 매칭api_body(파라미터 스키마) 중 원본에 없는 필드는 제거- 원본 필드 중
api_body에 없는 것은static_body에 강제 주입 - JSON 원본에 한해 적용, 비-JSON은 기존 동작 유지
효과: AI 추론 품질과 무관하게 캡처 원본이 단일 진실 원천이 되어 도구 호출이 안정화됨.
설치
xgen-pathfinder-v0.6.1.zip다운로드 후 압축 해제chrome://extensions→ 개발자 모드 활성화 → "압축해제된 확장 프로그램을 로드합니다" → 압축 해제한 폴더 선택
v0.6.0 — 워크플로우 파이프라인 UI + CSP postMessage 대응
주요 변경
feat: 워크플로우 파이프라인 UI 통합 (c8da3a7)
PlanQuestionPopup: 계획 단계 선택형 질문 팝업 (single/multi, 기타 입력, 건너뛰기, 최소화)PipelineState/plan_question/stage_changeSSE 이벤트 핸들링
fix: Next 16 CSP 대응 (9e4f1b5)
- Canvas ↔ Extension 통신:
CustomEvent→postMessage전환 - Next 16 강화된 CSP에서 isolated world ↔ main world 통신 호환
- 토큰 추출 시
xgen_access_token쿠키 탐색 추가
fix: 3001 포트 지원 (c2c9a26)
- 프론트엔드 포트 교체 규칙에 3001 추가 (로컬 멀티 인스턴스 커버)
fix: 외부 서비스 포트 교체 제한 (e555b80)
localhost/127.0.0.1일 때만 3000/3001 → 8000 교체- 배포 환경(Istio/K3s) 방화벽 이슈 회피
설치
xgen-ai-assistant-v0.6.0.zip을 다운로드 후 압축 해제, chrome://extensions/ → 개발자 모드 → 압축해제된 확장 프로그램 로드.
호환성
- xgen-frontend:
main브랜치(모노레포apps/web)와 호환.jeju-dev브랜치는f8a5b600포팅 필요. - xgen-workflow:
plan_questionSSE emit 구현은 백엔드 추가 작업 필요.
v0.5.3 — navigate_by_plan 검증 강화
클릭 후 URL/DOM 변화 검증, 사이드바 우선 매칭
v0.3.0 - API Hook + XGEN Tool 자동 등록
주요 변경사항
API Hook 기능
- 모든 웹사이트에서 fetch/XHR 요청을 실시간 캡처
- MAIN world 스크립트 주입으로 페이지 CSP 우회
- on-demand 방식 (Start 버튼 클릭 시에만 활성화)
XGEN Tool 자동 등록
- 캡처된 API를 XGEN Tool 정의로 자동 변환
- URL, Method, Headers, Body Schema 자동 매핑
- Sidepanel에서 편집 후 바로 XGEN 도구 관리에 등록
UI 개선
- Sidepanel에 Chat / API Hook 탭 전환 추가
- API 목록 필터링 (URL 패턴, HTTP Method)
- API 상세 보기 (Request/Response Headers, Body)
설치
- zip 파일 다운로드 후 압축 해제
chrome://extensions→ 개발자 모드 → "압축해제된 확장 프로그램을 로드합니다" → 압축 해제 폴더 선택
v0.2.0 — Page Agent v2 + 컨텍스트 연속성
What's New
Page Agent v2 — DOM 인덱스 기반 조작 + 가상 커서
@page-agent/page-controller(alibaba/page-agent) 도입- DOM 평탄화:
[0]<button>새 워크플로우</button>형태로 LLM에 전달 - 합성 이벤트:
clickElement,inputText,selectOption,scroll - SimulatorMask: smooth cursor 이동 + click ripple 시각 피드백
- CSS selector 하드코딩 핸들러 3개 삭제 → GenericHandler로 통합
멀티 인스턴스 지원
- origin별 JWT 분리 저장 (
token:{origin}) - active tab 기준 서버/토큰 결정
- xgen.x2bee.com + jeju-xgen.x2bee.com 동시 사용 가능
컨텍스트 연속성
- 대화 진행 요약 (최근 6턴) →
conversation_summary로 백엔드 전달 - page_command 실행 후 DOM 재스캔 → 다음 턴에 fresh context 제공
- canvas_command 실행 후 state 캐싱 → 다음 턴에 갱신된 canvas_state 반영
백엔드 (xgen-workflow 별도 배포)
page_tools.py: click/input/select/scroll 4개 LangChain toolpage_commandSSE 이벤트 emitpage_context.elements+conversation_summary시스템 메시지 주입
Install
- zip 다운로드 후 압축 해제
- Chrome →
chrome://extensions→ 개발자 모드 - "압축해제된 확장 프로그램을 로드합니다" → 압축 해제 폴더 선택
v0.1.0 — MVP + Page Agent
XGEN AI Assistant Chrome Extension v0.1.0
설치
- zip 다운로드 → 압축 해제
chrome://extensions→ 개발자 모드 ON → 압축해제된 확장 프로그램 로드- XGEN 페이지 접속 → 확장 아이콘 클릭
주요 기능
- Side Panel 채팅 — SSE 스트리밍, 마크다운 렌더링
- Provider/Model 드롭다운 선택 (서버에서 동적 로드)
- Page Agent — 페이지 자동 감지 + 컨텍스트 추출
- Light 모드 기본, 심플 그레이톤 디자인
- API URL 자동 감지 (하드코딩 없음)