feat(scheduler): 같은 repo 비의존성 이슈 워크트리 병렬 실행 (INT-1975)#152
Merged
Conversation
allowSameProjectConcurrent를 config로 노출(기본 ON)하고, worktreeMode가 꺼져 있으면 강제 무시하는 가드를 TaskScheduler 생성자에 추가. 워크트리 격리 없이 공유 워킹트리를 동시 변경해 손상시키는 경우를 차단한다. - core/types.ts, runnerTypes.ts: allowSameProjectConcurrent 필드 - core/config.ts: 스키마(default true) + 빌더 carry-through - taskScheduler.ts: worktreeMode 없으면 force-disable + warn 가드 - autonomousRunner.ts: 하드코딩 false → config.allowSameProjectConcurrent ?? true - 단위 테스트 4건(직렬화 기본·병렬 허용·가드·getNextExecutable)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
문제
워크트리 격리(FS)·KG 파일충돌 감지·blockedBy 의존성 게이트가 이미 구현돼 있지만,
TaskScheduler의allowSameProjectConcurrent가autonomousRunner.ts에 하드코딩false라서 같은 repo의 비의존성 이슈가 직렬화됨. 라이브 config가worktreeMode:true,maxConcurrentTasks:6인데도 한 repo는 heartbeat당 1개씩만 처리.해결
allowSameProjectConcurrent를 config 스키마로 노출 (기본 ON, defaulttrue).worktreeMode가 꺼져 있으면 강제 무시 + warn. 공유 워킹트리 동시 변경 손상 차단. 가드는 두 플래그를 모두 가진TaskScheduler생성자(단일 지점)에 배치.autonomousRunner는 config 값을 그대로 전달, 안전성은 스케줄러 가드가 보장.기존 안전망(KG 파일충돌 감지 → 같은 모듈 수정 이슈 defer, blockedBy 의존성 게이트)은 그대로 유지되어 "비의존성 + 비충돌" 이슈만 병렬 진입한다.
검증
getNextExecutable같은 repo 2개 디스패치.npm test전체 1175 통과,tsc0 error.🤖 Generated with Claude Code