microsoft / microsoft/CopilotWatchTower
후속 과제: 메인 프로세스 i18n, legacy 디렉터리 제거, tsconfig 프로젝트 분리
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
PR #11(코드 리뷰 지적사항 일괄 수정)에서 의도적으로 범위 밖으로 미룬 항목들입니다. 각각 독립적인 작업 단위라 별도로 처리합니다.
1. 메인 프로세스 하드코딩 한국어 문자열 i18n 처리
현황: 렌더러는 5개 언어(en/ko/ja/zh-CN/es) i18n이 적용되어 있으나, 메인 프로세스에는 사용자에게 노출되는 한국어 문자열이 약 255개 하드코딩되어 있습니다. 수집 진행 로그, 오류 메시지, 온보딩 안내문 등이 언어 설정과 무관하게 항상 한국어로 표시됩니다.
주요 위치:
src/main/collectors/*.ts— 수집 진행/경고/오류 메시지src/main/onboard.ts— 온보딩 단계 안내src/main/portal.ts— 포털 자동화 상태 메시지src/main/ediscovery*.ts— 내보내기 파싱 경고
제안 방향:
- 메인 프로세스가 문자열 대신
{ key, params }형태의 구조화된 메시지를 IPC로 보내고, 렌더러가t()로 번역하는 방식이 가장 깔끔합니다. 로그 저장 시에도 언어 중립적이라는 이점이 있습니다. - 255개 × 5개 언어 = 1,275개 번역이 필요하므로 기계번역에 그대로 의존하면 품질 리스크가 큽니다. 최소한 en/ko는 사람이 검수해야 합니다.
규모: 기능 단위 작업 (별도 PR 권장)
2. legacy/ 디렉터리 제거
현황: 리포지토리 루트의 legacy/에 Electron 재작성 이전의 Python/웹 코드 약 2.6MB가 남아 있습니다. 빌드·테스트·런타임 어디에서도 참조되지 않는 죽은 코드입니다.
막고 있는 것: README.md가 legacy 구현을 참조하고 있어, 단순 삭제 시 문서가 깨집니다.
할 일:
- README에서 legacy 참조 정리 (마이그레이션 노트로 대체하거나 삭제)
-
legacy/삭제 - 히스토리 보존이 필요하면 삭제 전 태그를 하나 남기기 (예:
pre-electron-legacy)
부가 효과: clone 용량 감소, 코드 검색 노이즈 제거, ESLint/보안 스캐너의 오탐 감소
3. tsconfig.json 프로젝트 분리 (main / preload / renderer)
현황: main·preload·renderer가 단일 tsconfig.json 을 공유합니다. 그 결과:
lib에DOM이 포함되어 메인 프로세스 코드에서도window,document,localStorage등이 타입 체크를 통과합니다. 런타임에는 존재하지 않으므로 컴파일 단계에서 잡아야 할 오류를 놓칩니다.- 반대로 렌더러에서 Node 전용 API를 참조해도 타입상 막히지 않습니다.
할 일:
-
tsconfig.node.json(main + preload,lib: ["ES2023"], DOM 제외) -
tsconfig.web.json(renderer,lib: ["ES2023","DOM","DOM.Iterable"]) - 루트
tsconfig.json을references기반 솔루션 파일로 전환 -
npm run typecheck가 두 프로젝트를 모두 검사하도록 수정 - ESLint
parserOptions.project도 함께 갱신
주의: 분리 직후 기존에 숨어 있던 타입 오류가 다수 드러날 가능성이 높습니다.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Treat the three sections as separate work units: inspect the hard-coded messages in src/main/collectors/.ts, src/main/onboard.ts, src/main/portal.ts, and src/main/ediscovery.ts; review README.md and legacy/ before deletion; then examine the root tsconfig.json and npm run typecheck. Done means the selected unit has its documented references, checks, and tests updated without leaving the other sections ambiguous.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- electron, eslint, python, typescript
- Domain
- build-system, documentation, internationalization, tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100