Files
gdown/docs/TODO.md
2026-02-25 11:12:23 +09:00

7.5 KiB

gdown Porting TODO (Motrix 기준)

마지막 업데이트: 2026-02-24

규칙

  • 모든 기능은 /Users/A/Work/Motrix 기준으로 비교/포팅
  • 작업 후 반드시 이 파일과 PORTING_PLAN.md 동시 업데이트

현재 진행률

  • 전체: 약 45%
  • 엔진/RPC: 70%+
  • UI 동등성: 55~60%
  • 고급 기능: 40~50%

In Progress

  • [~] 범주(Category) 기능 단계 구현
    • Step 1: 범주 기본 데이터/설정 토글/추가 모달 범주 선택 + 저장 경로 자동 반영
    • Step 2: 범주 관리 UI(추가/수정/삭제, 아이콘/확장자 규칙 편집)
    • Step 3: 좌측 범주 네비게이션/카운트/필터 연동
    • Step 4: 외부 연동/자동 캡처 시 범주 자동 매핑 고도화
    • Step 5: 범주별 통계/정렬/검색 UX 마무리
  • [~] Native Messaging 기반 브라우저 연동 전환 (Step-by-step)
    • Step 1: Native Host 스캐폴드(프로토콜/설치 스크립트/템플릿 manifest)
    • Step 2: 확장에서 Native Host 1차 연결(우클릭 + 자동 경로 공통 addUri)
    • Step 3: gdown 앱 제어 채널 정식화(외부 요청 큐 + 앱 포커스 + Add 모달 선표시)
    • [~] Step 4: 링크 자동 후킹 안정화 (사이트별 트리거 차이/클릭 경합)
    • Step 5: 장애 복구/재시도/로깅 정리
    • Step 6: 설정 UI/배포 문서 정리
  • motrix-extension gdown 친화 리브랜딩/동작 정렬
    • 문구/알림/컨텍스트 메뉴의 Motrix 표기 제거 후 gdown 기준으로 통일
    • 확장 설정 문서/툴팁을 gdown 워크플로우(추가 모달 확인 후 시작)로 전면 수정
    • 불필요 fallback 옵션 정리 및 기본 동작을 gdown 표준 경로로 고정
  • 확장자별 분기 동작 정책 구현
    • *.torrent/magnet:: 토렌트 탭/파일 선택 UI 우선 진입
    • 일반 바이너리(zip/exe/dmg/...): URL 탭 + 다운로드 추가 모달 사전 채움
    • 미디어/문서(mp4/mp3/pdf 등): 사용자 정책(자동 캡처/브라우저 유지) 선택 가능
    • 확장자 룰셋 UI(허용/제외/모달 강제/자동시작 금지) 추가
  • [~] Task Detail 패널 1차 포팅
    • General
    • Activity
    • Files
    • Peers
    • Trackers
    • [~] 하단 액션바/상세 인터랙션 Motrix 동등화
      • 하단 액션바(재개/중지/삭제/폴더/링크)
      • 탭 아이콘/간격/텍스트 밀도 디테일 튜닝
      • 피어 %/클라이언트 파싱 고도화

Next

  • [~] 설정 저장소(local) 연결
    • RPC Port / Secret / Binary Path 저장/복원
    • Download Dir / Split / Concurrent 저장/복원
    • 테마/고급 설정 키 저장/복원
  • aria2 global option 반영 커맨드
    • changeGlobalOption 대응
  • 리스트 인터랙션 강화
    • 행 선택 상태
    • 다중 선택
    • 선택 항목 일괄 액션
  • Task Detail 패널 1차 포팅 마무리
    • 하단 액션 세부 UX(Motrix 동등성 최종 조정)
    • 탭별 빈 상태/오류 상태 문구 정리

