Skip to content

Releases: logtide-dev/logtide-kotlin-java

v0.8.4

19 Mar 13:18

Choose a tag to compare

Fixed

  • printVersion Gradle task now correctly reads version from gradle.properties instead of the root project (which defaulted to unspecified), fixing CI publish pipeline version check

v0.5.0

19 Mar 12:58

Choose a tag to compare

Added

  • Multi-module Project Structure: Project split into separate modules
    • logtide-core: Core SDK functionality
    • logtide-ktor: Ktor integration
    • logtide-spring: Spring Boot integration
    • logtide-jakarta: Jakarta Servlet integration
  • Jakarta Servlet Middleware: Servlet filter with automatic request/response logging
  • Spring Boot Middleware: Spring Boot interceptor with automatic request/response logging
  • Maven Publishing Automation: Automated publishing with automatic releases and conditional signing
  • Gradle Convention Plugin: Shared configuration plugin across modules
  • GitHub Templates: Bug report and feature request issue templates

Changed

  • Renamed LogWard → LogTide: All classes and packages have been renamed (breaking change)
  • Flush mechanism refactored to use Kotlin coroutines
  • Trace ID validation now accepts non-UUID identifiers
  • Serializers moved to dev.logtide.sdk.serializers package
  • Replaced println statements with logger.info calls in middleware components
  • Build configuration migrated to projectGroup and projectVersion from gradle.properties
  • Ktor plugin now uses LogTideClientOptions for configuration
  • README updated with logo, badges, and improved structure

Removed

  • autoTraceId option removed from LogTideClientOptions
  • checkVersionTag task removed from build configuration

Fixed

  • Trace ID propagation in coroutine child scopes
  • currentTraceId now uses currentCoroutineContext for correct retrieval
  • Kotlin JVM plugin properly applied in build.gradle.kts

0.4.0

02 Jan 19:02

Choose a tag to compare

Added

  • Comprehensive Test Suite: Significantly expanded test coverage from ~30% to ~75-80%
    • LogWardClientOptionsTest: 23 tests for configuration validation
    • ExceptionTest: 16 tests for exception hierarchy
    • LogWardClientHttpTest: 21 tests for HTTP flush/retry/circuit breaker with MockWebServer
    • TraceIdContextTest: 24 tests for coroutine-safe trace ID propagation
    • ModelsSerializationTest: 22 tests for JSON serialization
  • Middleware Testing: Full test coverage for all framework integrations
    • LogWardPluginTest: 19 tests for Ktor middleware
    • LogWardInterceptorTest: 18 tests for Spring Boot interceptor
    • LogWardFilterTest: 25 tests for Jakarta Servlet filter

Fixed

  • Test dependencies now properly configured for runtime (slf4j-api, slf4j-simple)
  • Framework test dependencies added (ktor-server-test-host, spring-test, jakarta.servlet-api)

Changed

  • Total test count increased from ~24 to ~192 tests
  • All middleware components now have dedicated unit and integration tests

New Contributors

Full Changelog: v0.3.0...v0.4.0

0.3.0

22 Dec 15:55

Choose a tag to compare

Added

  • Coroutine-safe Trace ID: Full support for Kotlin coroutines with proper trace ID propagation
    • TraceIdElement: A CopyableThreadContextElement that propagates trace ID across thread switches
    • withTraceIdSuspend(traceId, block): Execute suspend function with coroutine-safe trace ID
    • withNewTraceIdSuspend(block): Generate new trace ID for suspend functions
    • getTraceIdSuspend(): Get current trace ID from coroutine context
    • currentTraceId(): Top-level suspend function to get trace ID anywhere
  • Automatic Ktor Coroutine Integration: Trace ID is now automatically propagated in all Ktor route coroutines
    • Uses ApplicationCallPipeline.Call intercept to wrap requests with TraceIdElement
    • No manual wrapping needed - just use the LogWard client in your routes
    • Trace ID from X-Trace-ID header or auto-generated UUID

Changed

  • Trace ID ThreadLocal is now shared across the SDK for consistency
  • Ktor plugin now always generates a trace ID (from header or new UUID)
  • Response logging includes trace ID in metadata

Fixed

  • Trace ID no longer gets lost when coroutines switch threads
  • Trace ID properly propagates to child coroutines (launch/async)
  • Nested trace ID contexts now restore correctly

0.2.0

24 Nov 20:58

Choose a tag to compare

Middlewares changes + exposed to client