Skip to content

feat(codex): prepare Codex Spark retirement and remove its quota UI - #4334

Draft
lidge-jun wants to merge 5 commits into
devfrom
codex/spark-retirement
Draft

feat(codex): prepare Codex Spark retirement and remove its quota UI#4334
lidge-jun wants to merge 5 commits into
devfrom
codex/spark-retirement

Conversation

@lidge-jun

@lidge-jun lidge-jun commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Summary

Hold for retirement — DO NOT MERGE. Tibo's September 11 announcement says GPT-5.3-Codex-Spark retires “next week”; no exact date/time was given. This draft prepares removal and leaves the current service and integration branches unchanged.

Remove Spark from Codex-login model discovery, restored catalogs and dedicated request compatibility. Remove its quota scope, collection, settings endpoint field and account-card UI. Old Spark-only quota becomes unknown rather than shared capacity, and stale model/quota observations cannot revive it. Shared/Reserve isolation, generic Lite/tools/custom windows, historical costs and other providers' Muse Spark remain intact.

Related: #4130 fixes Spark Lite while Spark is available. This draft neither carries nor closes it.

Verification

  • Local product tests/typecheck/build/install: NOT RUN per maintainer instruction; pushed with --no-verify.
  • Independent inherited-agent plan and implementation reviews: PASS. CI exposed obsolete model-policy expectations and incomplete catalog fixtures; repaired while preserving retirement negatives and positive controls. Full Windows coverage also exposed two pre-existing pnpm/Devin fixture portability defects, repaired in a separate tests-only commit; production update/Devin code is unchanged.
  • Final-head full Cross-platform CI: re-running at head 2b976c96 (run 34693477839). The previous head 622372f79 was fully green (26/26 jobs, run 34673706298) before this rebase.
  • UI: matching CI-built dashboard, GUI tree 08717a046c2b2550c8ed08499511e5edc6aa2801, synthetic fixture API only. Desktop/mobile visually inspected; refresh, pause-exhausted and resume verified. Fixture server stopped and port closed.
  • Announcement verified by opening the primary post through the signed-in Aside browser.
  • Rebased onto dev after fix(devin-cli): honor platform path semantics in credential discovery #4400 landed the same pnpm/Devin fixture portability fix plus the production src/oauth/devin-cli.ts change; the now-redundant tests-only commit was dropped and the src/codex/routing.ts import and codex-quota-parser-parity describe block were merged with the quota-avoidance work from fix(codex): apply a quota refusal's avoidance window to the main login #4396/fix(codex): let clear-cooldown lift an avoidance the cooldown outlived #4397.

Account controls after Spark removal

Mobile screenshot · Screenshot provenance

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed.
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults.

@coderabbitai

coderabbitai Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@github-actions github-actions Bot added the enhancement New feature or request label Sep 12, 2026
@github-actions

github-actions Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

✅ READY

  • all PR quality gates passed.

Hygiene

Deterministic PR hygiene checks passed.

@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 61 / 80

설명
이 PR은 Codex 로그인 쪽의 GPT-5.3-Codex-Spark를 나중에 빼기 위한 준비용 초안입니다. Tibo가 9월 11일에 “다음 주에 Spark를 종료한다”고 말했고, 정확한 시각은 없습니다. 그래서 본문에도 DO NOT MERGE / Draft가 적혀 있고, 지금 돌아가는 서비스는 그대로 두라는 뜻입니다.

지금 dev HEAD는 d8df1b106이고, 방금 #4328(프로바이더 노트 두 줄 자르기 + 팝업)과 그 앞 #4325(Local 탭)까지 카탈로그 GUI 스택이 올라온 상태입니다. 이 PR의 작업 줄은 그와 거의 겹치지 않습니다. 대신 Codex 카탈로그·쿼터·계정 UI에서 Spark만 깨끗이 빼는 쪽입니다.

