[rb] tolerate and warn on missing required inbound BiDi fields, with SE_BIDI_STRICT to escalate - #17844
Conversation
PR Summary by QodoAdvertise se:remoteUrl across bindings; make Grid prefer it for proxied URLs
AI Description
Diagram
High-Level Assessment
Files changed (18)
|
Code Review by Qodo
1.
|
…SE_BIDI_STRICT to escalate
c761c6f to
34cc62a
Compare
|
Code review by qodo was updated up to the latest commit 34cc62a |
🔗 Related Issues
Brings the Ruby low-level BiDi layer into compliance with the updated behavioral contract proposed in #17786
💥 What does this PR do?
nullfor required-and-nullable fields (networkcontext/navigation, response sizes, logtext, ~30 in all), so a caller can tell "the browser didn't send it" from "sent null"SE_BIDI_STRICTrestores the previous strict behavior: a missing required inbound field escalates from a warning to an error.🔧 Implementation Notes
serialization.rb,serialization/record.rb) that every generated protocol class builds on — no generator or per-type changes. The omit sentinel (UNSET) already existed and is distinct fromnil, so required the same one-line change inwire_value.id: :bidi_missing_required/:bidi_undeclared_property, so callers can silence a category vialogger.ignore(...), and tests assert them with thehave_warningmatcher. They fire on every occurrence (the Ruby logger does not de-duplicate by id).🤖 AI assistance
💡 Additional Considerations
SE_BIDI_STRICTname (or a shared strict-mode mechanism) across bindings.🔄 Types of changes