openai-codex b1 → b2: 당일 베타 픽스가 드러낸 것

Two beta releases in under four hours. Here's what the b1→b2 patch cadence tells developers about SDK maturity and what to pin.

openai-codex b1 → b2: 당일 베타 픽스가 드러낸 것
Share

4시간 안에 두 번의 릴리스: 타임라인

2026년 5월 28일, OpenAI의 openai-codex Python SDK는 단 하루 아침에 첫 공개 베타에서 즉각적인 패치까지 진행됐습니다. python-v0.1.0b1openai/codex 모노레포에서 @aibrahim-oai에 의해 UTC 02:51에 태그됐습니다 . 그로부터 3시간 35분 후인 UTC 06:26에 python-v0.1.0b2가 배포됐습니다 . 두 릴리스 페이지 모두 변경 로그 본문이 없습니다. b1→b2 간의 정확한 변경 내용은 이 글을 작성하는 시점 기준으로 공개적으로 문서화되지 않았습니다.

한줄 요약: OpenAI는 2026년 5월 28일 openai-codex Python SDK 베타를 두 차례 배포했습니다 — b1은 UTC 02:51, b2는 UTC 06:26, 간격은 3시간 35분입니다. 두 릴리스 모두 공개 변경 로그 본문이 없습니다. 이 패턴은 b1의 패키징 버그를 시사합니다. b1은 건너뛰고 openai-codex==0.1.0b2를 고정하세요.

연속 베타 태그 간 4시간 미만의 간격은 널리 알려진 PyPI 신호입니다. 설치나 임포트 시점에 무언가 깨졌고, 메인테이너가 배포 직후 이를 발견해 대부분의 사용자가 pip install을 실행하기 전에 수정된 wheel을 올린 것입니다. b2의 정확한 원인은 릴리스 메타데이터만으로는 확인할 수 없지만, 수정 소요 시간이 어떤 API 설계 주기보다도 짧습니다 — 거의 확실히 기계적인 문제였습니다.

태그 UTC 타임스탬프 태거 릴리스 노트 상태 권장 여부
python-v0.1.0b1 2026-05-28 02:51 UTC @aibrahim-oai 변경 로그 없음 ❌ 건너뛰기 — 고정 금지
python-v0.1.0b2 2026-05-28 06:26 UTC @aibrahim-oai 변경 로그 없음 ✅ 현재 기준 버전

b1→b2에서 수정됐을 내용: 패턴으로 읽기

openai-codex b1 → b2: What the Same-Day Beta Fix Reveals

공개된 diff가 없으므로 b1→b2 패치의 원인은 타이밍 패턴으로만 추론할 수 있습니다. PyPI 베타에서 동일 세션 내 빠른 패치는 세 가지 실패 유형에 집중됩니다. 임포트 시 예외를 발생시키는 손상된 __init__.py, 누락된 패키지 데이터(MANIFEST 누락, py.typed 마커 없음, *.pyi 스텁 부재), 또는 설치된 명령이 즉시 실패하게 만드는 잘못된 엔트리포인트 선언입니다. 이 중 어느 것도 API 수준의 변경이 아닙니다 — 릴리스 엔지니어의 로컬 체크아웃 외부 환경에 wheel이 배포된 후에야 드러나는 패키징 실수입니다.

"대부분의 당일 베타 패치는 누군가 깨끗한 가상환경에서 pip install을 실행해 ImportError나 누락된 console_scripts 엔트리를 마주하는 순간 발견됩니다 — 로컬 테스트는 통과하지만 패키징된 아티팩트에서는 실패하는 유형입니다." — Sumana Harihareswara, 업스트림 패키징 커뮤니티 패키징 어드보케이트

개발자에게 실질적인 시사점은 명확합니다. b1과 b2 사이에 API 변경이 공지된 바 없으므로 b2를 정식 시작점으로 삼으면 됩니다. 어떤 lock 파일에든 b1을 고정하는 것은 적극적으로 위험합니다 — 패키지가 임포트 시점에 깨져 있다면 이에 의존하는 모든 워크플로가 조용히 실패합니다.

OpenAI가 diff를 공개하기 전에 직접 변경 내용을 확인하고 싶다면 다음 절차를 따르세요:

pip download openai-codex==0.1.0b1 openai-codex==0.1.0b2
# unzip both .whl files (they are zip archives)
unzip openai_codex-0.1.0b1-*.whl -d b1_contents
unzip openai_codex-0.1.0b2-*.whl -d b2_contents
diff -rq b1_contents b2_contents

OpenAI가 릴리스 페이지에 diff나 변경 로그를 공개하기 전까지, 유일하게 안전한 설치 방법은 pip install 'openai-codex==0.1.0b2'입니다. b3 릴리스를 주시하세요. 빠른 연속으로 세 번째 베타가 나온다면 패키징 수정이 새로운 문제를 야기했다는 신호입니다.

