Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
fda8ce2
codegen metadata
stainless-app[bot] Mar 17, 2026
7d15072
codegen metadata
stainless-app[bot] Mar 17, 2026
44c8872
codegen metadata
stainless-app[bot] Mar 17, 2026
da1a445
codegen metadata
stainless-app[bot] Mar 17, 2026
d25509f
codegen metadata
stainless-app[bot] Mar 17, 2026
ba54cc5
codegen metadata
stainless-app[bot] Mar 17, 2026
4fa1975
codegen metadata
stainless-app[bot] Mar 17, 2026
3d637e3
codegen metadata
stainless-app[bot] Mar 17, 2026
ac645bd
codegen metadata
stainless-app[bot] Mar 17, 2026
70675fc
codegen metadata
stainless-app[bot] Mar 17, 2026
3c4b961
codegen metadata
stainless-app[bot] Mar 17, 2026
b665205
codegen metadata
stainless-app[bot] Mar 17, 2026
43207f6
codegen metadata
stainless-app[bot] Mar 18, 2026
1050136
codegen metadata
stainless-app[bot] Mar 18, 2026
6fab665
chore(internal): update retry delay tests
stainless-app[bot] Mar 18, 2026
f3afdff
fix(client): allow updating header/query affecting fields in `toBuild…
stainless-app[bot] Mar 18, 2026
4601d34
codegen metadata
stainless-app[bot] Mar 18, 2026
4169ffe
codegen metadata
stainless-app[bot] Mar 18, 2026
3064bf1
codegen metadata
stainless-app[bot] Mar 18, 2026
b2ae96f
codegen metadata
stainless-app[bot] Mar 18, 2026
1d7a0af
codegen metadata
stainless-app[bot] Mar 18, 2026
0b655a5
codegen metadata
stainless-app[bot] Mar 18, 2026
edf9a89
codegen metadata
stainless-app[bot] Mar 18, 2026
6a9cb6f
codegen metadata
stainless-app[bot] Mar 18, 2026
ef65d91
codegen metadata
stainless-app[bot] Mar 18, 2026
cce3530
codegen metadata
stainless-app[bot] Mar 18, 2026
9d496ed
codegen metadata
stainless-app[bot] Mar 18, 2026
bcad371
codegen metadata
stainless-app[bot] Mar 18, 2026
1076975
codegen metadata
stainless-app[bot] Mar 18, 2026
1829d35
codegen metadata
stainless-app[bot] Mar 18, 2026
2596a51
codegen metadata
stainless-app[bot] Mar 18, 2026
81cb8b9
codegen metadata
stainless-app[bot] Mar 18, 2026
ad1822d
release: 0.12.2
stainless-app[bot] Mar 18, 2026
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 @@
{
".": "0.12.1"
".": "0.12.2"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 40
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sent%2Fsent-dm-2d0bb64dc84ba67ee91db6ff81424a968c5ddea4d2844ba67fc9b4b27881d60f.yml
openapi_spec_hash: 8e1d6bc2a6c6afef625e2bdcdf28ac63
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sent%2Fsent-dm-622d0508ba6d0dfdff958a160f8306d7425b0a517997509ffb04f237f8ebcddd.yml
openapi_spec_hash: edd7b30279dd17b02cbca5fc51e40c89
config_hash: d8e8429147c4e214ff53c11e7ab2a1a6
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Changelog

## 0.12.2 (2026-03-18)

Full Changelog: [v0.12.1...v0.12.2](https://github.com/sentdm/sent-dm-java/compare/v0.12.1...v0.12.2)

### Bug Fixes

* **client:** allow updating header/query affecting fields in `toBuilder()` ([f3afdff](https://github.com/sentdm/sent-dm-java/commit/f3afdffd2d250e961747ed0f802504b3f60184ce))


### Chores

* **internal:** update retry delay tests ([6fab665](https://github.com/sentdm/sent-dm-java/commit/6fab66502dab0aec7c4de51797fc3ab777c8ee35))

## 0.12.1 (2026-03-17)

Full Changelog: [v0.12.0...v0.12.1](https://github.com/sentdm/sent-dm-java/compare/v0.12.0...v0.12.1)
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/dm.sent/sent-dm-java)](https://central.sonatype.com/artifact/dm.sent/sent-dm-java/0.12.1)
[![javadoc](https://javadoc.io/badge2/dm.sent/sent-dm-java/0.12.1/javadoc.svg)](https://javadoc.io/doc/dm.sent/sent-dm-java/0.12.1)
[![Maven Central](https://img.shields.io/maven-central/v/dm.sent/sent-dm-java)](https://central.sonatype.com/artifact/dm.sent/sent-dm-java/0.12.2)
[![javadoc](https://javadoc.io/badge2/dm.sent/sent-dm-java/0.12.2/javadoc.svg)](https://javadoc.io/doc/dm.sent/sent-dm-java/0.12.2)

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

Expand All @@ -22,7 +22,7 @@ Use the Sent Dm MCP Server to enable AI assistants to interact with this API, al

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

The REST API documentation can be found on [docs.sent.dm](https://docs.sent.dm). Javadocs are available on [javadoc.io](https://javadoc.io/doc/dm.sent/sent-dm-java/0.12.1).
The REST API documentation can be found on [docs.sent.dm](https://docs.sent.dm). Javadocs are available on [javadoc.io](https://javadoc.io/doc/dm.sent/sent-dm-java/0.12.2).

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

Expand All @@ -33,7 +33,7 @@ The REST API documentation can be found on [docs.sent.dm](https://docs.sent.dm).
### Gradle

```kotlin
implementation("dm.sent:sent-dm-java:0.12.1")
implementation("dm.sent:sent-dm-java:0.12.2")
```

### Maven
Expand All @@ -42,7 +42,7 @@ implementation("dm.sent:sent-dm-java:0.12.1")
<dependency>
<groupId>dm.sent</groupId>
<artifactId>sent-dm-java</artifactId>
<version>0.12.1</version>
<version>0.12.2</version>
</dependency>
```

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 = "dm.sent"
version = "0.12.1" // x-release-please-version
version = "0.12.2" // x-release-please-version
}

