Skip to content

Resolve #2274: add GraphQL lifecycle guardrails#2318

Merged
ayden94 merged 1 commit into
mainfrom
issue-2274-add-graphql-lifecycle-guardrail-regression-coverage
Jun 25, 2026
Merged

Resolve #2274: add GraphQL lifecycle guardrails#2318
ayden94 merged 1 commit into
mainfrom
issue-2274-add-graphql-lifecycle-guardrail-regression-coverage

Conversation

@ayden94

@ayden94 ayden94 commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Close GraphQL lifecycle and guardrail regression gaps from #2274.

Closes #2274

Changes

  • Add an HTTP request limits: false integration success path for selected operations that would otherwise exceed request budgets.
  • Add a websocket subscriptions.websocket.limits = false runtime success path for concurrent operations on the same socket.
  • Add a client-disconnect-before-completion regression for websocket operation-scoped provider disposal.
  • Fix websocket disconnect cleanup so socket close disposes active operation-scoped containers even when subscriptions have not completed.
  • Add a patch changeset for the documented websocket lifecycle behavior fix.

Testing

  • pnpm exec biome check packages/graphql/src/module.test.ts packages/graphql/src/node/graphql-websocket-transport.ts .changeset/clean-graphql-websocket-disconnects.md
  • pnpm --filter @fluojs/graphql... build
  • pnpm --filter @fluojs/graphql typecheck
  • pnpm --filter @fluojs/graphql test -- src/module.test.ts
  • pnpm verify:changeset-release-lane
  • pnpm verify:release-readiness

Release impact

  • This PR has consumer-visible release impact and includes a changeset.
  • This PR has no consumer-visible release impact.

The original issue expected test-only preservation, but the new disconnect regression exposed a documented websocket lifecycle bug. .changeset/clean-graphql-websocket-disconnects.md records the patch release impact.

Public export documentation

No public exports changed.

  • Changed public exports include a source-level summary.
  • Changed exported functions document matching @param / @returns tags where applicable.
  • Source @example blocks and README scenario examples still play complementary roles.

Behavioral contract

This PR preserves the documented GraphQL lifecycle and guardrail contracts: request/websocket limits: false opt-outs work at runtime, and websocket operation-scoped providers are disposed when clients disconnect before subscription completion.

  • No documented behavioral contracts were removed without migration notes.
  • New behavioral contracts are documented in the affected package README.
  • Intentional limitations are explicitly stated (not silently removed).
  • Runtime invariants are covered by regression tests.

Platform consistency governance (SSOT)

No platform contract or governance docs changed.

  • SSOT English/Korean mirror structure remains synchronized for changed governance docs.
  • If platform contract docs changed, companion updates include discoverability/docs index, tooling or CI enforcement, and regression-test evidence.
  • Any package README alignment/conformance claims are backed by createPlatformConformanceHarness(...) tests.

@ayden94 ayden94 merged commit df0886f into main Jun 25, 2026
10 checks passed
@github-actions github-actions Bot mentioned this pull request Jun 25, 2026
@ayden94 ayden94 deleted the issue-2274-add-graphql-lifecycle-guardrail-regression-coverage branch June 25, 2026 04:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[audit][area:request-pipeline] Add GraphQL lifecycle and guardrail regression coverage (priority:p2)

1 participant