flux-pr-891
graphql-go-tools (Go) · W2 · GPT-5.3 Codex
Tests passed. 1/1 commands passed. Strength: strong.
go test -C v2 ./... -count=1 -timeout=300sPartial score: 1/1
Trajectory
codex · partial order onlyprovider-native trajectory captured; validation and decision steps are appended with coarse ordering only
Quality
Equivalence Reasoning
behavioral
The patch implements typename validation, quote-unescape fixes, and arena-based error object construction, but it changes core behavior versus intent: validation is done at object level (not per `__typename` selection context), uses a different extension code/message format, and omits source-name-based error reporting. This can miss or mis-handle context-specific typename validation cases that the intended change covers.
Code Review
The patch implements core pieces and passes provided tests, but it likely does not fully satisfy the intended change due to context-model mismatch for typename validation, contract drift in error code/message, and a high-risk global metadata design.
Possible types are attached once per Object node via SetObjectTypeNameInfo and then validated from that single set. This misses the explicit merge-path handling needed when the same response path is composed from multiple type-conditioned selections, so valid typenames can be rejected or invalid ones missed in merged contexts.
The patch emits a new extension code INVALID_SUBGRAPH_TYPENAME and a different message format. If callers/tests expect the established INVALID_GRAPHQL-style contract for invalid subgraph typename responses, this will fail compatibility despite tests passing locally.
objectTypeNameInfos is a package-global sync.Map keyed by *Object. New entries are stored for copied objects, and there is no delete lifecycle. This can retain object graphs indefinitely and increase memory usage under repeated planning/resolution.