Conversation
…ecture - New Hub/Scope/Client/Transport layered architecture (sentry-go inspired) - DSN-based configuration with structured ingest URL construction - Leveled logging: Debug, Info, Warn, Error, Critical, CaptureError - Breadcrumb trail, user context, trace context per scope - OpenTelemetry span exporter integration (integrations/otelexport) - net/http middleware with per-request scope isolation (integrations/nethttp) - Internal batch engine with size- and interval-based flushing - Exponential-backoff retry with circuit breaker fault tolerance - Global singleton pattern (Init/flush) and explicit NewClient pattern - Full test suite with race detector coverage (86 tests) Bug fixes included in this release: - Scope.ApplyToEntry no longer mutates caller Metadata map - otelexport: completed span IDs preserved against ambient OTel context - retry.Do returns error (not nil) when retries exhausted on 5xx - tryExtractPkgErrorsStack nil-pointer panic guard added - Client processor slice copied under lock before iteration - EnvironmentIntegration copies metadata map before mutation
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.
This pull request introduces several improvements and cleanup tasks across the codebase, focusing on documentation, configuration, CI workflow, linting, and removing obsolete code. The most significant changes are the major rewrite and expansion of the
README.md, enhanced changelog documentation, improved linting configuration, CI workflow updates, and the removal of the obsoletebatch.goimplementation.Documentation and Changelog Improvements:
README Revamp and Expansion:
The
README.mdhas been extensively rewritten for clarity and completeness. It now provides a better overview of features, clearer installation and configuration instructions, improved usage examples, explicit documentation of the Hub/Scope model, OpenTelemetry integration, middleware support, shutdown/flush hooks, and guidance for testing and contributing. [1] [2]Changelog Update:
The
CHANGELOG.mdnow includes detailed entries for version 0.8.4, listing all fixes, changes, and removals in this release, and adds a version link for easier navigation. [1] [2]CI and Linting Enhancements:
Expanded CI Branch Coverage:
The GitHub Actions workflows for linting and testing now run on both
mainanddevelopbranches, ensuring better coverage for development workflows. (.github/workflows/lint.ymland.github/workflows/test.yml) [1] [2]Improved Linting Configuration:
The
.golangci.ymlfile is added to explicitly enable a curated set of linters and to suppresserrcheckwarnings in test files, promoting code quality and reducing noise.Codebase Cleanup:
Obsolete Code Removal:
The now-unused
batch.gofile, which implemented a batching mechanism, has been removed, likely in favor of a new or refactored batching approach elsewhere in the codebase.Local Settings Cleanup:
The
.claude/settings.local.jsonfile, which contained local permissions for running certain shell commands, has been deleted, reducing clutter and potential confusion.