Skip to content

docs: document fiber scheduler concurrency - #357

Merged
jbeckwith-oai merged 2 commits into
mainfrom
codex/document-fiber-scheduler-async
Aug 10, 2026
Merged

docs: document fiber scheduler concurrency#357
jbeckwith-oai merged 2 commits into
mainfrom
codex/document-fiber-scheduler-async

Conversation

@jbeckwith-oai

Copy link
Copy Markdown
Contributor

Summary

  • document that the default Net::HTTP transport cooperates with an active Ruby fiber scheduler
  • add an async usage example without introducing a runtime dependency
  • add a localhost integration test proving two requests can make progress concurrently on one scheduler thread

Why

The SDK Surface Atlas classifies Ruby async support as a gap because the official SDK does not document a native path. The existing transport already uses scheduler-aware Ruby I/O, so this makes that behavior an explicit, tested SDK contract instead of adding a duplicate async client hierarchy.

Without an active scheduler, requests retain their existing blocking behavior.

Validation

  • mise exec ruby@4.0.6 -- ./scripts/test — 525 runs, 1,712 assertions
  • mise exec ruby@4.0.6 -- bundle exec rake lint:rubocop — 2,597 files, no offenses
  • focused scheduler integration test on Ruby 3.3.12
  • mise exec ruby@4.0.6 -- bundle exec rake typecheck

@jbeckwith-oai
jbeckwith-oai marked this pull request as ready for review August 10, 2026 20:46
@jbeckwith-oai
jbeckwith-oai requested a review from a team as a code owner August 10, 2026 20:46
@openai-sdks

openai-sdks Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

OkTest Summary

237/237 SDK tests passed in 7.719s for Ruby SDK PR #357.

Test results — 42 files
Test Result Time
tests/chat-completions-complex-body.test.ts ✅ Passed 131ms
tests/chat-completions-create.test.ts ✅ Passed 194ms
tests/chat-completions-stream.test.ts ✅ Passed 115ms
tests/files-content-binary.test.ts ✅ Passed 139ms
tests/files-create-multipart.test.ts ✅ Passed 120ms
tests/files-list-pagination.test.ts ✅ Passed 134ms
tests/initialize-config.test.ts ✅ Passed 166ms
tests/instance-isolation.test.ts ✅ Passed 245ms
tests/models-list.test.ts ✅ Passed 140ms
tests/responses-background-lifecycle.test.ts ✅ Passed 170ms
tests/responses-body-method-errors.test.ts ✅ Passed 482ms
tests/responses-cancel-timeout.test.ts ✅ Passed 284ms
tests/responses-cancel.test.ts ✅ Passed 202ms
tests/responses-compact-retries.test.ts ✅ Passed 192ms
tests/responses-compact.test.ts ✅ Passed 185ms
tests/responses-create-advanced-stream.test.ts ✅ Passed 211ms
tests/responses-create-advanced.test.ts ✅ Passed 163ms
tests/responses-create-disconnect.test.ts ✅ Passed 125ms
tests/responses-create-errors.test.ts ✅ Passed 296ms
tests/responses-create-malformed-api-responses.test.ts ✅ Passed 113ms
tests/responses-create-retries.test.ts ✅ Passed 230ms
tests/responses-create-stream-failures.test.ts ✅ Passed 107ms
tests/responses-create-stream-timeout.test.ts ✅ Passed 192ms
tests/responses-create-stream-wire.test.ts ✅ Passed 1.657s
tests/responses-create-stream.test.ts ✅ Passed 132ms
tests/responses-create-terminal-states.test.ts ✅ Passed 228ms
tests/responses-create-timeout.test.ts ✅ Passed 267ms
tests/responses-create.test.ts ✅ Passed 217ms
tests/responses-delete.test.ts ✅ Passed 206ms
tests/responses-input-items-errors.test.ts ✅ Passed 165ms
tests/responses-input-items-list.test.ts ✅ Passed 162ms
tests/responses-input-items-options.test.ts ✅ Passed 169ms
tests/responses-input-tokens-count-timeout.test.ts ✅ Passed 290ms
tests/responses-input-tokens-count.test.ts ✅ Passed 194ms
tests/responses-malformed-inputs.test.ts ✅ Passed 1.816s
tests/responses-not-found-errors.test.ts ✅ Passed 344ms
tests/responses-parse.test.ts ✅ Passed 145ms
tests/responses-retrieve-retries.test.ts ✅ Passed 243ms
tests/responses-retrieve.test.ts ✅ Passed 227ms
tests/responses-stored-method-errors.test.ts ✅ Passed 577ms
tests/retry-behavior.test.ts ✅ Passed 1.95s
tests/sdk-error-shape.test.ts ✅ Passed 377ms

View OkTest run #31432247381

SDK merge (70aa56e32711) · head (5b90f02f24fe) · base (1c71a1eccdee) · OkTest (91635c6a2723)

@HAYDEN-OAI HAYDEN-OAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks good. The Async example and transport behavior line up; I left one low-priority wording clarification inline.

Comment thread README.md Outdated
@jbeckwith-oai
jbeckwith-oai added this pull request to the merge queue Aug 10, 2026
Merged via the queue into main with commit 25a7bbc Aug 10, 2026
14 checks passed
@jbeckwith-oai
jbeckwith-oai deleted the codex/document-fiber-scheduler-async branch August 10, 2026 21:08
@openai-sdks openai-sdks Bot mentioned this pull request Aug 10, 2026
@jbeckwith-oai jbeckwith-oai added the generator Touches generated SDK files label Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

generator Touches generated SDK files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants