Skip to content

Commit d426e7c

Browse files
authored
Release Java SDK v1.35.0 (#2867)
1 parent 3892394 commit d426e7c

1 file changed

Lines changed: 81 additions & 0 deletions

File tree

releases/v1.35.0

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# **💥 BREAKING CHANGES**
2+
3+
## `ActivityInfo` properties related to workflow execution are now nullable
4+
5+
Due to introduction of Standalone Activities feature (see below), the prior assumption that every activity has
6+
a scheduling workflow no longer holds true. As a consequence, `ActivityInfo` methods `getWorkflowId`, `getRunId`,
7+
`getWorkflowRunId`, `getWorkflowType` and `getWorkflowNamespace` are now marked `@Nullable`.
8+
9+
As long as Standalone Activities are not being used, it is safe to ignore the resulting nullability errors.
10+
However, the recommended migration path is to call `ActivityInfo.isInWorkflow()` method and handle both cases
11+
- this way the activity can be run in standalone context.
12+
13+
# **Highlights**
14+
15+
## Spring AI integration
16+
17+
The new temporal-spring-ai module makes [Spring AI](https://spring.io/projects/spring-ai) agents durable on Temporal.
18+
Chat model calls run as Temporal Activities recorded in workflow history, so they retry on transient failures and replay
19+
deterministically. Tools are dispatched per their type — `@ActivityInterface` stubs and Nexus stubs as durable operations,
20+
`@SideEffectTool` classes wrapped in `Workflow.sideEffect`, and plain tools running directly in workflow code — without
21+
changing how you write Spring AI code. Vector stores, embeddings, and MCP tool calls are auto-registered when their
22+
Spring AI modules are on the classpath. (#2829)
23+
24+
## Worker Heartbeating
25+
26+
This release adds a new feature called Worker Heartbeating. This feature spins up a single nexus-only worker per
27+
Client/Namespace in the background and periodically sends some basic metrics over to server for all of the workers
28+
registered on the same Client/Namespace. This feature is enabled by default. You can interact with the heartbeat data
29+
using CLI commands temporal worker list and temporal worker describe to query the data. (#2818)
30+
31+
## Standalone Activities (Pre-release)
32+
33+
Activities can now be started directly, independent of any workflow. Use the new `ActivityClient` class to start, fetch
34+
results, and manage lifecycle of Standalone Activity executions. Learn more at https://docs.temporal.io/standalone-activity
35+
- Java SDK specific docs coming soon.
36+
37+
Note: although the Server feature is available as Public Preview, Java SDK's implementation is currently still in
38+
pre-release stage. (#2858)
39+
40+
## gRPC Version Upgrade
41+
42+
Upgraded gRPC dependency to 1.76.0 to resolve network stream corruption issue that could happen if multiple
43+
Netty versions are present in the classpath. (#2866)
44+
45+
# **Bugfixes**
46+
47+
Provide default (empty) client config when default user config dir does not exist (#2828)
48+
49+
Add explicit opt-in flags for activity/nexus bean auto-discovery in Spring Boot (#2830)
50+
51+
Fix worker options default application overriding poller behavior (#2838)
52+
53+
# What's Changed
54+
55+
2026-04-06 - 522d6698 - Fix - provide default (empty) client config when default user config dir does not exist (#2828)
56+
2026-04-06 - 80e6a1c5 - Claude fix all docstring problems & add check to CI (#2822)
57+
2026-04-07 - 187b778e - Deprecate namespace field in ChildWorkflowOptions (#2831)
58+
2026-04-07 - 2bbf52db - Worker Heartbeating (#2818)
59+
2026-04-07 - f4a26e02 - Fix native-image CI docker build flake (#2832)
60+
2026-04-07 - f8ddd7e3 - Add doc comment saying when `SKIP_YIELD_ON_VERSION` was enabled by (#2825)
61+
2026-04-08 - 8716d220 - Add explicit opt-in flags for activity/nexus bean auto-discovery in Spring Boot (#2830)
62+
2026-04-13 - 05ee8279 - chore: bump workflowcheck asm version for latest JDK version support (#2835)
63+
2026-04-15 - dce350c0 - Fix worker options default application overriding poller behavior (#2838)
64+
2026-04-17 - 686a62d9 - Add temporal-spring-ai module (#2829)
65+
2026-04-17 - b6f4283e - Bump JDK version requirement in Gradle and CI (#2845)
66+
2026-04-18 - a9389e66 - Update and pin all GHA actions (#2847)
67+
2026-04-20 - 69bbb6e1 - Update Required Temporal Java SDK version in Spring AI README to next upcoming release (#2849)
68+
2026-04-21 - d3c157ce - Revise README for project name and preview warning (#2850)
69+
2026-04-23 - 64d5b2e9 - temporal-spring-ai: guard large media byte[] from entering workflow history (#2860)
70+
2026-04-23 - cad6172d - temporal-spring-ai: attach activity summaries for chat and MCP calls (#2852)
71+
2026-04-23 - ccaf4a62 - temporal-spring-ai: accept ActivityOptions and classify non-retryable AI errors (#2853)
72+
2026-04-24 - 87c519e6 - temporal-spring-ai: discover MCP clients by type, not by bean name (#2859)
73+
2026-04-24 - 9eae4a8c - temporal-spring-ai: add side-effect replay tests for chat, activity tools, and @SideEffectTool (#2856)
74+
2026-04-24 - c402f55f - temporal-spring-ai: README expansion and default-model-name consolidation (#2861)
75+
2026-04-24 - f109c0cc - temporal-spring-ai: preserve Usage and RateLimit in ChatResponse metadata (#2854)
76+
2026-04-27 - 79c9fe59 - temporal-spring-ai: per-model ActivityOptions registry (#2855)
77+
2026-04-27 - 911dd02c - temporal-spring-ai: pass provider-specific ChatOptions through the activity boundary (#2857)
78+
2026-04-27 - cddafe4b - Setup `contrib/` directory with CODEOWNERS that is extensible for non-SDK team extensions. (#2862)
79+
2026-04-30 - 38923947 - 💥 Standalone Activities for Java (#2858)
80+
2026-04-30 - 4b2c2941 - Update Temporal Cloud-API to v 0.14.0 (#2864)
81+
2026-04-30 - a2c6f37f - Upgraded gRPC to 1.76.0 and Guava to 33.4.8 (#2866)

0 commit comments

Comments
 (0)