fix(api)!: represent multi-graders as named grader maps - #729
markstuart-oai wants to merge 1 commit into
Conversation
Castiron-Internal-PR: openai/openai-ruby-internal#129 Castiron-Source-SHA: 8ebce350cab9bb13fc02e62385fd567346d44d85 Castiron-Public-Base-SHA: 3343547
Castiron custom code✅ No new custom-code files detected. 70 mixed files remain; 0 existing customizations changed. Compared 70 existing customizations unchanged
30 more in the full report. A changed generated baseline means this report cannot reliably identify which handwritten lines changed. Inspect the custom-code diffDownload the exact patch produced by this run (requires repository access): gh run download 35527220421 --repo openai/openai-ruby \
--name castiron-custom-code-35527220421-1 --dir /tmp/castiron-custom-code-35527220421-1
git apply --stat /tmp/castiron-custom-code-35527220421-1/custom-code.patch
cat /tmp/castiron-custom-code-35527220421-1/custom-code.patchOr reproduce it from an SDK checkout containing the vendored reporter: git fetch --no-tags origin 33435479c2d98603b93c810183d314bc55cd1ee7 34732dbf341e7029c4e0ba3d8468400ac2e33261
python3 scripts/castiron/custom_code_report.py report \
--base 33435479c2d98603b93c810183d314bc55cd1ee7 \
--head 34732dbf341e7029c4e0ba3d8468400ac2e33261 --fetch --require-head-hash --public \
--out /tmp/castiron-custom-code-34732dbf341e
cat /tmp/castiron-custom-code-34732dbf341e/custom-code.patchThis is the current full custom patch for mixed files, not an attribution of only the handwritten lines changed by this PR. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Summary
Changes multi-grader inputs to keyed collections of graders.
Changes
Migration and validation
Pass a named grader hash, for example
graders: {quality: grader}, and refer to the same key incalculate_output: "quality". The single-value union is nowMultiGrader::Grader(previouslyMultiGrader::Graders); its RBS alias likewise changes fromgraderstograder.Pre-publication validation of this updated candidate passed the complete Ruby 3.3, 3.4 and 4.0 suites, Bedrock tests, lint, RBI/RBS checks and package build. A local full-import consumer passed 26 assertions, including all five grader variants, typed round trips and three captured SDK requests; existing session-reset controls passed 16 assertions. No live API calls or package releases were made.
The committed regression tests cover both string and symbol dictionary keys, all five typed values, round trips, exact Run/Validate request envelopes, and invalid flat/array controls. They pass 3 tests / 27 assertions on this candidate and fail against the unchanged public baseline. Formatting, focused lint, Sorbet and RBS checks pass locally.
Public CI passed Ruby 3.3/3.4/4.0, Bedrock, lint, RBI/RBS validation and packaging checks, including the new named-map regression tests.