subprojects {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -411,13 +411,14 @@ private constructor(
headers.put("X-Stainless-Runtime", "JRE")
headers.put("X-Stainless-Runtime-Version", getJavaVersion())
headers.put("X-Stainless-Kotlin-Version", KotlinVersion.CURRENT.toString())
// We replace after all the default headers to allow end-users to overwrite them.
headers.replaceAll(this.headers.build())
queryParams.replaceAll(this.queryParams.build())
apiKey.let {
if (!it.isEmpty()) {
headers.put("x-api-key", it)
headers.replace("x-api-key", it)
}
}
headers.replaceAll(this.headers.build())
queryParams.replaceAll(this.queryParams.build())

return ClientOptions(
httpClient,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,28 @@ internal class ClientOptionsTest {

private val httpClient = mock<HttpClient>()

@Test
fun putHeader_canOverwriteDefaultHeader() {
val clientOptions =
ClientOptions.builder()
.httpClient(httpClient)
.putHeader("User-Agent", "My User Agent")
.apiKey("My API Key")
.build()

assertThat(clientOptions.headers.values("User-Agent")).containsExactly("My User Agent")
}

@Test
fun toBuilder_customerApiKeyCanBeUpdated() {
var clientOptions =
ClientOptions.builder().httpClient(httpClient).apiKey("My API Key").build()

clientOptions = clientOptions.toBuilder().apiKey("another My API Key").build()

assertThat(clientOptions.headers.values("x-api-key")).containsExactly("another My API Key")
}

@Test
fun toBuilder_whenOriginalClientOptionsGarbageCollected_doesNotCloseOriginalClient() {
var clientOptions =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -400,9 +400,9 @@ internal class RetryingHttpClientTest {
assertThat(sleeper.durations).hasSize(3)
// retries=1: 0.5s * [0.75, 1.0]
assertThat(sleeper.durations[0]).isBetween(Duration.ofMillis(375), Duration.ofMillis(500))
// retries=2: 1.0s * [0.75, 1.0]
// retries=2: 1s * [0.75, 1.0]
assertThat(sleeper.durations[1]).isBetween(Duration.ofMillis(750), Duration.ofMillis(1000))
// retries=3: 2.0s * [0.75, 1.0]
// retries=3: 2s * [0.75, 1.0]
assertThat(sleeper.durations[2]).isBetween(Duration.ofMillis(1500), Duration.ofMillis(2000))
assertNoResponseLeaks()
}
Expand All @@ -427,9 +427,9 @@ internal class RetryingHttpClientTest {
assertThat(response.statusCode()).isEqualTo(503)
verify(7, postRequestedFor(urlPathEqualTo("/something")))
assertThat(sleeper.durations).hasSize(6)
// retries=5: min(0.5 * 2^4, 8) = 8.0s * [0.75, 1.0]
// retries=5: backoff hits the 8s cap * [0.75, 1.0]
assertThat(sleeper.durations[4]).isBetween(Duration.ofMillis(6000), Duration.ofMillis(8000))
// retries=6: min(0.5 * 2^5, 8) = min(16, 8) = 8.0s * [0.75, 1.0] (capped)
// retries=6: still capped at 8s * [0.75, 1.0]
assertThat(sleeper.durations[5]).isBetween(Duration.ofMillis(6000), Duration.ofMillis(8000))
assertNoResponseLeaks()
}
Expand Down
Loading