Repository navigation
Conversation
|
✅ Deterministic PR hygiene checks passed. |
⏳ DRAFT
What to do
Review readiness checklist
0/4 boxes ticked. This PR stays in draft until every box above is ticked. Hygiene✅ Deterministic PR hygiene checks passed. |
리뷰 · 우선순위 71 / 80지금 공개 쪽 처리기는 이미 이 길을 알고 있습니다. 같은 파일 1647줄 근처에서 경로가 이 PR이 하려는 고침은 한 줄입니다. 다만 머지를 막는 것은 그 한 줄이 아니라 파일 전체가 깨진 것입니다. 이 PR은 alan7629의 초안이고 베이스는 src/server/index.ts:281 - 유니코드 줄표가 메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
) The unauthenticated loopback listener admits routes through an allowlist in loopbackRouteAllowed(). /v1/alpha/search - the native Codex web-search relay - was never on it, so a directly-spawned codex app-server got 404 for every web search (#3192). Admit POST on that path. The handler runs its own admission (resolveApiAuth + validateForwardAdmissionCredential), so a loopback caller without a ChatGPT credential is still refused inside the relay; only the listener's 404 goes away. The public listener is unchanged. Clean reimplementation of #3193, whose branch was byte-corrupted by an encoding round-trip (em-dashes and emoji in ~30 unrelated comment lines). Supersedes #3193. Fixes #3192. Co-authored-by: jun <jun@lidge.dev> Co-authored-by: alan7629 <alan7629@gmail.com>
|
Thanks @alan7629 — the diagnosis and the fix were exactly right. The branch itself could not be merged as-is: an encoding round-trip rewrote every em-dash to Rather than ask for another round, I landed a clean reimplementation with you credited as co-author: #3205 → Closing this PR in favour of #3205. If your editor writes files in a non-UTF-8 code page, setting it to UTF-8 (no BOM) will keep future PRs clean. |
…dge-jun#3205) The unauthenticated loopback listener admits routes through an allowlist in loopbackRouteAllowed(). /v1/alpha/search - the native Codex web-search relay - was never on it, so a directly-spawned codex app-server got 404 for every web search (lidge-jun#3192). Admit POST on that path. The handler runs its own admission (resolveApiAuth + validateForwardAdmissionCredential), so a loopback caller without a ChatGPT credential is still refused inside the relay; only the listener's 404 goes away. The public listener is unchanged. Clean reimplementation of lidge-jun#3193, whose branch was byte-corrupted by an encoding round-trip (em-dashes and emoji in ~30 unrelated comment lines). Supersedes lidge-jun#3193. Fixes lidge-jun#3192. Co-authored-by: jun <jun@lidge.dev> Co-authored-by: alan7629 <alan7629@gmail.com>
…dge-jun#3205) The unauthenticated loopback listener admits routes through an allowlist in loopbackRouteAllowed(). /v1/alpha/search - the native Codex web-search relay - was never on it, so a directly-spawned codex app-server got 404 for every web search (lidge-jun#3192). Admit POST on that path. The handler runs its own admission (resolveApiAuth + validateForwardAdmissionCredential), so a loopback caller without a ChatGPT credential is still refused inside the relay; only the listener's 404 goes away. The public listener is unchanged. Clean reimplementation of lidge-jun#3193, whose branch was byte-corrupted by an encoding round-trip (em-dashes and emoji in ~30 unrelated comment lines). Supersedes lidge-jun#3193. Fixes lidge-jun#3192. Co-authored-by: jun <jun@lidge.dev> Co-authored-by: alan7629 <alan7629@gmail.com>
Problem:
Native Codex Web Search via the unauthenticated loopback listener fails with
404 Unknown endpoint. (Fixes #3192)Root cause:
The
/v1/alpha/searchhandler exists insrc/server/index.tsbut was omitted from theloopbackRouteAllowed()allowlist, causing the loopback listener to reject the request before it reaches the handler.Fix:
Add
/v1/alpha/searchforPOSTmethod toloopbackRouteAllowed().Tests:
Added a focused regression test in
loopback-listener-integration.test.tsthat ensures/v1/alpha/searchpasses the loopback admission gate (which then correctly fails inside the handler for missing ChatGPT auth instead of a generic 404).Manual E2E evidence:
Native Codex Web Search changed from 404 to 200, successfully routing the upstream relay.
Review readiness checklist
This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met:
All CI tests are green on my local testing.
I pushed my PR to the latest dev commit.
I resolved all correct Codex and CodeRabbit findings.
My PR is ready for review.