개선 #526
완료됨개선 #525: Codex CLI 0.142.2 app-server 대응 개발 묶음
Codex 0.142.2 app-server 권한 프로파일 round-trip 및 runtimeWorkspaceRoots 송신
100%
설명
h2. 배경
Codex CLI 0.142.2 app-server 감사 결과 Hive는 permissions 송신은 하고 있으나 activePermissionProfile response/result를 UI 또는 snapshot에 보존하지 않고, runtimeWorkspaceRoots를 thread/start, turn/start, thread/resume, thread/fork payload에 직접 송신하지 않는다.
근거 문서: docs/design/codex-cli-0.142.2-app-server-protocol-audit.md
h2. 작업 범위
-
activePermissionProfile을 app-server 응답/result에서 보존하고 renderer snapshot 또는 필요한 UI 상태에 반영한다. - Hive의 프로젝트/workspace root 판단을
runtimeWorkspaceRootspayload로 연결한다. -
thread/start,turn/start,thread/resume,thread/fork에서 동일한 workspace-root 계약을 적용한다. - bundled
hive-sensitive권한 프로파일과 local Codex mode의 예외 경계를 유지한다.
h2. 완료 기준
- app-server request construction 단위 테스트가
permissions와runtimeWorkspaceRoots를 함께 검증한다. - app-server initialize/read 계열 결과에서
activePermissionProfile이 유실되지 않는다. - 기존 민감파일 정책 및 startup warning 동작이 유지된다.
Carl Friedrich Gauss이(가) 6일 전에 변경
h2. 선행분석 결과
읽기 전용 조사만 수행했습니다. 코드 수정, 파일 생성/삭제/수정, Redmine 업데이트, 테스트 실행은 하지 않았습니다.
현재 0.142.2 번들 pin 및 최소 app-server 버전 gate는 반영되어 있습니다. Hive sensitive-file 정책은 resources/requirements.toml -> requirementsPolicyService -> appServerProcessConfig -> app-managed CODEX_HOME/config.toml 순서로 materialize되며, bundled remote-cache 실행에서는 permissionProfile=hive-sensitive가 supervisor에 전달됩니다.
h3. 확인된 갭
- live
thread/start,turn/start에는permissions: "hive-sensitive"가 송신되지만,thread/resume과thread/fork에는 현재permissions가 송신되지 않습니다. - 0.142.2
ThreadStart/ThreadResume/ThreadFork/TurnStartparams의runtimeWorkspaceRoots가 Hive request payload에 없습니다. - 0.142.2 start/resume/fork response 및
thread/settings/updated의activePermissionProfile을 runtime snapshot/UI state에 보존하지 않습니다. -
scripts/fixtures/hive-app-server-contract.json의 필수 subset에도permissions/runtimeWorkspaceRoots가 빠져 있어 schema gate가 이 갭을 잡지 못합니다.
h3. 수정 범위
-
appServerSupervisor의 live request 생성 함수에runtimeWorkspaceRoots를 추가합니다. -
thread/resume,thread/fork에도 bundled named profile 경로에서는permissions: "hive-sensitive"를 송신하도록 연결합니다. - start/resume/fork response의
activePermissionProfile과runtimeWorkspaceRoots를 normalize해 runtime state에 보존합니다. -
thread/settings/updated에서threadSettings.activePermissionProfile을 projection하도록 이벤트 타입/store 처리를 추가합니다. - app-server-supervisor-live, runtime projection/store behavior test와 contract fixture를 보강합니다.
h3. 볼륨 판단
#526 한 일감 내 처리 가능하다고 판단합니다. 단, permissionProfile/list UI, clientUserMessageId, environments, selectedCapabilityRoots 제품화는 후속 일감으로 분리하는 것이 좋습니다.
h3. 검증 계획
vitest run src/renderer/app-server-supervisor-live.behavior.test.tsvitest run src/renderer/runtime-event-projection.behavior.test.ts src/renderer/runtime-store.behavior.test.tsvitest run electron/appServerProcessFactory.behavior.test.ts electron/enterprisePolicyValidation.behavior.test.tsnpm run validate:codex-app-server-schema- 가능 시 0.142.2 binary/bundle 기반 sensitive-policy/app-server smoke
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. #526 진행방향
권한 프로파일과 workspace roots는 Hive식 새 UI를 만들기보다 Codex app의 thread/session 권한 상태 반영 방식을 기준으로 맞춥니다. permissions, activePermissionProfile, runtimeWorkspaceRoots는 0.142.2 wire field 그대로 송수신/보존하고, Codex app이 별도 사용자 표시를 하지 않는다면 Hive도 renderer-visible UI를 늘리지 않고 snapshot/state/diagnostics 중심으로 둡니다. hive-sensitive는 Hive 보안 정책상 유지하되, 사용자가 보는 권한 흐름은 Codex app과 최대한 동일하게 보이도록 합니다.
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/ 배포 산출물 미생성 확인
- 배포 산출물 생성은 사용자 별도 지시 예정이므로 수행하지 않았습니다.