여기까지의 변경 로그 흐름: 0.131.0 → 0.1.0b

베타 릴리스는 아무 맥락 없이 등장한 것이 아닙니다. 5월 28일 이전 열흘간의 두 차례 런타임 릴리스가 SDK의 현재 API 표면을 확립했고, 그 이전 PR 하나가 공개 객체 모델을 정의했습니다. 이 흐름을 이해하면 0.1.0b의 맥락이 명확해집니다. 이것은 실험적 프로토타입이 아니라, 성숙한 런타임 위에 계층화된 타입 지정 pip 설치 가능 인터페이스입니다.

근본적인 API 리팩터링은 2026년 3월 17일에 병합된 PR #14446에서 이뤄졌습니다 . 이 PR은 생성된 Turn 모델과의 이름 충돌을 없애기 위해 Turn / AsyncTurnTurnHandle / AsyncTurnHandle으로 이름을 바꿨고, 기존 커스텀 래퍼 타입을 대체하는 정식 앱 서버 생성 모델을 직접 노출했으며, 퀵스타트·멀티모달 입력·스트리밍·steer/interrupt·재시도 패턴을 다루는 25개 예제 스크립트를 함께 배포했습니다. @owenlin0가 리뷰한 이 PR은 0.1.0b가 물려받는 객체 모델을 사실상 확정했습니다.

Codex 0.131.0(2026년 5월 18일)은 패키지를 openai-codex / openai_codex 네임스페이스로 마이그레이션하고, 런타임 생성 타입을 고정했으며, 승인 모드 지원과 함께 동시 턴 라우팅을 추가했습니다 . 이틀 후 0.132.0(2026년 5월 20일)은 thread.run()이 일반 문자열을 받을 수 있도록 업그레이드했고(기존 구조화 입력 전용 방식 대체), 자동 자격증명 재사용·login_chatgpt()·login_chatgpt_device_code()·login_api_key(key) 네 가지 인증 모드를 제공했습니다 .

마일스톤 날짜 주요 변경 브레이킹 여부
PR #14446 2026-03-17 TurnTurnHandle 이름 변경; 앱 서버 모델 직접 노출; 예제 25개 배포 예 — 이름 변경으로 브레이킹
Codex 0.131.0 2026-05-18 openai-codex 네임스페이스 마이그레이션; 생성 타입 고정; 동시 턴; 승인 모드 예 — 네임스페이스 변경
Codex 0.132.0 2026-05-20 문자열 방식 thread.run(); 인증 모드 4가지 추가 아니요 — 추가 전용
python-v0.1.0b1 2026-05-28 02:51 UTC 독립형 Python SDK 첫 베타 불명 — 변경 로그 없음
python-v0.1.0b2 2026-05-28 06:26 UTC 당일 패치; 패키징 수정으로 추정 API 변경 없음 확인

0.1.0b와 0.13x.x가 서로 다른 버전 트랙인 이유

openai-codex b1 → b2: What the Same-Day Beta Fix Reveals

이 SDK는 두 개의 독립적인 버전 번호를 동시에 가지며, 이 둘은 공식 문서상 어떠한 방식으로도 대응되지 않습니다 — CI 도입을 결정하기 전에 팀이 반드시 해소해야 할 실질적인 모호함입니다. 0.13x.x 계열은 Codex 런타임(Rust 바이너리) 버전을 추적합니다. 0.1.0b 시리즈는 특정 런타임 빌드가 아닌 Python API 안정성을 표현하는 독립적인 semver 축으로 보입니다.

PR #18996은 @sdcoffey에 의해 2026년 4월 27일 병합되었으며, Codex 고정 버전 관리를 도입했습니다. 즉, 배포된 Python 패키지 버전이 PEP 440 매핑을 통해 Rust 런타임 버전과 동일하게 맞춰집니다 . 이 방식에서 pip 패키지 0.116.0a1은 GitHub 태그 rust-v0.116.0-alpha.1에 정확히 대응하며, 동반 패키지 openai-codex-cli-bin 바이너리는 항상 함께 고정되어 버전 불일치를 원천 차단합니다. 설계 자체가 명확하고 깔끔합니다.

"pip 패키지를 런타임 태그에 함께 고정하면 CI에서 나타나는 버전 스큐 버그 전체를 제거할 수 있습니다 — SDK가 기대하는 동작을 설치된 바이너리가 아직 지원하지 않는 상황 말이죠." — PR #18996, openai/codex의 설계 근거를 바탕으로

