Skip to content

실행의 일생 ​

실행은 트리거 한 번에 하나씩 생겨요. 세션 하나와 짝을 이루고, 끝나면 다시 바뀌지 않아요.

세션 상태를 실행 상태로 ​

autofix 는 agent-bridge 가 알려 주는 세션 상태(state)를 이렇게 읽어요.

세션 state뜻실행 상태
working작업 중이거나 아직 답이 없음대응 중
waiting권한·질문 카드가 떠서 사람을 기다림확인 대기 (기다리는 내용을 함께 적어요)
done쉬는 중이고 답이 있음2분 동안 그대로면 완료
closed세션이 닫힘답이 있으면 완료, 없으면 실패

왜 2분을 기다리나요? ​

세션은 일하는 중간에도 잠깐 쉬는 상태가 되고, 그때까지의 답변이 있으면 done 으로 보일 수 있어요. 예를 들어 한 레포를 끝내고 요약을 쓴 뒤 다음 레포로 넘어가는 순간이에요. 그래서 done 이 2분 동안 이어질 때만 끝난 것으로 봐요. 그 사이에 다시 working 이 되면 처음부터 다시 세요.

이 때문에 완료 기록은 세션의 마지막 답 뒤 2~3분쯤 늦게 찍혀요(1분 간격으로 확인하니까요).

한 번에 하나씩 ​

대응 중이거나 확인 대기인 실행이 있으면 새 트리거는 세션을 열지 않고 건너뜀 기록만 남겨요. 같은 레포를 두 세션이 동시에 고치면 서로의 브랜치와 락파일을 덮어쓰기 때문이에요.

확인 대기가 오래 남아 있으면 그동안 오는 트리거는 모두 건너뛰어요. 확인 대기가 보이면 agent-bridge 에서 답해 주세요.

제한 시간 ​

실행은 시작한 지 RUN_TIMEOUT(기본 4시간)이 지나면 시간 초과로 끝나요. 세션 상태를 읽지 못하는 동안(맥이 잠깐 끊김, 서버 재시작)은 기록을 바꾸지 않고 다음 분에 다시 읽어요. 그래도 제한 시간을 넘기면 시간 초과로 둬요.

시간 초과는 기록만 끝내요. 맥의 세션을 멈추지는 않아요. 필요하면 agent-bridge 에서 직접 정리하세요.

서버를 다시 시작하면 ​

기록은 /data/runs.json 에 바로 저장돼요. 다시 시작해도 진행 중인 실행은 그대로 남고, 다음 분부터 다시 세션 상태를 읽어요. 다만 "끝남이 언제부터였는지"는 메모리에만 있어서 2분 세기는 처음부터 다시 해요.

agent-bridge 의 서비스 API 위에서 도는 자동 대응 서버예요.