Skip to content

Commit 0ad3c5d

Browse files
committed
chore: bump sdk-java for API spec 0.99.1 operationId normalization
Bump sdk to 0.8.0, which follows the spec's 16 operationId renames (no request/response shape changes) and renames its own QTSurfer.auth(...) / AuthenticatedClient.auth(...) facade to authenticate(...). Update the two call sites in Main.java accordingly and sync native-image reflect-config.json entries for the generated classes that were renamed alongside their operationIds (PrepareRequest, ExecuteBacktestRequest, CancelBacktest200Response, GetStrategy200Response, CompileStrategy200Response). Bump 0.6.0 -> 0.7.0.
1 parent a6a101e commit 0ad3c5d

5 files changed

Lines changed: 20 additions & 13 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66

77
## [Unreleased]
88

9+
## [0.7.0] — 2026-07-18
10+
11+
### Changed 🔄
12+
13+
- Bumped `com.qtsurfer:sdk-java` to `0.8.0` (API spec 0.99.1, 16 operationId renames — no request/response shape, field, or endpoint changes). `sdk-java`'s own entry point is renamed as part of that: `QTSurfer.auth(...)``QTSurfer.authenticate(...)`. Updated the server's single auth-mint call site (`Main.authenticate(...)`, internal) accordingly. No change to any MCP tool's input or output contract.
14+
- Registered the renamed generated model classes in the GraalVM `reflect-config.json` (`CancelExecution200Response``CancelBacktest200Response`, `GetStrategyStatus200Response``GetStrategy200Response`, `PostStrategy200Response``CompileStrategy200Response`, `ExecuteBacktestingRequest``ExecuteBacktestRequest`, `PrepareBacktestingRequest``PrepareRequest`, plus their nested enums) so the native binary keeps deserializing/instantiating these types after the rename.
15+
916
## [0.6.0] — 2026-07-11
1017

1118
### Changed 🔄

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>com.qtsurfer</groupId>
77
<artifactId>mcp-java</artifactId>
8-
<version>0.6.0</version>
8+
<version>0.7.0</version>
99
<packaging>jar</packaging>
1010
<name>qtsurfer-mcp-java</name>
1111

@@ -34,7 +34,7 @@
3434
<maven.compiler.release>${java.version}</maven.compiler.release>
3535
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3636
<mcp.version>1.1.2</mcp.version>
37-
<sdk.version>0.7.0</sdk.version>
37+
<sdk.version>0.8.0</sdk.version>
3838
<slf4j.version>2.0.16</slf4j.version>
3939
<logback.version>1.5.11</logback.version>
4040
<junit.version>5.11.4</junit.version>

src/main/java/com/qtsurfer/mcp/Main.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
* <h2>Authentication</h2>
3737
* The server reads a long-lived API key from {@code QTSURFER_APIKEY} (or the
3838
* {@code --apikey} flag) and exchanges it for a short-lived JWT via
39-
* {@link QTSurfer#auth(String)}. The SDK transparently refreshes the JWT on
39+
* {@link QTSurfer#authenticate(String)}. The SDK transparently refreshes the JWT on
4040
* expiry for the lifetime of the process, so the MCP server can run for days
4141
* without manual rotation.
4242
*
@@ -125,7 +125,7 @@ static int run(String[] args) {
125125
static AuthenticatedClient authenticate(String apikey, String baseUrl) {
126126
authCount.incrementAndGet();
127127
AuthOptions opts = AuthOptions.builder().baseUrl(baseUrl).build();
128-
return QTSurfer.auth(apikey, opts);
128+
return QTSurfer.authenticate(apikey, opts);
129129
}
130130

131131
/**

src/main/resources/META-INF/native-image/com.qtsurfer/mcp-java/reflect-config.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -277,13 +277,13 @@
277277
"allDeclaredFields": true
278278
},
279279
{
280-
"name": "com.qtsurfer.api.client.model.CancelExecution200Response",
280+
"name": "com.qtsurfer.api.client.model.CancelBacktest200Response",
281281
"allDeclaredConstructors": true,
282282
"allDeclaredMethods": true,
283283
"allDeclaredFields": true
284284
},
285285
{
286-
"name": "com.qtsurfer.api.client.model.CancelExecution200Response$StatusEnum",
286+
"name": "com.qtsurfer.api.client.model.CancelBacktest200Response$StatusEnum",
287287
"allDeclaredConstructors": true,
288288
"allDeclaredMethods": true,
289289
"allDeclaredFields": true
@@ -331,19 +331,19 @@
331331
"allDeclaredFields": true
332332
},
333333
{
334-
"name": "com.qtsurfer.api.client.model.ExecuteBacktestingRequest",
334+
"name": "com.qtsurfer.api.client.model.ExecuteBacktestRequest",
335335
"allDeclaredConstructors": true,
336336
"allDeclaredMethods": true,
337337
"allDeclaredFields": true
338338
},
339339
{
340-
"name": "com.qtsurfer.api.client.model.GetStrategyStatus200Response",
340+
"name": "com.qtsurfer.api.client.model.GetStrategy200Response",
341341
"allDeclaredConstructors": true,
342342
"allDeclaredMethods": true,
343343
"allDeclaredFields": true
344344
},
345345
{
346-
"name": "com.qtsurfer.api.client.model.GetStrategyStatus200Response$StatusEnum",
346+
"name": "com.qtsurfer.api.client.model.GetStrategy200Response$StatusEnum",
347347
"allDeclaredConstructors": true,
348348
"allDeclaredMethods": true,
349349
"allDeclaredFields": true
@@ -391,19 +391,19 @@
391391
"allDeclaredFields": true
392392
},
393393
{
394-
"name": "com.qtsurfer.api.client.model.PostStrategy200Response",
394+
"name": "com.qtsurfer.api.client.model.CompileStrategy200Response",
395395
"allDeclaredConstructors": true,
396396
"allDeclaredMethods": true,
397397
"allDeclaredFields": true
398398
},
399399
{
400-
"name": "com.qtsurfer.api.client.model.PrepareBacktestingRequest",
400+
"name": "com.qtsurfer.api.client.model.PrepareRequest",
401401
"allDeclaredConstructors": true,
402402
"allDeclaredMethods": true,
403403
"allDeclaredFields": true
404404
},
405405
{
406-
"name": "com.qtsurfer.api.client.model.PrepareBacktestingRequest$CadenceEnum",
406+
"name": "com.qtsurfer.api.client.model.PrepareRequest$CadenceEnum",
407407
"allDeclaredConstructors": true,
408408
"allDeclaredMethods": true,
409409
"allDeclaredFields": true

src/test/java/com/qtsurfer/mcp/MainTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* Unit tests for the {@link Main} entry-point startup paths that don't require
1414
* a live backend: --help, --stub, and the fail-fast-on-missing-apikey path.
1515
*
16-
* <p>Live {@code QTSurfer.auth(...)} is not exercised here — that's covered
16+
* <p>Live {@code QTSurfer.authenticate(...)} is not exercised here — that's covered
1717
* by the SDK's own test suite. We only assert that {@link Main#run(String[])}
1818
* surfaces a clear error and returns a non-zero exit code when no API key
1919
* is available.

0 commit comments

Comments
 (0)