Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "3.18.0"
".": "3.19.3"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 8
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fstagehand-bc309fd00fe0507f4cbe3bc77fa27d0fbffeaa6e71998778da34de42608a67e8.yml
openapi_spec_hash: 1db1af5c1b068bba1d652102f4454668
config_hash: d6c6f623d03971bdba921650e5eb7e5f
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fstagehand-b969ce378479c79ee64c05127c0ed6c6ce2edbee017ecd037242fb618a5ebc9f.yml
openapi_spec_hash: a24aabaa5214effb679808b7f2be0ad4
config_hash: a962ae71493deb11a1c903256fb25386
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 3.19.3 (2026-04-03)

Full Changelog: [v3.18.0...v3.19.3](https://github.com/browserbase/stagehand-java/compare/v3.18.0...v3.19.3)

### Features

* Replace default model used in server-v3 api spec examples ([aec2bf3](https://github.com/browserbase/stagehand-java/commit/aec2bf3d0ab203f15e06940e174478bfa30bf70b))

## 3.18.0 (2026-03-25)

Full Changelog: [v0.7.1...v3.18.0](https://github.com/browserbase/stagehand-java/compare/v0.7.1...v3.18.0)
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

<!-- x-release-please-start-version -->

[![Maven Central](https://img.shields.io/maven-central/v/com.browserbase.api/stagehand-java)](https://central.sonatype.com/artifact/com.browserbase.api/stagehand-java/3.18.0)
[![javadoc](https://javadoc.io/badge2/com.browserbase.api/stagehand-java/3.18.0/javadoc.svg)](https://javadoc.io/doc/com.browserbase.api/stagehand-java/3.18.0)
[![Maven Central](https://img.shields.io/maven-central/v/com.browserbase.api/stagehand-java)](https://central.sonatype.com/artifact/com.browserbase.api/stagehand-java/3.19.3)
[![javadoc](https://javadoc.io/badge2/com.browserbase.api/stagehand-java/3.19.3/javadoc.svg)](https://javadoc.io/doc/com.browserbase.api/stagehand-java/3.19.3)

<!-- x-release-please-end -->

Expand Down Expand Up @@ -85,7 +85,7 @@ Most existing browser automation tools either require you to write low-level cod
### Gradle

```kotlin
implementation("com.browserbase.api:stagehand-java:3.18.0")
implementation("com.browserbase.api:stagehand-java:3.19.3")
```

### Maven
Expand All @@ -94,7 +94,7 @@ implementation("com.browserbase.api:stagehand-java:3.18.0")
<dependency>
<groupId>com.browserbase.api</groupId>
<artifactId>stagehand-java</artifactId>
<version>3.18.0</version>
<version>3.19.3</version>
</dependency>
```

Expand Down Expand Up @@ -483,7 +483,7 @@ import com.browserbase.api.models.sessions.SessionStartParams;
import com.browserbase.api.models.sessions.SessionStartResponse;

SessionStartParams params = SessionStartParams.builder()
.modelName("anthropic/claude-sonnet-4-6")
.modelName("openai/gpt-5.4-mini")
.build();
HttpResponseFor<SessionStartResponse> response = client.sessions().withRawResponse().start(params);

Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ repositories {

allprojects {
group = "com.browserbase.api"
version = "3.18.0" // x-release-please-version
version = "3.19.3" // x-release-please-version
}

subprojects {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ internal class ModelConfigTest {
fun create() {
val modelConfig =
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand All @@ -25,7 +25,7 @@ internal class ModelConfigTest {
.provider(ModelConfig.Provider.OPENAI)
.build()

assertThat(modelConfig.modelName()).isEqualTo("openai/gpt-5-nano")
assertThat(modelConfig.modelName()).isEqualTo("openai/gpt-5.4-mini")
assertThat(modelConfig.apiKey()).contains("sk-some-openai-api-key")
assertThat(modelConfig.baseUrl()).contains("https://api.openai.com/v1")
assertThat(modelConfig.headers())
Expand All @@ -42,7 +42,7 @@ internal class ModelConfigTest {
val jsonMapper = jsonMapper()
val modelConfig =
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal class SessionActParamsTest {
SessionActParams.Options.builder()
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down Expand Up @@ -76,7 +76,7 @@ internal class SessionActParamsTest {
SessionActParams.Options.builder()
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down Expand Up @@ -136,7 +136,7 @@ internal class SessionActParamsTest {
SessionActParams.Options.builder()
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down Expand Up @@ -176,7 +176,7 @@ internal class SessionActParamsTest {
SessionActParams.Options.builder()
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ internal class SessionExecuteParamsTest {
.cua(true)
.executionModel(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand All @@ -33,7 +33,7 @@ internal class SessionExecuteParamsTest {
.mode(SessionExecuteParams.AgentConfig.Mode.CUA)
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down Expand Up @@ -95,7 +95,7 @@ internal class SessionExecuteParamsTest {
.cua(true)
.executionModel(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand All @@ -109,7 +109,7 @@ internal class SessionExecuteParamsTest {
.mode(SessionExecuteParams.AgentConfig.Mode.CUA)
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down Expand Up @@ -175,7 +175,7 @@ internal class SessionExecuteParamsTest {
.cua(true)
.executionModel(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand All @@ -189,7 +189,7 @@ internal class SessionExecuteParamsTest {
.mode(SessionExecuteParams.AgentConfig.Mode.CUA)
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down Expand Up @@ -227,7 +227,7 @@ internal class SessionExecuteParamsTest {
.cua(true)
.executionModel(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand All @@ -241,7 +241,7 @@ internal class SessionExecuteParamsTest {
.mode(SessionExecuteParams.AgentConfig.Mode.CUA)
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal class SessionExtractParamsTest {
SessionExtractParams.Options.builder()
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down Expand Up @@ -65,7 +65,7 @@ internal class SessionExtractParamsTest {
SessionExtractParams.Options.builder()
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down Expand Up @@ -114,7 +114,7 @@ internal class SessionExtractParamsTest {
SessionExtractParams.Options.builder()
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down Expand Up @@ -146,7 +146,7 @@ internal class SessionExtractParamsTest {
SessionExtractParams.Options.builder()
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal class SessionObserveParamsTest {
SessionObserveParams.Options.builder()
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down Expand Up @@ -74,7 +74,7 @@ internal class SessionObserveParamsTest {
SessionObserveParams.Options.builder()
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down Expand Up @@ -132,7 +132,7 @@ internal class SessionObserveParamsTest {
SessionObserveParams.Options.builder()
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down Expand Up @@ -172,7 +172,7 @@ internal class SessionObserveParamsTest {
SessionObserveParams.Options.builder()
.model(
ModelConfig.builder()
.modelName("openai/gpt-5-nano")
.modelName("openai/gpt-5.4-mini")
.apiKey("sk-some-openai-api-key")
.baseUrl("https://api.openai.com/v1")
.headers(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ internal class SessionStartParamsTest {
fun create() {
SessionStartParams.builder()
.xStreamResponse(SessionStartParams.XStreamResponse.TRUE)
.modelName("openai/gpt-4o")
.modelName("openai/gpt-5.4-mini")
.actTimeoutMs(0.0)
.browser(
SessionStartParams.Browser.builder()
Expand Down Expand Up @@ -164,7 +164,7 @@ internal class SessionStartParamsTest {
val params =
SessionStartParams.builder()
.xStreamResponse(SessionStartParams.XStreamResponse.TRUE)
.modelName("openai/gpt-4o")
.modelName("openai/gpt-5.4-mini")
.actTimeoutMs(0.0)
.browser(
SessionStartParams.Browser.builder()
Expand Down Expand Up @@ -320,7 +320,7 @@ internal class SessionStartParamsTest {

@Test
fun headersWithoutOptionalFields() {
val params = SessionStartParams.builder().modelName("openai/gpt-4o").build()
val params = SessionStartParams.builder().modelName("openai/gpt-5.4-mini").build()

val headers = params._headers()

Expand All @@ -332,7 +332,7 @@ internal class SessionStartParamsTest {
val params =
SessionStartParams.builder()
.xStreamResponse(SessionStartParams.XStreamResponse.TRUE)
.modelName("openai/gpt-4o")
.modelName("openai/gpt-5.4-mini")
.actTimeoutMs(0.0)
.browser(
SessionStartParams.Browser.builder()
Expand Down Expand Up @@ -483,7 +483,7 @@ internal class SessionStartParamsTest {

val body = params._body()

assertThat(body.modelName()).isEqualTo("openai/gpt-4o")
assertThat(body.modelName()).isEqualTo("openai/gpt-5.4-mini")
assertThat(body.actTimeoutMs()).contains(0.0)
assertThat(body.browser())
.contains(
Expand Down Expand Up @@ -632,10 +632,10 @@ internal class SessionStartParamsTest {

@Test
fun bodyWithoutOptionalFields() {
val params = SessionStartParams.builder().modelName("openai/gpt-4o").build()
val params = SessionStartParams.builder().modelName("openai/gpt-5.4-mini").build()

val body = params._body()

assertThat(body.modelName()).isEqualTo("openai/gpt-4o")
assertThat(body.modelName()).isEqualTo("openai/gpt-5.4-mini")
}
}
Loading
Loading