flux-pr-1293
graphql-go-tools (Go) · W2 · GPT-5.3 Codex
Tests failed. 0/1 commands passed. Strength: strong.
go test -C v2 ./... -count=1 -timeout=300sPartial score: 0/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 only partially implements the intended refactor. It adds `BuildFetchReasons` and moves some metadata into `FetchInfo`, but it does not complete the centralization: `resolve.Fetch` API appears to retain old reason/dependency access patterns, loader propagation is handled via concrete-type switching instead of uniformly via `FetchInfo`, and the full planner-side separation/filtering path (including datasource-driven propagated subset handling) is not clearly implemented end-to-end. This misses core intent beyond stylistic differences.
Code Review
The patch appears incomplete versus the intended refactor: it introduces parts of FetchInfo centralization but keeps brittle, concrete-type-based propagation and partial metadata construction paths, so it likely does not fully satisfy the task.
The loader now uses a type switch over a few fetch structs to read `Info.PropagatedFetchReasons`. Any fetch kind not listed will silently skip propagation, which is brittle and diverges from the intended unified metadata access.
When field dependencies are enabled but include-info is disabled, `configureFetch` allocates `FetchInfo{}` and fills only dependency/reason fields. This creates a non-nil but incomplete metadata object, which can cause inconsistent downstream assumptions.
SingleFetch methods still expose legacy-style coordinate/reason access, while loader bypasses polymorphism via type switching. This mixed model undermines the intended centralization around a single `FetchInfo` contract.