Skip to content

Conversation

@monadoid
Copy link
Contributor

@monadoid monadoid commented Jan 15, 2026

why

Fixes for having openapi spec pass stainless checks.

what changed

test plan

@changeset-bot
Copy link

changeset-bot bot commented Jan 15, 2026

⚠️ No Changeset found

Latest commit: b582a76

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions
Copy link
Contributor

github-actions bot commented Jan 15, 2026

✱ Stainless preview builds

This PR will update the stagehand SDKs with the following commit message.

feat: x-stainless-any fix, optional frame id, ModelConfigString fix
stagehand-python studio · conflict

There was a conflict between your custom code and your generated changes.
You don't need to resolve this conflict right now, but you will need to resolve it for your changes to be released to your users. Read more about why this happened here.

stagehand-openapi studio

Your SDK built successfully.

stagehand-kotlin studio

Your SDK built successfully.

stagehand-typescript studio

Your SDK built successfully.

stagehand-go studio · conflict

There was a conflict between your custom code and your generated changes.
You don't need to resolve this conflict right now, but you will need to resolve it for your changes to be released to your users. Read more about why this happened here.

stagehand-java studio · conflict

There was a conflict between your custom code and your generated changes.
You don't need to resolve this conflict right now, but you will need to resolve it for your changes to be released to your users. Read more about why this happened here.

stagehand-csharp studio · conflict

There was a conflict between your custom code and your generated changes.
You don't need to resolve this conflict right now, but you will need to resolve it for your changes to be released to your users. Read more about why this happened here.

stagehand-php studio

Your SDK built successfully.

stagehand-ruby studio · conflict

There was a conflict between your custom code and your generated changes.
You don't need to resolve this conflict right now, but you will need to resolve it for your changes to be released to your users. Read more about why this happened here.

stagehand-cli studio

Your SDK built successfully.


This comment is auto-generated by GitHub Actions and is automatically kept up to date as you push.
Last updated: 2026-01-16 00:04:48 UTC

@monadoid monadoid changed the title x-stainless-any fix, optional frame id, ModelConfigString fix x-sent-at removal, x-stainless-any fix, optional frame id, ModelConfigString fix Jan 15, 2026
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 3 files

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 15, 2026

Greptile Summary

This PR makes targeted fixes to the OpenAPI specification and Zod schemas to improve compatibility with the Stainless code generation tool. The changes include: renaming ModelName to ModelConfigString for clarity, changing 5 frameId fields from optional to nullish (allowing explicit null values), updating model name examples to reflect unprefixed format, adding x-stainless-any: true annotations to 3 unknown-type fields, removing the unused x-sent-at header definition, and updating the OpenAPI generation script to use x-stainless-any instead of type: unknown.

Confidence Score: 5/5

  • This PR is safe to merge with no identified issues
  • All changes are straightforward, well-targeted fixes for OpenAPI spec validation. The schema renames are consistent across files, the frameId changes from optional() to nullish() are semantically correct (explicitly allowing null vs undefined), the x-stainless-any annotations are appropriately applied to unknown-type fields, and the removal of the unused x-sent-at header is safe. Generated YAML matches expected transformations. No breaking changes or runtime impact.
  • No files require special attention

Important Files Changed

Filename Overview
packages/core/lib/v3/types/public/api.ts Zod schema updates for OpenAPI spec compatibility: (1) Renamed ModelNameSchema to ModelConfigStringSchema with updated description for clarity, (2) Updated ModelConfigObjectSchema.modelName description and example to reflect unprefixed model names, (3) Changed 4 frameId fields from optional() to nullish() to allow null values explicitly in OpenAPI specs, (4) Added override metadata to 3 z.unknown() fields to inject x-stainless-any: true into generated JSON schemas.
packages/server/openapi.v3.yaml Generated OpenAPI spec reflecting Zod schema changes: (1) Renamed ModelName to ModelConfigString schema component, (2) Updated modelName examples from prefixed to unprefixed format, (3) Converted 5 frameId fields from type: string to anyOf: [string, null] to explicitly allow null values, (4) Added x-stainless-any: true to ExtractResult.result, NavigateResult.result, and StreamEventSystemData.result fields, (5) Removed x-sent-at header definition from SessionHeaders and all endpoint parameters.
packages/server/scripts/gen-openapi.ts Updated post-processing logic to replace type: unknown with x-stainless-any: true in 3 regex patterns and added a new pattern (comment #4) for StreamEventSystemData*.result. Updated schema registration to use ModelConfigStringSchema instead of ModelNameSchema. Comment numbering adjusted from 4-5 to 5-6 due to new regex pattern.

description: Model name string (e.g., 'openai/gpt-5-nano',
'anthropic/claude-4.5-opus')
example: openai/gpt-5-nano
description: Model name string without prefix (e.g., 'gpt-5-nano',
Copy link
Member

Choose a reason for hiding this comment

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

Nah keep prefix recommended in all possible shapes, API can handle it.

@monadoid monadoid merged commit 5b87d13 into main Jan 16, 2026
17 of 19 checks passed
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.

3 participants