소스 검색

fix(subagent): normalize Codex payload diagnostics

pku-xht 1 개월 전
부모
커밋
02e4100f2a
2개의 변경된 파일9개의 추가작업 그리고 2개의 파일을 삭제
  1. 5 1
      packages/subagent/subagent-codex/src/run.ts
  2. 4 1
      packages/subagent/subagent-codex/tests/subagent-codex.spec.ts

+ 5 - 1
packages/subagent/subagent-codex/src/run.ts

@@ -49,7 +49,11 @@ const CODEX_PACKAGE_BIN = resolve(
 function missingPayloadDiagnostic(child: SubprocessHandle): string | undefined {
   const stderr = child.collected.stderr?.readFrom(0).text
   if (stderr === undefined) return undefined
-  return /Missing optional dependency[^\r\n]*/.exec(stderr)?.[0]?.trim()
+  const platformPackage = /Missing optional dependency (@openai\/codex-[a-z0-9-]+)/
+    .exec(stderr)?.[1]
+  return platformPackage === undefined
+    ? undefined
+    : `Missing optional dependency ${platformPackage}`
 }
 
 function withMissingPayloadDiagnostic(

+ 4 - 1
packages/subagent/subagent-codex/tests/subagent-codex.spec.ts

@@ -1074,7 +1074,8 @@ describe('run lifecycle and quiescence', () => {
     const child = fakeChild({
       stderr: [
         'credential-like unrelated stderr',
-        'Error: Missing optional dependency @openai/codex-linux-x64.',
+        'Error: Missing optional dependency @openai/codex-linux-x64. '
+          + 'Reinstall Codex: pnpm add -g @openai/codex@latest',
       ].join('\n'),
     })
     const starting = startCodexRun(request(), runSpec(child))
@@ -1088,6 +1089,8 @@ describe('run lifecycle and quiescence', () => {
     if (!(error instanceof Error)) throw new Error('expected startup failure')
     expect(error.message).toContain('Missing optional dependency @openai/codex-linux-x64')
     expect(error.message).not.toContain('credential-like unrelated stderr')
+    expect(error.message).not.toContain('Reinstall Codex')
+    expect(error.message).not.toContain('pnpm add -g')
     expect(child.terminate).toHaveBeenCalledTimes(1)
   })