프로젝트

일반

사용자정보

Actions

개선 #528

완료됨

개선 #525: Codex CLI 0.142.2 app-server 대응 개발 묶음

Codex 0.142.2 app-server notification projection 보강

개선 #528: Codex 0.142.2 app-server notification projection 보강

Carl Friedrich Gauss이(가) 6일 전에 추가함. 3일 전에 수정됨.

상태:
완료
우선순위:
보통
담당자:
범주:
-
시작일:
2026/06/26
완료일:
진척도:

100%

추정시간:

설명

h2. 배경

Hive는 thread/turn/item 주요 이벤트와 MCP/status/warning은 처리하지만 thread/settings/updated, thread/goal/*, thread/closed, guardian/model/config 계열 일부 notification은 수신 후 드롭 또는 미표시 상태다. Hive 컨셉상 전체 raw/realtime 복제는 낮은 우선이나, 운영/진단 가치가 있는 notification은 projection 정책을 정해야 한다.

근거 문서: docs/design/codex-cli-0.142.2-app-server-protocol-audit.md

h2. 작업 범위

  • thread/settings/updated, thread/closed, thread/goal/*의 제품 반영 필요성을 확정하고 필요한 runtime snapshot/event projection을 구현한다.
  • guardianWarning, configWarning, deprecationNotice, model/rerouted, model/verification, model/safetyBuffering/updated를 사용자 표시, 진단 로그, 명시적 무시 중 하나로 분류한다.
  • raw/realtime/fs/process 계열은 Hive 제품 범위 제외 또는 추후 과제로 문서화해 무분별한 UI 확장을 막는다.

h2. 완료 기준

  • 지원하기로 한 notification은 renderer 상태 또는 diagnostic event로 관측된다.
  • 의도적으로 제외한 notification은 코드 주석/테스트/문서 중 하나에 명확히 남는다.
  • 기존 transcript, command output, file-change projection이 회귀하지 않는다.

Carl Friedrich Gauss이(가) 6일 전에 변경 Actions #1

h2. 선행분석 결과

읽기 전용으로 조사했습니다. 현재 app-server notification 경로는 appServerSupervisor가 stdout JSON-RPC를 분류하고, main.handleAppServerIncomingMessage가 MCP/turn-diff cache side effect를 먼저 반영한 뒤 appServerEventDispatcher -> runtime-event-projection -> runtime-store로 전달하는 구조입니다.

h3. 확인된 현 상태

  • 0.142.2 기준 thread/settings/updated, thread/goal/updated, thread/goal/cleared, thread/closed는 dispatcher의 thread/* prefix 정책으로 수신 후보에는 들어오지만 projection case와 RuntimeEvent/store 상태가 없어 최종 drop됩니다.
  • 현재 RuntimeThreadState에도 goal/settings 전용 보존 필드가 없고, thread/read restore도 session model/effort 일부만 복원합니다.
  • configWarning, account/rateLimits/updated, item/fileChange/outputDelta, item/mcpToolCall/progress는 이미 명시적 UI suppressed 목록에 있어 조용히 무시됩니다.
  • guardianWarning, model/rerouted, model/verification, model/safetyBuffering/updated, deprecationNotice, account/updated, fs/changed, process/*, rawResponseItem/completed는 dispatcher allow-list에 없거나 projection type/case가 없어 미지원/디버그 drop 상태입니다.

h3. 권장 수정 범위

  • thread/closed: sidebar 삭제가 아니라 loaded session close로 보고 not_loaded 또는 전용 closed event로 처리합니다.
  • thread/settings/updated: transcript 표시 없이 session model/effort 및 추론 가능한 permission/session metadata를 store에 반영합니다.
  • thread/goal/updated/cleared: 우선 RuntimeThreadState.goal store-only 반영으로 처리하고, 별도 visible UI는 후속 판단합니다.
  • guardianWarning/configWarning/deprecationNotice/model/rerouted: transcript 카드가 아니라 runtime/warning diagnostics로 반영하는 쪽이 Hive UX에 맞습니다.
  • item/autoApprovalReview/*, model/verification, model/safetyBuffering/updated, turn/moderationMetadata는 noisy/internal 성격이 강하므로 이번 범위에서는 명시 suppress 또는 diagnostic-only 후보입니다.

h3. 범위 제외

rawResponseItem/completed는 internal/experimental raw event이고, thread/realtime/*는 persisted ThreadItem이 아닌 별도 ephemeral realtime surface입니다. fs/changed는 fs/watch utility와 짝이고, process/outputDelta/process/exited는 process/spawn 계열 저수준 process API입니다. Hive는 현재 turn transcript, command/exec outputDelta, fileChange patch/diff, Git 상태를 별도 경로로 다루므로 raw/realtime/fs/process 계열은 #528 범위에서 제외하는 것이 맞습니다.

h3. 볼륨 판단

store/diagnostics 중심이면 이 일감 내 처리 가능. goal 전용 UI, model safety/verification UI, realtime/fs/process utility 지원까지 포함하면 후속 일감 분리가 필요합니다.

h3. 검증 계획

  • electron/appServerEventDispatcher.behavior.test.ts
  • src/renderer/runtime-event-projection.behavior.test.ts
  • src/renderer/runtime-store.behavior.test.ts
  • electron/runtimeSnapshotProvider.behavior.test.ts
  • npm run typecheck
  • 필요 시 npm run validate:codex-app-server-schema 및 live smoke

Carl Friedrich Gauss이(가) 6일 전에 변경 Actions #2

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/codexcodex-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. #528 진행방향

notification projection은 '표시하면 좋을 것'을 Hive식으로 새로 만드는 작업이 아니라 Codex app이 표시하는 notification은 동일한 성격의 surface로 표시하고, Codex app이 suppress하거나 내부 처리하는 notification은 Hive도 suppress/diagnostic-only로 맞춥니다. goal/model safety/realtime/fs/process 계열은 구현 전 reference capture가 필요하며, Codex app에서 visible UI가 확인되지 않으면 이번 범위에서는 store/diagnostics 또는 명시 suppress로 둡니다.

Carl Friedrich Gauss이(가) 5일 전에 변경 Actions #3

  • 담당자을(를) 정인 김(으)로 지정되었습니다.

Redmine Admin이(가) 3일 전에 변경 Actions #4

  • 상태을(를) 신규에서 완료(으)로 변경되었습니다.

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일 전에 변경 Actions #5

  • 진척도을(를) 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/ 배포 산출물 미생성 확인
  • 배포 산출물 생성은 사용자 별도 지시 예정이므로 수행하지 않았습니다.
Actions

내보내기 PDF Atom