프로젝트

일반

사용자정보

Actions

개선 #531

완료됨

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

Codex 0.142.2 turn clientUserMessageId 및 environments payload 추적 추가

개선 #531: Codex 0.142.2 turn clientUserMessageId 및 environments payload 추적 추가

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

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

100%

추정시간:

설명

h2. 배경

0.142.2 turn/startturn/steer에는 clientUserMessageId가 있고, thread/start/turn/start에는 environments 입력이 있다. 현재 Hive는 기본 대화 송신은 지원하지만 두 필드는 직접 송신하지 않아 turn dedupe/idempotency와 remote environment 추적성이 제한된다.

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

h2. 작업 범위

  • 사용자 메시지 또는 composer submit 단위의 stable clientUserMessageId 생성/전달 방식을 설계한다.
  • turn/startturn/steer payload에 동일한 추적 계약을 적용한다.
  • Hive가 실제로 지원하는 environment/remoteControl 상태만 environments에 반영하고, 미지원 remote control API 전체 노출은 피한다.
  • runtime metadata, logs, tests에서 idempotency와 environment trace를 확인할 수 있게 한다.

h2. 완료 기준

  • 동일 turn/steer 흐름에서 client user message id가 유실되지 않는다.
  • unsupported remoteControl API를 제품 UI에 성급히 노출하지 않는다.
  • request construction 테스트가 clientUserMessageIdenvironments 경계를 검증한다.

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

h2. 선행분석 결과

읽기 전용 조사만 수행했습니다. 코드/파일/Redmine 수정은 하지 않았습니다. #531은 한 일감 안에서 처리 가능해 보입니다. 단, 범위는 clientUserMessageId 전파와 이미 알려진 remote environment의 environments payload 전송까지로 닫아야 합니다. remoteControl/enable, pairing, client 관리, environment/add 같은 미지원 API를 UI에 노출하는 일은 별도 설계 대상입니다.

h3. 확인된 현 상태

  • 0.142.2 generated protocol 기준 clientUserMessageIdturn/start, turn/steer에 optional field로 존재합니다.
  • environmentsthread/start, turn/start에 존재하며 항목 shape는 { environmentId, cwd }입니다. turn/steer에는 environments가 없습니다.
  • Hive 현재 구현은 renderer App.tsx에서 optimistic user message id를 생성하지만, sendUserTurn/steerTurn request로 전달하지 않습니다.
  • main turn:start/turn:steer IPC와 appServerSupervisor의 live payload builder에도 clientUserMessageId/environments 전달 필드가 없습니다.
  • remoteControl은 현재 remoteControl/status/changedthread/started의 remoteEnvironment ref를 runtime/sidebar/HeaderBar에 투영하는 수준입니다.

h3. 권장 수정 범위

  • renderer submit 시점에 stable clientUserMessageId를 생성하고 sendUserTurn/steerTurn request에 포함합니다.
  • queued turn은 queue 생성 시점에 ID를 보존합니다.
  • main IPC에서 optional string 검증 후 logger와 supervisor params로 전달합니다.
  • supervisor createLiveTurnStartParams/createLiveTurnSteerParams에서 app-server payload에 포함합니다.
  • thread-not-found retry는 동일 ID를 재사용합니다.
  • valid { environmentId, cwd }가 확인되는 경우에 한해 thread/start/turn/start environments payload를 싣습니다.
  • remote environment의 cwd 원천이 없는 경우 local repo path를 원격 cwd로 추정하지 말고 payload를 omit합니다.

h3. 범위 제외

remoteControl/enable, pairing, client list/revoke, environment/add는 제품 UI/bridge에 노출하지 않는 것이 맞습니다. remoteControl API 제품화/환경 선택 UI/runtimeWorkspaceRoots는 후속 일감으로 분리하는 것이 안전합니다.

h3. 볼륨 판단

request construction 추적 보강으로 닫으면 #531 한 일감 내 처리 가능합니다.

h3. 검증 계획

  • vitest run src/renderer/App.behavior.test.tsx src/renderer/app-server-supervisor-live.behavior.test.ts
  • vitest run electron/liveAppServerGate.behavior.test.ts electron/appServerEventDispatcher.behavior.test.ts src/renderer/runtime-event-projection.behavior.test.ts src/renderer/runtime-store.behavior.test.ts
  • npm run typecheck
  • npm run validate:package-config
  • 필요 시 npm run lint

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. #531 진행방향

clientUserMessageIdenvironments는 사용자-visible 기능이 아니라 Codex app app-server payload 추적성과 remote environment 동작을 따라가는 compatibility 작업으로 진행합니다. remote environment가 Codex app처럼 header/status에 표시되는 경우 Hive도 동일하게 맞추되, valid { environmentId, cwd }가 없으면 local path를 원격 cwd로 추정하지 않고 omit합니다. remoteControl/enable, pairing, client 관리 UI는 Codex app reference와 Hive 제품 경계가 확인되기 전까지 노출하지 않습니다.

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

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

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

h2. remote environment 미지원 정책 반영

사용자가 remote environment는 Hive 보안정책상 미지원이라고 확정했습니다. Hive는 사내 인트라넷용 애플리케이션이며, 개발팀을 위한 숨겨진 로컬모드만 예외로 둡니다.

#531 진행방향을 다음과 같이 조정합니다.

  • clientUserMessageId 생성/전달/재시도 보존은 #531 범위로 유지한다.
  • remoteControl/enable, pairing, client list/revoke, environment 선택 UI는 제품 범위에서 제외한다.
  • thread/start/turn/startenvironments payload는 기본 제품 경로에서 송신하지 않는다.
  • 숨겨진 로컬모드에서 실제 { environmentId, cwd }가 확인되는 경우만 guarded path로 검토한다.
  • remote cwd를 local repo path에서 추정하지 않는다.

따라서 이 일감은 remote environment 제품화가 아니라 user-message idempotency/traceability 및 미지원 경계 검증 작업으로 닫아야 합니다.

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

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

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 #6

  • 진척도을(를) 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