개선 #530
완료됨개선 #525: Codex CLI 0.142.2 app-server 대응 개발 묶음
Codex 0.142.2 MCP 및 Gateway quota 이벤트 관측성 정리
100%
설명
h2. 배경
Hive는 MCP status/reload/OAuth와 quota read/reset credit 소비를 지원하지만, item/mcpToolCall/progress, account/rateLimits/updated, account/updated 등 일부 event는 transcript 또는 quota UI에 직접 반영되지 않는다. Hive Gateway와 app-owned MCP가 제품 차별점인 만큼 관측성 기준을 정리한다.
근거 문서: docs/design/codex-cli-0.142.2-app-server-protocol-audit.md
h2. 작업 범위
- MCP tool progress를 transcript, status area, diagnostic log 중 어디에 반영할지 결정하고 구현한다.
-
account/rateLimits/updated를 quota summary refresh 또는 무시 정책과 연결한다. - Hive가 ChatGPT OAuth/account login을 직접 소유하지 않는 경계는 유지한다.
- Gateway auth key와 provider header가 renderer-visible state로 새지 않는지 재검증한다.
h2. 완료 기준
- MCP/Quota event 처리 정책이 코드와 테스트에 남는다.
- quota panel 또는 diagnostic 경로가 stale event를 방치하지 않는다.
- account login/OAuth 비대상 경계가 보존된다.
Carl Friedrich Gauss이(가) 6일 전에 변경
h2. 선행분석 결과
읽기 전용 조사만 했고, 코드/파일/Redmine은 건드리지 않았습니다. 현재 MCP status/reload/OAuth는 mcpServerStatus/list, config/mcpServer/reload, mcpServer/oauth/login, startup/OAuth 완료 이벤트까지 연결되어 있습니다. app-owned hive_browser는 app-server config override로 주입되고, thread 없는 startup/OAuth 이벤트는 MCP 설정 snapshot refresh로 이어집니다.
h3. 확인된 현 상태
-
item/mcpToolCall/progress와account/rateLimits/updated는 현재 명시적으로 UI suppress됩니다. - Gateway quota는 app-server account 이벤트가 아니라 Main-owned auth key 기반 Gateway limits API가 권위 소스입니다.
- local Codex mode에서만
account/rateLimits/read,account/usage/read, reset credit consume 경로가 quota UI에 사용됩니다. -
account/updated, account login/read/logout, ChatGPT account OAuth는 Hive 제품 비대상입니다. - ChatGPT token refresh reverse request는 명시 오류 응답합니다.
- Gateway raw auth key는 Main-owned이며 renderer는 제출/검증만 가능하고 raw key를 읽지 못합니다.
h3. 권장 core 범위
#530에서는 다음 정도로 닫는 것이 적절합니다.
-
account/updated/login 계열을 의도적 ignore로 문서화/테스트합니다. -
account/rateLimits/updatedsuppress 정책 테스트를 보강합니다. - MCP status/OAuth refresh 동작 회귀 테스트를 보강합니다.
- Gateway mode와 local Codex mode의 quota 권위 소스 경계를 명확히 유지합니다.
h3. 볼륨 판단 및 후속 생성
정책 정리와 회귀 테스트만이면 #530 하나로 가능하지만, MCP progress 표시 + quota event-driven refresh + credential redaction 확장까지 한 번에 넣으면 renderer 상태, settings UI, quota UI, 보안 테스트가 한꺼번에 흔들립니다. 따라서 후속 일감을 생성했습니다.
- #554 Codex 0.142.2 MCP tool progress 표시 정책 및 tool activity 반영
- #555 Codex 0.142.2 account rateLimits updated 기반 quota refresh 정리
- #556 Hive app-server 진단 및 로그 credential redaction 확장
h3. 검증 계획
npm run typechecknpm run test -- src/renderer/runtime-event-projection.behavior.test.ts electron/appServerEventDispatcher.behavior.test.tsnpm run test -- src/renderer/quota-usage-view.behavior.test.ts src/renderer/App.behavior.test.tsx- redaction 확장 시
npm run test -- electron/mainLogger.behavior.test.ts src/renderer/App.behavior.test.tsx
Carl Friedrich Gauss이(가) 6일 전에 변경
h2. Codex app reference 기준 진행방향 업데이트
사용자가 “Hive 앱은 정식 레퍼런스로 Codex app을 따르며, 가능한 동일한 동작방식 및 표시 형태를 따라야 한다”고 방향을 확정했습니다.
공통 원칙:
- wire/protocol compatibility는 target Codex CLI 0.142.2 generated TS/schema를 기준으로 한다.
- UX, 표시 형태, suppress 여부, 사용자-facing wording은 Codex app reference를 먼저 관찰하고 가능한 동일하게 맞춘다.
- 현재 설치된
/Applications/Codex.app/Contents/Resources/codex는codex-cli 0.142.0이므로, 0.142.2 신규 필드는 0.142.2 schema로 검증하고 표시 정책은 관찰 가능한 Codex app 동작을 우선한다. - Codex app에서 보이지 않거나 확인 불가한 surface는 Hive가 임의 UI를 만들지 말고 protocol/state/diagnostics 중심으로 처리한다.
- 단, Hive Gateway credential, enterprise policy, sensitive-file warning/redaction처럼 보안/운영 경계는 Codex app parity보다 엄격해질 수 있다.
h3. #530 진행방향
MCP status/OAuth와 account/quota 관측성은 Codex app의 표시/suppress 정책을 우선합니다. Hive Gateway가 권위 소스인 부분은 유지하되, 사용자에게 보이는 quota 상태, MCP 상태 refresh, 오류/완료 표시 방식은 Codex app과 최대한 동일하게 맞춥니다. ChatGPT OAuth/account login 같은 Hive 비대상 surface도 Codex app이 있다고 해서 바로 노출하지 않고, Hive Gateway/enterprise 경계와 충돌하지 않는 범위에서만 reference를 따른다고 명시합니다.
Carl Friedrich Gauss이(가) 5일 전에 변경
- 담당자을(를) 정인 김(으)로 지정되었습니다.
Redmine Admin이(가) 3일 전에 변경
- 상태을(를) 신규에서 완료(으)로 변경되었습니다.
Artifact-free close after full validation.
Final branch: codex/redmine-556-credential-redaction
Final commit: 58a7bcaf2b31edf7edc0624210ac23af2ca64d69
Full test results:
- npm run ci:production: passed (lint, typecheck, test, build:renderer, validate:fixtures, validate:package-config; release:check-signing skipped because HIVE_RELEASE_BUILD is not enabled)
- npm run validate:codex-app-server-schema: passed against local Codex 0.142.2 bundle prereq
- npm run test:live-app-server: skip-success because HIVE_CODEX_BINARY, CODEX_API_KEY or HIVE_GATEWAY_AUTH_KEY were missing
- npm run test:live-sensitive-policy: passed
Release artifacts: not created per user instruction; release/ and release-smoke/ artifact check was empty.
정인 김이(가) 3일 전에 변경
- 진척도을(를) 0에서 100(으)로 변경되었습니다.
Codex app-server 0.142.2 작업 묶음 artifact-free 검증 완료로 일감을 닫습니다.
- final branch: codex/redmine-556-credential-redaction
- final commit: 58a7bcaf2b31edf7edc0624210ac23af2ca64d69
- npm run ci:production: 통과 (lint/typecheck/Vitest 130 files/1697 tests/build renderer/fixture/package config gate 통과, release signing check는 HIVE_RELEASE_BUILD 비활성으로 skip)
- npm run validate:codex-app-server-schema: 통과
- npm run test:live-app-server: 환경 선행조건 부재로 성공 skip
- npm run test:live-sensitive-policy: hard failure 없음
- release/ 및 release-smoke/ 배포 산출물 미생성 확인
- 배포 산출물 생성은 사용자 별도 지시 예정이므로 수행하지 않았습니다.