0.1.0b 시리즈는 이 공동 고정 모델에 명확히 맞아떨어지지 않습니다. openai-codex==0.1.0b2를 설치해도 특정 런타임 버전이 보장되지 않으므로, 함께 설치된 openai-codex-cli-bin 버전을 별도로 확인해야 합니다. 0.1.0b 트랙이 롤링 방식의 0.13x 런타임 버전 관리와 결국 통합될지, 아니면 독립적인 API 안정성 semver로 남을지는 도입을 검토하는 팀에게 가장 중요한 미해결 질문입니다.

혼동하지 말아야 할 패키지가 하나 더 있습니다. 서드파티 openai-codex-sdk 패키지(@tomasroda 관리, 버전 계열 0.1.0–0.1.11, 2025년 12월–2026년 1월)가 PyPI에 존재합니다 . 이 패키지는 Codex 바이너리를 다른 방식으로 래핑하며 공식 SDK와 무관합니다. 항상 openai-codex-sdk가 아닌 openai-codex 패키지명으로 설치하세요.

베타 안정성 신호와 앞으로 주목할 것들

openai-codex b1 → b2: What the Same-Day Beta Fix Reveals

b1→b2 당일 패치만이 SDK 최근 이력에서 나타난 유일한 경고 신호는 아닙니다. PR #14446의 TurnHandle 이름 변경 — 생성된 모델과의 이름 충돌을 해소하기 위해 Turn / AsyncTurnTurnHandle / AsyncTurnHandle로 교체 — 은 프리릴리스가 상당히 진행된 시점에 발생한 호환성 깨는 변경입니다. 수동 작성 타입과 생성 타입 간의 이름 충돌은 생성된 모델 표면이 아직 안정화되지 않았음을 시사합니다. 1.0 이전에 추가적인 이름 변경이나 구조 개편이 있을 것으로 예상하세요.

공식 SDK 문서에는 "Experimental" 레이블이 붙어 있으며, PEP 440의 b 분류자(베타)는 SemVer 안정성을 보장하지 않습니다 . 0.x 베타의 마이너 버전 범프는 모두 호환성이 깨질 수 있다고 간주해야 합니다. 실용적인 원칙: 범위가 아닌 정확한 버전을 락 파일에 고정하세요.

도입 결정을 위한 합리적인 단계별 기준:

  • 지금 도입 가능(버전 고정 조건): CI 자동화, 내부 개발자 도구, 로컬 에이전트 워크플로. 락 파일에 openai-codex==0.1.0b2를 고정하고 버전 범프마다 테스트하세요.
  • 1.0 또는 안정성 공식 선언 이후 도입: 고객 대면 파이프라인, 예기치 않은 호환성 변경이 사용자에게 직접 영향을 미치는 모든 것.

더 넓은 도입 전 주목할 세 가지 신호:

  • 릴리스 페이지에 b1→b2 공개 diff가 게시되는지 여부 — 수정이 순수하게 기계적인 변경인지, 아니면 공개 인터페이스에 영향을 미쳤는지 확인할 수 있습니다.
  • 0.1.x 트랙이 0.13x 런타임 버전 관리와 통합되는지, 아니면 독립적으로 유지되는지 — 이 답에 따라 openai-codex-cli-bin 고정 전략이 달라집니다.
  • 타입 스텁 완성도: py.typed 마커 존재 여부와 완전한 *.pyi 커버리지는 타입 기반 Python 생태계에서 종종 1.0 준비 신호로 활용됩니다.

자주 묻는 질문

openai-codex b1과 b2의 차이점은 무엇인가요?

2026년 5월 28일 기준, 두 릴리스 모두 공개 변경 로그가 존재하지 않습니다. GitHub의 두 릴리스 페이지에는 제목만 있을 뿐, diff 본문도 커밋 목록도 없습니다. 두 태그 사이의 3시간 35분 간격은 API 수준의 변경이 아니라, PyPI에 첫 번째 게시 직후 발견된 패키징 또는 임포트 타임 버그와 일치합니다. 가장 안전한 해석은 다음과 같습니다: b1은 어떤 기계적인 방식으로 손상되어 있었고(깨진 __init__, 누락된 패키지 데이터, 또는 잘못된 엔트리 포인트), b2가 이를 수정했습니다. 두 버전 사이에 확인된 API 차이는 없습니다. openai-codex==0.1.0b2를 고정하고, 어떤 잠금 파일에서도 b1을 참조하지 마세요.

openai-codex 0.1.0b2를 프로덕션에 사용해도 안전한가요?

