diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ece5272..1345e6f 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -119,7 +119,7 @@ jobs:
java-version: 17
cache: maven
- - name: Install snapshot artifacts
+ - name: Install reactor artifacts locally
run: ./mvnw -B -ntp -DskipTests -Djacoco.skip=true install
- name: Compile Spring AI consumer
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index d0e782c..f194570 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -199,9 +199,11 @@ jobs:
esac
done
- echo "release_tag=$release_tag" >> "$GITHUB_OUTPUT"
- echo "release_sha=$release_sha" >> "$GITHUB_OUTPUT"
- echo "version=$pom_version" >> "$GITHUB_OUTPUT"
+ {
+ echo "release_tag=$release_tag"
+ echo "release_sha=$release_sha"
+ echo "version=$pom_version"
+ } >> "$GITHUB_OUTPUT"
{
echo "### Release preflight"
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a517f41..b9392e6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,8 @@
# Changelog
-## [Unreleased] - 0.2.0 Production Preview
+## [Unreleased]
+
+## [0.2.0] - 2026-07-24
### Added
@@ -27,6 +29,8 @@
- The Boot 3 line now uses Spring Boot 3.5.16, Spring AI 1.0.9, OpenTelemetry 1.62.0, and Netty
4.1.136.Final; CI also covers Spring AI 1.1.8 and LangChain4j 1.18.0
- `0.2.x` remains the Boot 3/Spring AI 1 line; Boot 4/Spring AI 2 moves to `0.3.x`
+- The standalone exporter now uses the JDK HTTP sender, avoiding OkHttp and Kotlin classpath
+ conflicts with the optional `langfuse-java` prompt client
- Maven Central publication stops at `VALIDATED` for manual approval before the GitHub release is
published
diff --git a/README.md b/README.md
index 6679765..f958292 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@ or own a dedicated Langfuse exporter.
## Quick Start
-`0.2.0-SNAPSHOT` is the current production-preview development line. Build it locally with `./mvnw clean install`; use `0.1.1` when resolving only from Maven Central until 0.2.0 is released.
+`0.2.0` is the current production-preview release line.
### Spring Boot (Dedicated Exporter Quick Start)
@@ -30,7 +30,7 @@ or own a dedicated Langfuse exporter.
io.github.chomingi
langfuse-otel-spring-boot-starter
- 0.2.0-SNAPSHOT
+ 0.2.0
```
@@ -56,7 +56,7 @@ Standalone endpoints must use HTTPS. For a loopback development receiver only, p
io.github.chomingi
langfuse-otel-core
- 0.2.0-SNAPSHOT
+ 0.2.0
```
@@ -331,7 +331,8 @@ Keep this component out of liveness. Add it to readiness only when losing Langfu
- Custom concrete publisher subtypes are returned unchanged when a compatible wrapper type cannot
be preserved.
-Remaining production work is tracked in [ROADMAP.md](ROADMAP.md); `0.2.0-SNAPSHOT` is not the final production release.
+`0.2.x` remains a production-preview line. Work for later releases is tracked in
+[ROADMAP.md](ROADMAP.md).
## Compatibility
diff --git a/SECURITY.md b/SECURITY.md
index 430c07e..79eafc4 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -54,6 +54,6 @@ The standalone transport contract test also verifies that cross-origin redirects
| Version | Supported |
|---------|-----------|
| 0.2.x | Production preview; maintained from 0.2.0 |
-| 0.1.x | Security fixes until 0.2.0 is released |
+| 0.1.x | No longer supported; upgrade to 0.2.x |
When `0.3.0` moves the starter to Spring Boot 4 and Spring AI 2, `0.2.x` will remain in maintenance for six months. That window covers critical vulnerabilities and regressions owned by this library; it does not extend the support lifecycle of Spring Boot 3 or other upstream dependencies.
diff --git a/consumer-tests/core-prompt-consumer/pom.xml b/consumer-tests/core-prompt-consumer/pom.xml
index 9944004..f9c5461 100644
--- a/consumer-tests/core-prompt-consumer/pom.xml
+++ b/consumer-tests/core-prompt-consumer/pom.xml
@@ -10,7 +10,7 @@
UTF-8
11
- 0.2.0-SNAPSHOT
+ 0.2.0
5.9.3
diff --git a/examples/README.md b/examples/README.md
index 8abb091..a6e6ae4 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -1,7 +1,7 @@
# Examples
These are standalone consumer projects rather than modules in the main Maven build. Install the
-current snapshot from the repository root, then provide test credentials:
+current repository artifacts from the repository root, then provide test credentials:
```bash
./mvnw -B -ntp -DskipTests -Djacoco.skip=true install
diff --git a/examples/langchain4j-example/pom.xml b/examples/langchain4j-example/pom.xml
index 159021f..c0ebb74 100644
--- a/examples/langchain4j-example/pom.xml
+++ b/examples/langchain4j-example/pom.xml
@@ -16,7 +16,7 @@
17
2.21.5
- 0.2.0-SNAPSHOT
+ 0.2.0
diff --git a/examples/spring-ai-example/pom.xml b/examples/spring-ai-example/pom.xml
index 7be8eb0..6acb6c6 100644
--- a/examples/spring-ai-example/pom.xml
+++ b/examples/spring-ai-example/pom.xml
@@ -16,7 +16,7 @@
17
2.21.5
- 0.2.0-SNAPSHOT
+ 0.2.0
diff --git a/langfuse-otel-core/pom.xml b/langfuse-otel-core/pom.xml
index ea0cde3..cc13637 100644
--- a/langfuse-otel-core/pom.xml
+++ b/langfuse-otel-core/pom.xml
@@ -6,7 +6,7 @@
io.github.chomingi
langfuse-otel-java
- 0.2.0-SNAPSHOT
+ 0.2.0
langfuse-otel-core
diff --git a/langfuse-otel-spring-boot-starter/pom.xml b/langfuse-otel-spring-boot-starter/pom.xml
index ed70d78..be2f413 100644
--- a/langfuse-otel-spring-boot-starter/pom.xml
+++ b/langfuse-otel-spring-boot-starter/pom.xml
@@ -6,7 +6,7 @@
io.github.chomingi
langfuse-otel-java
- 0.2.0-SNAPSHOT
+ 0.2.0
langfuse-otel-spring-boot-starter
diff --git a/pom.xml b/pom.xml
index 1e3dda4..511d4e2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
io.github.chomingi
langfuse-otel-java
- 0.2.0-SNAPSHOT
+ 0.2.0
pom
langfuse-otel-java
@@ -40,7 +40,7 @@
UTF-8
- 2026-07-19T00:00:00Z
+ 2026-07-23T16:38:13Z
1.62.0
1.3.2-alpha
2.0.18