Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 0 additions & 10 deletions .claude/settings.local.json

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Lint

on:
push:
branches: [main]
branches: [main, develop]
pull_request:
branches: [main]
branches: [main, develop]

jobs:
golangci:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Tests

on:
push:
branches: [main]
branches: [main, develop]
pull_request:
branches: [main]
branches: [main, develop]

jobs:
test:
Expand Down
15 changes: 15 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
linters:
enable-all: false
enable:
- errcheck
- gosimple
- govet
- ineffassign
- staticcheck
- unused

issues:
exclude-rules:
- path: _test\.go
linters:
- errcheck
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.8.4] - 2026-03-22

### Fixed

- `Scope.ApplyToEntry` no longer mutates the caller's `Metadata` map when the scope has a user but no scope-level metadata
- `otelexport`: completed span trace IDs are now correctly preserved; an ambient active span in the exporter context can no longer override them
- `retry.Do` now drains the response body and returns an error when retries are exhausted on a retryable HTTP status (was returning `nil` error with an open body)
- `tryExtractPkgErrorsStack` no longer panics when an error interface holds a nil concrete pointer
- Client-level event processor slice is now safely copied under lock before iteration, preventing a data race with concurrent `AddEventProcessor` calls
- `Client.Options()` Tags map is now copied inside the read lock, preventing a race if the caller mutates the original map concurrently
- `EnvironmentIntegration` processor copies the metadata map before adding the `runtime` key instead of mutating the entry's existing map
- `Hub.Init` flush timeout now correctly uses `client.Options().FlushTimeout` instead of a hardcoded value

### Changed

- `Client` log methods (`Debug`, `Info`, `Warn`, `Error`, `Critical`) now return `EventID` instead of `error`, consistent with the `Hub` API
- `ClientOptions.AttachStacktrace` changed from `bool` to `*bool`; use the new `Bool(v)` helper to set it explicitly and distinguish `false` from the zero value
- `retry.Do` returns an error (instead of `(resp, nil)`) when the maximum retry count is exhausted on a retryable HTTP status

### Removed

- `Scope.SetTags` and `Scope.SetMetadata` removed (use `SetTag` and pass metadata directly to log methods)
- `HasHubOnContext` removed (use `GetHubFromContext(ctx) != nil` directly)

## [0.1.0] - 2026-01-13

### Added
Expand All @@ -28,4 +52,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Quick start guide
- Framework integrations guide

[0.8.4]: https://github.com/logtide-dev/logtide-sdk-go/releases/tag/v0.8.4
[0.1.0]: https://github.com/logtide-dev/logtide-sdk-go/releases/tag/v0.1.0
Loading
Loading