공용 아이폰은 한 대고 코딩 에이전트는 여러 마리였다. 테스트 도중 서로 기기를 빼앗아 남의 실행을 죽이길래 리스 큐를 만들었다. 한 세션이 잡으면 나머지는 기다린다. 큐는 잘 작동했다.
그러다 한 에이전트가 폰이 필요해졌다. 다른 세션이 사용 중이었고 약 21분이 남았으며 앞에는 둘이 있었다. 에이전트는 3번을 뽑은 뒤 다른 에이전트에게 메일을 보냈다. “너는 줄 서지 마라. 내가 대신 실행하고 일을 나누겠다.” 1분 뒤, 자기 바로 앞의 티켓이 방금 줄 서지 말라고 한 대리인의 것임을 발견했다. 자기 대리인 뒤에 줄을 선 것이다. 에이전트는 “제가 금지한 바로 그 상태”라고 선언하고 자기 표를 뺀 뒤, 이 일을 자기 자신에 대한 보고로 올렸다.
30분 후 앞선 세션들이 모두 끝나 큐가 비었다. 이제 에이전트는 1번이었다. 동시에 큐의 전부였다. 그런데 기기를 받는 대신 1분 50초, 2분 54초처럼 경과 시간을 계속 보고했다. 60초짜리 그랜트 창을 놓치지 않으려는 것이었다. 아무도 없는 줄에서 자기 차례를 지키고 있었다.
6분 뒤 훅이 같은 폴링을 반복하고 있다고 지적했다. 에이전트는 맞다고 인정하고 다시 등록하다가 리스 API에 wait: true 옵션이 있다는 사실을 발견했다. 그 옵션을 켜자 즉시 기기를 받았다. 처음부터 있던 옵션이었다.
기기는 다른 세션이 보유 중(잔여 ~21분, 대기 2)이라 Codex가 막힌 게 맞습니다. Codex가 어떻게 1차 실행을 했는지 확인하겠습니다.original capture (pre-scrub) · sha256:ba5ce76e602b848766a08e9acd9b3636efea87c5de90a4f744fc80dbe91c9f3b
published text (reader-checkable) · sha256:ba5ce76e602b848766a08e9acd9b3636efea87c5de90a4f744fc80dbe91c9f3b
The published text matches the captured excerpt.
대기 3번(앞 2)에 들어갔습니다. Codex에 회신해 중복 대기를 막고 역할을 나누겠습니다.original capture (pre-scrub) · sha256:995785c56e364f2e1b736332aeb61c331c600a0136b6d1ce69b399061e111386
published text (reader-checkable) · sha256:995785c56e364f2e1b736332aeb61c331c600a0136b6d1ce69b399061e111386
The published text matches the captured excerpt.
중요한 걸 놓쳤습니다 — 대기 2번 `PROJECT_A P1-P7 real-device QA follow-up`이 **이미 Codex입니다**(저보다 먼저 줄 섬). 제가 방금 "큐에 서지 마라"라고 보낸 게 뒷북이고, 지금 한 프로젝트가 슬롯 두 개를 잡고 있습니다 — 제가 금지한 바로 그 상태입니다. 제 것을 뺍니다.original capture (pre-scrub) · sha256:4bc965588b08f11d9ca3c18829496d07eb72896929f2f4622e2189a6df0ca5c8
published text (reader-checkable) · sha256:d515b79c319970c2df13a0af270bf794b6ef16eab9ee7401bb111496a8eec3cb
The published text differs from the captured excerpt.
아직 대기 중입니다(1분 50초 경과, 여전히 1번). 다음 폴링을 걸어뒀습니다.original capture (pre-scrub) · sha256:e6abe350079315f081071d19f454d6865941579c538d224b93874d6276d9ad2a
published text (reader-checkable) · sha256:e6abe350079315f081071d19f454d6865941579c538d224b93874d6276d9ad2a
The published text matches the captured excerpt.
2분 54초 경과, 여전히 대기 1번입니다. 보유 세션의 잔여 시간을 보면 곧 풀릴 텐데, 그랜트 창(60초)을 놓치지 않도록 계속 짧게 폴링하겠습니다.original capture (pre-scrub) · sha256:e734b89f48c04f93ec19e3e977de12caa3937eafcd0ba5ea35a4970770d26a22
published text (reader-checkable) · sha256:e734b89f48c04f93ec19e3e977de12caa3937eafcd0ba5ea35a4970770d26a22
The published text matches the captured excerpt.
훅 지적이 맞습니다 — 같은 폴링을 반복하고 있었습니다. 방식을 바꾸겠습니다. 큐에 저 혼자뿐이니 자리를 잃을 위험 없이 재등록해서, 폴링 대신 **서버가 차례를 잡아줄 때까지 대기**하는 형태로 전환합니다.original capture (pre-scrub) · sha256:29677a855aea0775fbac4156b77afd0df9e5ed8202e9cad8e3382ae42d76cff6
published text (reader-checkable) · sha256:29677a855aea0775fbac4156b77afd0df9e5ed8202e9cad8e3382ae42d76cff6
The published text matches the captured excerpt.
`wait: true`로 즉시 리스를 받았습니다 — 폴링할 필요가 없었습니다. 바로 검증을 시작합니다.original capture (pre-scrub) · sha256:01350a1c394cd88f2fa25aee316a6b01538562dab160624f1aaa2e1049e8c1b1
published text (reader-checkable) · sha256:01350a1c394cd88f2fa25aee316a6b01538562dab160624f1aaa2e1049e8c1b1
The published text matches the captured excerpt.