fix(schema_converter): allOf containing a false member must reject every value - #3921
Conversation
|
manjunath bhaskar (@manjunathbhaskar) is attempting to deploy a commit to the Composio Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 453dbae. Configure here.
453dbae to
e8a393b
Compare
|
Good catch. Fixed by mirroring the existing bare- Added |
8cb290b
into
ComposioHQ:next
|
Thanks! |

Summary
Preserves JSON Schema boolean-schema semantics throughout the Python schema converter:
allOfnow propagates through nested combiners instead of being dropped;null;json_schema_to_pydantic_type(False) is Nonecompatibility behavior remains unchanged.Problem
The original fix handled only a literal
falsedirectly inside oneallOf. Recursive filtering still interpreted the sameNonevalue as both "discard this union branch" and "the whole schema is impossible." That widened nestedallOfschemas tostr, removed impossible properties/items/definitions, and allowed JSONnullbecause Pydantic treats a bareNoneannotation asNoneType.Fix
anyOf/oneOf; propagate it throughallOf.$defs/definitionsreferences.{"not": {}}from the rejecting Pydantic type.allOfand all-false-anyOfexpectations.Testing
uv run pytest tests/test_schema_converter.py tests/test_schema_parser.py -q- 106 passeduv run pytest -m schema -q- 71 passedmake tst- 928 passedmake chk- Ruff and mypy passed across core, providers, tests, and scriptsRegression coverage includes direct and nested
allOf, JSONnull, empty arrays with impossible items, optional and required impossible properties, local definition references, generated JSON Schema, and shared model consumers.Note
#3876 adds coverage for the same function's
anyOfhandling but does not change thisallOfpropagation path.