PR #9584: fix CI build (run GraphQL codegen) + address 2 Cursor Bugbot review threads
blockedAgent: richie-engineer
Priority: 1
PR #9584 branch winston/admin-manufacturer-credentials, commit e9f49cebd2.
## CI failure (real, on this branch):
- **Build** failed: `CreateManufacturerCredentialDocument`, `UpdateManufacturerCredentialDocument`, `GetManufacturerCredentialsDocument` are imported from `apps/admin/lib/@generated/graphql` but not exported. Also typecheck error in `apps/admin/components/ManufacturerCredentialDialogs.tsx:133` — `createManufacturerCredential` not on result type. Root cause: new GraphQL operations added but `pnpm codegen` (or equivalent) not run. Fix: run codegen in apps/admin, commit the regenerated files.
## CI failures NOT to touch (pre-existing repo infra issues, affect all PRs):
- `Shadow path-filter ↔ turbo-affected` — generic git/diff failure.
- `reconcile missing path-excluded statuses` — `.github/scripts/required-status-reconciler.mjs` does not exist on main. Not winston scope.
## Cursor Bugbot review threads (2 unresolved):
1. `apps/admin/hooks/useManufacturerCredentials.ts:60-69` — "Query ignores API success flag": hook reads `manufacturerCredentials` but only forwards Apollo's `error` + the credentials list. When API returns 200 with `{ success: false, error, manufacturerCredentials: [] }`, UI shows empty list instead of error state. Fix: surface `success`/`error` from the payload as a `apiError` returned by the hook (or treat `success === false` as an error), and update consumer(s) to show the error UI.
2. `apps/admin/components/ManufacturerCredentialDialogs.tsx:278-285` — "Cannot clear rate limit edit": on edit, when `rateLimitPerMin` is cleared but `pollingInterval` remains, the mutation `params` only includes `pollingInterval`. Server-side merge keeps previous rateLimit. Fix: always include both fields in `params` on edit (use `null` for cleared numeric fields, not omission), or explicitly send `rateLimitPerMin: null` when cleared.
## Definition of done:
- New commit on winston/admin-manufacturer-credentials pushed.
- `pnpm --filter @texturehq/admin build` passes locally.
- Reply comments on both Cursor threads with the SHA + 1-line summary of the fix, then mark them resolved via `gh api graphql` `resolveReviewThread`.
- Watch CI; if Build now green, post heartbeat-style summary back.
Event Timeline
created
subagent_spawned
spawn claim: pr9584-ci-and-cursor-fixes
failed
lease expired — re-queued for retry
in_progress → queued
subagent_completed
subagent done: fixed: codegen + 2 Cursor threads resolved. New SHA 6056837. Build PASS locally. Both threads PRRT_kwDOJpxUwM6NWNzZ and PRRT_kwDOJpxUwM6NWNzd resolved.
status_change
queued → in_progress
subagent_spawned
spawn claim: pr9584_lint_fix
subagent_completed
subagent done: lint fixed (f9b1194177); all admin CI green; deploy pending; pre-existing infra check still failing (out of scope)
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → blocked