Phase 4 of epic #847. 승인된 계획은 #847의 2026-09-05 코멘트에 있습니다.
무엇을 하는가
워크스페이스에 커밋되지 않은 변경이 남아 있을 때 이를 .quarantine-<timestamp>로 옮겨두는 동작과, 그 변경이 이 이슈의 것인지 증거로 판정하는 귀속 로직을 함께 없앱니다. 둘은 한 덩어리라 따로 뗄 수 없습니다.
대체 동작 — hojinzs 결정 (2026-09-05)
더러운 워크스페이스를 만났을 때 격리하지 않습니다. 경고를 남기고 진행합니다. 실패로 처리하지 않습니다.
이 결정의 근거를 그대로 옮깁니다. 이것은 상용 SW가 아니라 개발용 도구입니다. 남은 변경을 사람이 판단할 수 있게 보이게만 해주면 되고, 오케스트레이터가 대신 격리 디렉터리로 옮겨 감추는 것은 과도한 통제였습니다.
임의로 실패 처리를 고르지 마세요. 이 문장이 완료 조건입니다.
대상
| 위치 |
내용 |
packages/orchestrator/src/git.ts:490 |
quarantineIssueWorkspace |
packages/orchestrator/src/service.ts:3133-3164 |
귀속 판정 후 격리를 부르는 경로 |
packages/core/src/workflow/issue-identity.ts:148-171 |
DirtyWorkAttributionInput, DirtyWorkAttribution, fail-closed 판정 |
packages/orchestrator/src/service.ts:193 |
resolveDirtyWorkAttributionBranches |
packages/core/src/observability/structured-events.ts, event-formatter.ts |
격리 이벤트 |
27군데, 5파일. 레이어는 Coordination과 Observability입니다.
남기는 것
- 더러운 상태의 관측.
inspectIssueWorkspaceDirtyStatus(git.ts:449)는 남습니다.
- 에이전트에게 주는 복구 컨텍스트.
WORKFLOW.md의 Recovery Context와 service.ts:6699의 안내 문구는 더러운 diff를 사람이 판단하도록 유도하는 것이지 격리에 의존하지 않습니다. 다만 "attributed to this issue"라는 표현이 사라진 귀속 로직을 가리키므로 문구를 맞춰야 합니다.
- 트래커 어댑터 계약의
secretEnvironmentNames 등 무관한 것.
완료 조건
범위 밖
워크스페이스 경로 봉쇄 검사, before_remove 훅, 그리고 population 이전(P4‑1).
참고
기존 .quarantine-* 디렉터리가 호스트에 남아 있을 수 있습니다. 이 이슈는 코드만 다루고, 남은 디렉터리 정리는 운영자 몫입니다. 워커는 더러운 워크스페이스를 삭제하지 마세요.
Phase 4 of epic #847. 승인된 계획은 #847의 2026-09-05 코멘트에 있습니다.
무엇을 하는가
워크스페이스에 커밋되지 않은 변경이 남아 있을 때 이를
.quarantine-<timestamp>로 옮겨두는 동작과, 그 변경이 이 이슈의 것인지 증거로 판정하는 귀속 로직을 함께 없앱니다. 둘은 한 덩어리라 따로 뗄 수 없습니다.대체 동작 — hojinzs 결정 (2026-09-05)
이 결정의 근거를 그대로 옮깁니다. 이것은 상용 SW가 아니라 개발용 도구입니다. 남은 변경을 사람이 판단할 수 있게 보이게만 해주면 되고, 오케스트레이터가 대신 격리 디렉터리로 옮겨 감추는 것은 과도한 통제였습니다.
임의로 실패 처리를 고르지 마세요. 이 문장이 완료 조건입니다.
대상
packages/orchestrator/src/git.ts:490quarantineIssueWorkspacepackages/orchestrator/src/service.ts:3133-3164packages/core/src/workflow/issue-identity.ts:148-171DirtyWorkAttributionInput,DirtyWorkAttribution, fail-closed 판정packages/orchestrator/src/service.ts:193resolveDirtyWorkAttributionBranchespackages/core/src/observability/structured-events.ts,event-formatter.ts27군데, 5파일. 레이어는 Coordination과 Observability입니다.
남기는 것
inspectIssueWorkspaceDirtyStatus(git.ts:449)는 남습니다.WORKFLOW.md의 Recovery Context와service.ts:6699의 안내 문구는 더러운 diff를 사람이 판단하도록 유도하는 것이지 격리에 의존하지 않습니다. 다만 "attributed to this issue"라는 표현이 사라진 귀속 로직을 가리키므로 문구를 맞춰야 합니다.secretEnvironmentNames등 무관한 것.완료 조건
.quarantine-*디렉터리를 더 이상 만들지 않는다.WORKFLOW.md의 복구 안내에서 귀속에 기대는 표현이 정리된다. 정책 파일이므로 문구만 고치고 다른 규칙의 의미를 건드리지 마세요.docs/architecture.md에서 해당 서술이 정리된다.범위 밖
워크스페이스 경로 봉쇄 검사,
before_remove훅, 그리고 population 이전(P4‑1).참고
기존
.quarantine-*디렉터리가 호스트에 남아 있을 수 있습니다. 이 이슈는 코드만 다루고, 남은 디렉터리 정리는 운영자 몫입니다. 워커는 더러운 워크스페이스를 삭제하지 마세요.