코드를 보면 대략 네 묶음입니다. (1) src/codex/catalog/native-models.ts에서 NATIVE_OPENAI_MODELSgpt-5.3-codex-spark를 빼고 RETIRED_NATIVE_OPENAI_MODELS에 넣습니다. 이미 dev에 있는 gpt-5.4 / gpt-5.4-mini 은퇴 목록(#4327) 옆에 Spark를 붙이는 형태입니다. (2) src/codex/quota.tsisRetiredCodexSparkModel을 두고, 옛 Spark 커스텀 창 라벨을 withoutRetiredCodexQuota로 걸러 냅니다. 헤더 파서도 은퇴 모델이면 null을 돌려서, 죽은 Spark 증거가 공유 쿼터로 다시 살아나지 않게 합니다. (3) src/codex/routing.ts에서 CodexQuotaScope"spark"를 빼고 shared|reserve만 남깁니다. Spark 전용 친화(affinity)와 스코프 맵 항목도 같이 사라집니다. (4) GUI의 CodexAccountPool / codex-account-pool-main-card에서 Spark 토글·i18n·CSS를 지우고, showCodexSparkQuota 설정 필드도 src/types/config.ts / src/config.ts / management 라우트에서 뺍니다. 예전 설정 파일이 있어도 스위치가 다시 켜지지 않게 하려는 설계입니다.

어댑터 쪽에서는 src/adapters/openai-responses.ts의 Spark 전용 stripSparkCompatibility / stripUnsupportedReasoningParams를 제거합니다. 일반 Responses Lite·네임스페이스 scrub·다른 공급자(Meta Muse Spark 포함)는 남겨 둔다고 계획 문서에 명시되어 있습니다. 은퇴 판별이 예전 includes("codex-spark") 스타일에서 정확한 슬러그 gpt-5.3-codex-spark로 바뀐 점도 Muse Spark를 건드리지 않으려는 방향과 맞습니다.

docs-site 여러 언어와 structure/에도 “더 이상 Spark 네이티브/쿼터 UI가 없다”는 설명이 같이 들어갔습니다. 스크린샷 증거와 devlog/_plan/260912_codex_spark_retirement/ 계획 단위도 붙어 있습니다. #4130(Spark Lite 수정)은 이 PR이 닫거나 이어받지 않는다고 본문에 적혀 있습니다.

라인 - 이게 무슨 문제다
mergeable_state dirty / CONFLICTING - 베이스가 옛 dev(약 e432cf56)라서 지금 HEAD d8df1b106(#4325 Local 탭, #4328 note clamp 포함)와 충돌합니다. 종료 당일 머지 전에 rebase가 필요합니다.
windows CI (1–5/6) 및 macos control - 최종 헤드 c3fe2639에서 아직 in_progress입니다. 본문이 요구한 exact-head Cross-platform CI 완료 전에는 머지 후보로 보지 마세요.
로컬 product tests/typecheck/build/install - 메인테이너 지시로 NOT RUN이고 --no-verify 푸시입니다. CI가 대신 막아 주지만, 충돌 해소 커밋 뒤에는 같은 게이트를 다시 초록으로 확인해야 합니다.
src/types/config.ts / src/config.tsshowCodexSparkQuota 제거 - 의도된 동작이지만, 옛 설정 문서에 필드가 남아 있을 때 management API가 조용히 무시하는지(부활 금지) 한 번 더 확인이 필요합니다.
isRetiredCodexSparkModel - 경로 마지막 세그먼트 정확 일치라 Muse Spark에는 안전해 보이지만, 클라이언트가 다른 alias/표기로 Spark를 부르면 일반 라우팅은 남을 수 있습니다. 계획도 “광고된 네이티브 멤버십 제거이지 전역 denylist는 아니다”라고 적어 두었습니다. 그 범위를 메인테이너가 받아들일지 결정이 필요합니다.
structure/·docs-site 대량 수정 - 카탈로그 wp4(unified search + structure/docs-site)와 같은 문서를 건드릴 수 있어, 머지 타이밍을 카탈로그 스택과 겹치면 충돌 비용이 커집니다.

메인테이너의 판단이 필요한 지점

  • 종료 시각이 공지에만 “next week”(해석상 2026-09-14~20)로만 있으니, 언제 Draft를 Ready로 바꾸고 rebase·머지할지
  • 충돌을 지금 미리 풀어 둘지, 종료 직전 한 번에 rebase할지
  • Muse Spark / 벤치·히스토리 비용 / generic customWindows를 정말 손대지 않았는지 최종 확인 기준
  • fix(responses): disable Spark Lite in WebSocket metadata #4130 등 Spark가 아직 살아 있는 동안의 수정 PR을 종료 전에 닫을지 유지할지
  • 카탈로그 wp4와 문서 충돌을 피하려고 이 PR의 structure/docs-site 조각을 나중에 다시 맞출지

너의 추천
지금은 머지하지 마세요. Draft·Hold를 유지하고, Windows/macOS 잔여 CI가 최종 헤드에서 모두 초록이 되는지 먼저 보세요. dev#4325/#4328으로 움직였으니 종료 전에 dev로 rebase한 뒤, Spark가 실제로 내려간 날(또는 공지가 확정된 날)에만 착륙시키세요. 카탈로그 wp4가 문서 트리를 크게 건드리는 중이면 그 직후보다 wp4 전후를 피해 넣는 편이 덜 아픕니다.

이 댓글은 grok-bot이 작성했습니다

luvs01 added a commit to luvs01/opencodex that referenced this pull request Sep 12, 2026
Carries the test-only fixture changes from lidge-jun#4334 (622372f), and completes native path expectations for Devin CLI credential lookup.

Co-authored-by: JUN <bitkyc08@gmail.com>
luvs01 added a commit to luvs01/opencodex that referenced this pull request Sep 12, 2026
Carries the test-only fixture changes from lidge-jun#4334 (622372f), and completes native path expectations for Devin CLI credential lookup.

Co-authored-by: JUN <bitkyc08@gmail.com>
@lidge-jun
lidge-jun force-pushed the codex/spark-retirement branch from 622372f to 2b976c9 Compare September 12, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant