Repository navigation
Conversation
Keep standalone tracing local, support caller-owned OpenTelemetry, and make shutdown/reinitialization safe without resetting globals. Cover lifecycle and decoded OTLP behavior at the OpenTelemetry floor and current versions. Co-Authored-By: Claude Code <noreply@anthropic.com>
Write the service.name resource key directly instead of importing ResourceAttributes from opentelemetry-semconv 1.23.1-alpha. Spring Boot applications with Micrometer's OpenTelemetry bridge resolve semconv 1.32.0, where that class no longer exists, so TraceAI.init failed with NoClassDefFoundError on Boot 3.5 and 4.1. Co-Authored-By: Claude Code <noreply@anthropic.com>
…AI or global registration The starter only configures FITracer, so it no longer depends on the retired traceai-spring-ai wrapper or the Spring AI 1.0.0-M4 milestone. When traceai.base-url and traceai.api-key (or FI_BASE_URL/FI_API_KEY) are set, or the console exporter is enabled, the starter keeps owning a TraceAI provider as before, without registering it globally. Otherwise it reuses the application's OpenTelemetry or TracerProvider bean, such as Spring Boot's native tracing, adding no provider, exporter or processor, and warns about ignored export settings. Closing the context flushes only a starter-owned provider; existing TraceAI singletons and custom FITracer beans stay application-owned. Add context, lifecycle and localhost OTLP tests, plus a CI matrix that runs the installed starter with the Spring Boot 3.2.1, 3.5.16 and 4.1.2 BOMs and their native tracing. Co-Authored-By: Claude Code <noreply@anthropic.com>
This was referenced Nov 1, 2026
Co-Authored-By: Claude Code <noreply@anthropic.com>
Exercise actual OpenAI calls and plain/gzip OTLP export under Boot 3.2.1, 3.5.16 and 4.1.2. Import the OkHttp BOM in documented OpenAI consumers and keep installed-JAR compatibility tests on the current release version. Co-Authored-By: Claude Code <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Keep
traceai-spring-boot-starteras Spring Boot configuration forFITracer, not framework instrumentation.traceai-spring-ai/ Spring AI milestone coupling.OpenTelemetryorTracerProviderbean. Do not add another provider/exporter or close the application's SDK.TraceAI.init(...)singletons and customFITracerbeans. Starter-owned providers no longer register globally and are flushed on context shutdown.ResourceAttributesdependency, which fails under Boot's newer semantic-convention dependencies.Recall-review repair
The Boot 4 transport repair is now included in this PR, not just a local worktree:
okhttp-bom:5.3.2. Without this, Boot 4.1.2 selects OkHttp 5 alongside the older OpenAI SDK's Okio 3.6 and real requests fail withNoSuchMethodError: okio.Socket okio.Okio.socket(java.net.Socket).OpenAITransportTestperforms real OpenAI SDK requests and decodes plain/gzip OTLP protobuf over loopback. It checks authentication headers, project resource, token counts, input/output hiding, native parentage, shutdown flush and exactly-once export.devat7cb1d3e4normally, preserving both the core/starter and native Anthropic CI jobs. No force push.Fresh validation
Runtime tests ran offline under a macOS sandbox denying outbound traffic except loopback, with an isolated home/cache, cleared environment and synthetic credentials. No model-provider or Future AGI Cloud requests were made.
NoSuchMethodError.clean verify: 345 discovered, 240 passed, 105 credential-gated skips, zero failures/errors.git diff --checkpassed.The consumer checks use locally rebuilt 1.0.1 JARs, not the existing Central artifacts. Remote CI for this updated head is separate from the old head's green checks.
Merge dependencies
Documentation / release follow-up
No docs PR yet. Maven Central now has
traceai-spring-boot-starter:1.0.1, but its published POM still contains the old Spring AI dependency; these starter changes are not released. The held page must replaceRELEASED_VERSIONand validate the newly published artifacts before a docs PR. No registry publication, tag, merge or workflow dispatch is part of this change.E2E: no product
e2e/harness applies. Spring contexts, installed-JAR consumers, real SDK transport and decoded loopback OTLP cover this integration.🤖 Generated with Claude Code