Development record
internal/ghcontract checks that every field a GraphQL query selects exists on its type, but never checks the field's arguments. abcd land's queue-state query depends on isRequired(pullRequestNumber:$n): the forge refuses isRequired with no argument ('A pull request ID or pull request number is required'), yet a query that dropped the argument would pass every test against the fake forge. That is the class of defect the gh field pins exist to stop (a field the real forge refuses, hidden by a fake). Found by the round 5 implementer of the abcd land change, 2026-10-15.
internal/ghcontract checks that every field a GraphQL query selects exists on its type, but never checks the field's arguments. abcd land's queue-state query depends on isRequired(pullRequestNumber:$n): the forge refuses isRequired with no argument ('A pull request ID or pull request number is required'), yet a query that dropped the argument would pass every test against the fake forge. That is the class of defect the gh field pins exist to stop (a field the real forge refuses, hidden by a fake). Found by the round 5 implementer of the abcd land change, 2026-10-15.
Frontmatter
| id | iss-2610151411351873 |
|---|---|
| type | issue |
| lifecycle | open |
| severity | minor |
.abcd/work/issues/open/iss-2610151411351873-internal-ghcontract-checks-that-every.md
open on GitHub ↗ · commit history ↗