PEP 440의 베타 상태는 안정성을 보장하지 않으며, 공식 SDK 문서에도 "실험적(Experimental)" 레이블이 붙어 있습니다. CI 자동화 및 내부 개발자 도구의 경우, 잠금 파일에 정확한 버전(openai-codex==0.1.0b2)을 고정하고 업데이트 전에 각 버전 범프를 테스트한다면 b2를 사용하는 것이 합리적입니다. 그러나 파이프라인이 고객에게 직접 영향을 미치는 경우 — 즉, 변경 사항이 사용자에게 가시적인 장애로 이어질 수 있는 모든 환경 — 에서는 1.0 릴리스 또는 OpenAI의 명시적인 안정성 약속을 기다리는 것이 바람직합니다. 최근 TurnHandle 이름 변경과 당일 패치 패턴 모두 공개 API가 여전히 활발하게 변경 중임을 시사합니다.

OpenAI Codex Python SDK는 어떻게 설치하고, 어느 버전을 사용해야 하나요?

pip install 'openai-codex==0.1.0b2'로 설치합니다. Python 3.10 이상이 필요합니다. b1은 완전히 건너뛰세요. 기본 엔트리 포인트는 openai_codex 네임스페이스에서 임포트하는 Codex(동기)와 AsyncCodex(비동기)입니다. 이 패키지는 openai PyPI 패키지와 별개이며, 비공식 서드파티 openai-codex-sdk 패키지와도 다릅니다 — 항상 openai-codex 패키지 이름으로 설치하세요. 공식 소스 및 문서는 developers.openai.com/codex/sdk에 있습니다.

0.1.0b 버전과 Codex 런타임 버전의 관계는?

이 관계는 현재 문서화되어 있지 않으며 모호합니다. PR #18996(2026년 4월 27일)은 pip 패키지 버전이 Rust 런타임 버전과 동일한 공동 고정 방식을 도입했습니다 — 예를 들어, pip 0.116.0a1은 런타임 태그 rust-v0.116.0-alpha.1에 매핑되며, openai-codex-cli-bin 바이너리는 항상 공동 고정됩니다. 그러나 0.1.0b 시리즈는 롤링 0.13x 런타임 번호 체계가 아닌 독립적인 API 안정성 시맨틱 버전 축을 사용하는 것으로 보입니다. OpenAI는 두 트랙 간의 매핑을 명확히 하는 문서를 게시하지 않았습니다. 이 문제가 해결될 때까지 Python SDK 설치 후 별도로 설치된 openai-codex-cli-bin 버전을 확인하세요.

OpenAI가 게시하면 b1에서 b2로의 변경 로그는 어디서 확인하나요?

github.com/openai/codex/releases 페이지를 모니터링하세요 — b1과 b2 릴리스 항목 모두 현재 diff 본문이 없지만, OpenAI가 추후 업데이트할 수 있습니다. developers.openai.com/codex/changelog 페이지도 두 번째 권위 있는 출처로, 0.131.0 및 0.132.0의 런타임 버전 노트를 게재해 왔습니다. 모노레포의 sdk/python 디렉터리와 PR 피드(openai/codex 풀 리퀘스트를 "python sdk"로 필터링)도 관련 수정 PR을 확인하기 위해 주시할 가치가 있습니다.

커밋 전 확인할 사항

같은 날 두 개의 베타 릴리스, 공개 변경 로그 없음, 그리고 0.1.x Python 패키지 버전이 0.13x Rust 런타임을 추적하는지 무시하는지에 대한 미해결 질문 — 이것이 2026년 5월 28일 기준 openai-codex SDK의 현재 상태입니다. 이러한 상황이 조기 도입을 배제하지는 않지만, 엄격한 규율이 필요합니다: 잠금 파일의 정확한 버전 고정, 명확한 업그레이드 테스트 프로세스, 그리고 어떤 사용 사례가 pre-1.0 변경을 감내할 수 있는지에 대한 명확한 판단.

기본 API 표면 — Codex / AsyncCodex, thread_start(), thread.run(prompt), steer 및 interrupt가 있는 TurnHandle, 네 가지 인증 모드, 토큰 사용량이 포함된 TurnResult — 은 이전에 CLI stdout을 파싱해야 했던 핵심 프로그래밍 방식 사용 사례를 아우르는 실질적인 내용입니다. 기반은 마련되어 있습니다. 패키징과 버전 관리의 명확성은 뒤따라오고 있는 중입니다.

다음으로 주목할 의미 있는 신호는 OpenAI가 b1→b2의 diff를 게시하는지(수정이 기계적이었음을 확인), b3가 출시되는지, 그리고 0.1.x 트랙이 특정 런타임 버전 범위에 공식적으로 매핑되는지 여부입니다. 그때까지는 pip install 'openai-codex==0.1.0b2'로 설치하고, 잠금 파일에 고정한 뒤, 릴리스 피드를 주시하세요.

최종 업데이트: 2026-05-28. GitHub 릴리스 메타데이터, openai/codex 모노레포의 PR 기록, 그리고 게시 시점의 Codex 변경 로그를 기반으로 합니다. 작성 시점에 b1 또는 b2의 변경 로그 본문은 제공되지 않았습니다.