Done

  • Native Host addUri 처리에서 앱 포커스/전환 동작 제거(큐 적재 전용 무중단 모드)
  • Native Host 포커스 로직에서 osascript/System Events 제거, open 기반 포커스만 사용(자동화 승인 팝업 회피)
  • macOS 앱 시작 시 Native Host(org.gdown.nativehost) 자동 설치/갱신 로직 추가
  • 완료 작업 분류 보정: active/waiting/stopped 전 구간에서 완료 조건(done>=total)을 다운로드 완료로 집계
  • 외부 링크 캡처 시 즉시 시작 대신 Add 모달 확인 후 시작 흐름으로 전환
  • gdown:// 스킴 미등록 환경 대응: Native Host -> 로컬 큐(~/.gdown/external_add_queue.jsonl) -> 앱 폴링 처리
  • Native Host 설치/삭제/스모크 스크립트 추가 (tools/native-host/install-macos.sh, uninstall-macos.sh, smoke.mjs)
  • Native Messaging Host 1차 스캐폴드 추가 (tools/native-host/*)
  • 앱 종료 시 aria2 종료 루틴 보강 (강제 정리 + 메인 윈도우 close 이벤트 훅)
  • Browser extension 연동 UX: gdown://focus 딥링크 수신 시 앱 창 show/unminimize/focus 처리
  • Add Task 모달 고급 옵션(접기/펼치기) 구현: 사용자 에이전트/권한 부여/리퍼러/쿠키/프록시/다운로드로 이동
  • Add Task 고급 옵션 값의 aria2 전달 연결 (header, all-proxy, user-agent)
  • aria2 addUri/addTorrent 요청에 options/position 확장 지원
  • 작업 카드 i 버튼 우측 슬라이드 Task Info 패널 구현 (General/Activity/Trackers/Peers/Files)
  • Task Detail API 확장: 토렌트 생성일/코멘트/트래커 목록 필드 추가
  • 고급 설정 RPC 확장 연동 보조 기능 구현 (RPC URL/토큰 복사, RPC 연결 테스트)
  • 엔진 실행 정책 정식화: 외부 aria2 자동 재사용 제거, 포트 충돌 시 명시적 오류 처리
  • 작업 추가 임시 재시도 로직 제거, TLS 설정 기반 단일 경로로 정리
  • 설정 화면 저장/적용 시 하단 중앙 토스트 피드백 추가 및 애니메이션 적용
  • 다운로드 필터에 다운로드 완료 추가 및 완료 항목 자동 분류
  • 다운로드 중 항목 삭제 신뢰성 개선 (forceRemove -> remove -> removeDownloadResult)
  • 고급 설정 탭 1차 구현 (업데이트/프록시/트래커/RPC/포트/프로토콜/UA) + 런타임 즉시 반영
  • Motrix TaskActions.vue / TaskItemActions.vue 분석 기반 아이콘 기능 매핑 적용
  • 항목 아이콘 기능 확장: 폴더 열기(네이티브 파일관리자), 링크 복사(URI 우선), 정보 표시
  • 다운로드 화면을 스크린샷 기준으로 재정렬(라이트 톤, 좌측 작업 패널, 상단 아이콘 툴바)
  • 다운로드 리스트를 Motrix 톤의 카드형 레이아웃 + 아이콘 액션 버튼(재개/일시정지/삭제)으로 리디자인
  • 삭제 시 aria2 상태 경합 보완: remove 실패 시 removeDownloadResult 폴백 + 이미 삭제된 GID는 성공 처리
  • dialog 권한(dialog:allow-open) 추가로 저장 폴더 선택 버튼 무반응 이슈 보완
  • Tauri 초기 창 크기 확대(1280x860, 최소 1080x720)
  • 저장 폴더 탐색 버튼 클릭 전달 구조 수정 (label 중첩 제거 + 클릭 이벤트 안정화)
  • 설정 페이지 드롭다운(select) 플랫 스타일 적용
  • 메인 다운로드 하단 엔진 패널 제거 (자동 엔진 관리 UX에 맞게 단일 리스트 집중형 레이아웃 적용)
  • 기본 폴더 네이티브 선택 다이얼로그 구현 (@tauri-apps/plugin-dialog)
  • 설정 페이지 여백/레이아웃을 Motrix 스크린샷 톤으로 재조정
  • 설정 페이지 UI를 Motrix 스타일의 컴팩트 밀도 중심으로 재조정
  • RPC 포트 점유 시 기존 aria2 엔진 재사용 로직 추가
  • Motrix extra 기반 aria2 번들 리소스 도입 (src-tauri/resources/engine)
  • Motrix -> gdown 엔진 리소스 동기화 스크립트 추가 (npm run sync:aria2)
  • 엔진 수동 버튼 제거, Motrix 스타일 자동 엔진 관리로 전환
  • 빌드 시 패치 버전 자동 증가 훅 추가 (scripts/version-bump.sh, tauri:build)
  • 엔진 시작/중지/상태 조회
  • URI/Torrent 추가
  • 토렌트 드래그&드롭
  • 작업 목록(Active/Waiting/Stopped) 표시
  • 개별 작업 pause/resume/remove
  • 전체 pause/resume
  • aria2 바이너리 자동 탐지 + 시작 오류 분류
  • 기본 실행 설정 localStorage 저장/복원