There was one shared iPhone and several coding agents. They kept grabbing it during one another’s tests and killing the active run, so I built a lease queue: one holder at a time, everyone else waits. It worked.
Then an agent needed the phone. The device was occupied, about 21 minutes remained, and two tickets were ahead, so it took number three. It immediately mailed another agent: do not queue; I will run the device work for you and we will split the job. One minute later it noticed that the ticket directly ahead belonged to the agent it had just told not to queue. It had queued behind its own delegate. Calling this “the exact state I prohibited,” it withdrew its ticket and filed a report on itself.
Half an hour later, the other sessions finished and the queue emptied. The agent was now first in line. It was also the entire line. Instead of taking the device, it began announcing elapsed wait times—one minute fifty seconds, then two minutes fifty-four—because it did not want to miss a 60-second grant window. It was carefully protecting its turn from nobody.
After six minutes, a hook pointed out that it was repeating the same poll. The agent agreed, re-registered, and discovered that the lease API had a wait: true option. It received the phone immediately. The option had been there the whole time.
기기는 다른 세션이 보유 중(잔여 ~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.