Conversation
Meta's Responses API rejects `\0` inside a character class ("is not a
\"regex\"") but accepts the equivalent `\x00`. Claude Code's Artifact tool
ships `^[^\0]*$` on its file-path parameters, so every routed Claude Code
turn to meta-muse/meta-model returned 400 and Claude Code silently fell back
to a native model. Rewrite unescaped `\0` (not followed by a digit, which
would be a Python octal escape) to `\x00` in the same pass that strips
`\p{...}`; the constraint is kept, not dropped.
|
✅ Deterministic PR hygiene checks passed. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: lidge-jun/opencodex/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe schema stripper now rewrites eligible ChangesSchema pattern handling
Priority: ⬆️ High Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The schema rewrite preserves escaped literals in the reviewed path, and no actionable merge-blocking risk is established. Architecture SummaryArchitecture risk: 🟡 Medium · up to The change affects 2 systems. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
Reliability and maintainability
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
⏳ DRAFT
What to do
Review readiness checklist
0/4 boxes ticked. This PR stays in draft until every box above is ticked. |
리뷰 · 우선순위 66 / 80Claude Code의 Artifact 도구는 파일 경로에 이 PR은 도구 스키마의 바탕은 라인 - 라인 - 메인테이너의 판단이 필요한 지점 자동 테스트는 바꾼 문자열이 자바스크립트에서 같은 글을 거르는지 확인합니다. Meta가 400을 주는지 200을 주는지는 작성자가 프록시로 직접 찍어 본 기록입니다. CI는 그 서버를 다시 치지 않습니다. 이 PR은 아직 초안입니다. 준비 체크리스트 네 칸이 비어 있습니다. 본문에는 관련 테스트 291개와 너의 추천 Artifact 경로를 고치는 이 변경은 두세요. 이 댓글은 grok-bot이 작성했습니다 |
) Six focused fixes from the assigned bug batch remain as separate attributed commits. | PR | Change | Author | | --- | --- | --- | | #5969 | Preserve Meta Muse tool-choice semantics and reject unsupported selectors before dispatch. | shawnkim | | #5944 | Remove unsupported hosted web-search declarations for Xiaomi MiMo destinations. | codingbo | | #5938 | Restart the Windows service child after unexpected exits, including exit 0, while reserving the intentional stay-out code. | codingbo | | #5935 | Reject Claude message-thread state on translated routes so the client resends full history. | kaladinhonor | | #5939 | Rewrite standalone `\\0` escapes in Meta tool-schema patterns to equivalent `\\x00`. | boblob6969 | | #5951 | Preserve Kiro-reported credits across stream attempts and in the usage ledger. | codingbo | A separate integration commit keeps upstream-controlled Kiro event-type text out of opt-in debug logs. The Kiro stream retains the previously landed bounded HTTP-error text when combined with credit metering. Left out: #5977. Independent security review found that its local read capability authenticates the request but not the HTTP response. A substituted listener could return a shape-valid forged `protected` verdict. A correct server proof bound to the nonce, endpoint, and body is outside this batch. Both its source commit and status-validation follow-up were reverted in new commits; its test and layout entries are gone. The source PR remains open. Co-authored-by: shawnkim <shawnkim@markncompany.co.kr> Co-authored-by: codingbo <cnsdbo@163.com> Co-authored-by: kaladinhonor <266145786+kaladinhonor@users.noreply.github.com> Co-authored-by: boblob6969 <boblob6969@icloud.com>
Summary
meta-muse,meta-model) rejects\0inside a regex character class:Invalid JSON schema: "^[^\\0]*$" is not a "regex". It accepts the equivalent\x00.^[^\0]*$on its file-path parameters. With the Claude intercept, every routed Claude Code turn to a Meta model returned 400, and Claude Code silently fell back to a native model.stripUnicodePropertyPatternsnow also rewrites an unescaped\0that is not followed by a digit to\x00, in the same pass that drops\p{…}. The constraint is kept, not dropped.\0followed by a digit (a Python octal escape) and an escaped\\0are left alone.Verification
meta-muse/muse-spark-1.3-contributor, one function tool per request:^[a-z]*$200,^[^\0]*$400,^[^\x00]*$200,^[^\u0000]*$200,\0200.claude -p --model claude-ocx-meta-muse--muse-spark-1.3-contributor(Artifact tool present): 400 before this change, 200 after, for bothmeta-museandmeta-model.bun test tests/adapters/openai/openai-chat-hardening.test.ts tests/responses/openai-responses-passthrough.test.ts: 291 pass, 0 fail, including the new regression test.tsc --noEmit: exit 0.bun scripts/test.ts --changed=dev: 619/1758 files selected; 56 failures, all intests/lab/*. The same 56 fail identically on unmodifieddev(2255aff) on this machine.Checklist
Review readiness checklist
This PR stays in draft until every box below is ticked. Tick all four boxes once the requirements are met:
Required local validation passed; commands, results, and any full-suite exception are documented.
I pushed my PR to a recent dev commit (at most 10 behind; a maintainer may still ask for the exact tip before merge).
I resolved all correct Codex and CodeRabbit findings.
My PR is ready for review.
Summary by CodeRabbit
\0escape are now converted to an equivalent form for improved compatibility. Patterns containing unsupported Unicode property escapes continue to be removed.