Skip to content

chore(deps): bump go.opentelemetry.io/otel/sdk from 1.24.0 to 1.40.0 in /integration-tests/gozero-demo in the go_modules group across 1 directory#12

Merged
spencercjh merged 1 commit intomainfrom
dependabot/go_modules/integration-tests/gozero-demo/go_modules-6b971a9d7e
Mar 8, 2026
Merged

chore(deps): bump go.opentelemetry.io/otel/sdk from 1.24.0 to 1.40.0 in /integration-tests/gozero-demo in the go_modules group across 1 directory#12
spencercjh merged 1 commit intomainfrom
dependabot/go_modules/integration-tests/gozero-demo/go_modules-6b971a9d7e

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Mar 7, 2026

Bumps the go_modules group with 1 update in the /integration-tests/gozero-demo directory: go.opentelemetry.io/otel/sdk.

Updates go.opentelemetry.io/otel/sdk from 1.24.0 to 1.40.0

Changelog

Sourced from go.opentelemetry.io/otel/sdk's changelog.

[1.40.0/0.62.0/0.16.0] 2026-02-02

Added

  • Add AlwaysRecord sampler in go.opentelemetry.io/otel/sdk/trace. (#7724)
  • Add Enabled method to all synchronous instrument interfaces (Float64Counter, Float64UpDownCounter, Float64Histogram, Float64Gauge, Int64Counter, Int64UpDownCounter, Int64Histogram, Int64Gauge,) in go.opentelemetry.io/otel/metric. This stabilizes the synchronous instrument enabled feature, allowing users to check if an instrument will process measurements before performing computationally expensive operations. (#7763)
  • Add go.opentelemetry.io/otel/semconv/v1.39.0 package. The package contains semantic conventions from the v1.39.0 version of the OpenTelemetry Semantic Conventions. See the migration documentation for information on how to upgrade from go.opentelemetry.io/otel/semconv/v1.38.0. (#7783, #7789)

Changed

  • Improve the concurrent performance of HistogramReservoir in go.opentelemetry.io/otel/sdk/metric/exemplar by 4x. (#7443)
  • Improve the concurrent performance of FixedSizeReservoir in go.opentelemetry.io/otel/sdk/metric/exemplar. (#7447)
  • Improve performance of concurrent histogram measurements in go.opentelemetry.io/otel/sdk/metric. (#7474)
  • Improve performance of concurrent synchronous gauge measurements in go.opentelemetry.io/otel/sdk/metric. (#7478)
  • Add experimental observability metrics in go.opentelemetry.io/otel/exporters/stdout/stdoutmetric. (#7492)
  • Exporter in go.opentelemetry.io/otel/exporters/prometheus ignores metrics with the scope go.opentelemetry.io/contrib/bridges/prometheus. This prevents scrape failures when the Prometheus exporter is misconfigured to get data from the Prometheus bridge. (#7688)
  • Improve performance of concurrent exponential histogram measurements in go.opentelemetry.io/otel/sdk/metric. (#7702)
  • The rpc.grpc.status_code attribute in the experimental metrics emitted from go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc is replaced with the rpc.response.status_code attribute to align with the semantic conventions. (#7854)
  • The rpc.grpc.status_code attribute in the experimental metrics emitted from go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc is replaced with the rpc.response.status_code attribute to align with the semantic conventions. (#7854)

Fixed

  • Fix bad log message when key-value pairs are dropped because of key duplication in go.opentelemetry.io/otel/sdk/log. (#7662)
  • Fix DroppedAttributes on Record in go.opentelemetry.io/otel/sdk/log to not count the non-attribute key-value pairs dropped because of key duplication. (#7662)
  • Fix SetAttributes on Record in go.opentelemetry.io/otel/sdk/log to not log that attributes are dropped when they are actually not dropped. (#7662)
  • Fix missing request.GetBody in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp to correctly handle HTTP/2 GOAWAY frame. (#7794)
  • WithHostID detector in go.opentelemetry.io/otel/sdk/resource to use full path for ioreg command on Darwin (macOS). (#7818)

Deprecated

[1.39.0/0.61.0/0.15.0/0.0.14] 2025-12-05

Added

  • Greatly reduce the cost of recording metrics in go.opentelemetry.io/otel/sdk/metric using hashing for map keys. (#7175)
  • Add WithInstrumentationAttributeSet option to go.opentelemetry.io/otel/log, go.opentelemetry.io/otel/metric, and go.opentelemetry.io/otel/trace packages. This provides a concurrent-safe and performant alternative to WithInstrumentationAttributes by accepting a pre-constructed attribute.Set. (#7287)
  • Add experimental observability for the Prometheus exporter in go.opentelemetry.io/otel/exporters/prometheus. Check the go.opentelemetry.io/otel/exporters/prometheus/internal/x package documentation for more information. (#7345)
  • Add experimental observability metrics in go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc. (#7353)
  • Add temporality selector functions DeltaTemporalitySelector, CumulativeTemporalitySelector, LowMemoryTemporalitySelector to go.opentelemetry.io/otel/sdk/metric. (#7434)
  • Add experimental observability metrics for simple log processor in go.opentelemetry.io/otel/sdk/log. (#7548)
  • Add experimental observability metrics in go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc. (#7459)

... (truncated)

Commits
  • a3a5317 Release v1.40.0 (#7859)
  • 77785da chore(deps): update github/codeql-action action to v4.32.1 (#7858)
  • 56fa1c2 chore(deps): update module github.com/clipperhouse/uax29/v2 to v2.5.0 (#7857)
  • 298cbed Upgrade semconv use to v1.39.0 (#7854)
  • 3264bf1 refactor: modernize code (#7850)
  • fd5d030 chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.27...
  • 8d3b4cb chore(deps): update actions/cache action to v5.0.3 (#7847)
  • 91f7cad chore(deps): update github.com/timakin/bodyclose digest to 73d1f95 (#7845)
  • fdad1eb chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2 to v2.27...
  • c46d3ba chore(deps): update golang.org/x/telemetry digest to fcf36f6 (#7843)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps the go_modules group with 1 update in the /integration-tests/gozero-demo directory: [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go).


Updates `go.opentelemetry.io/otel/sdk` from 1.24.0 to 1.40.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-go@v1.24.0...v1.40.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.40.0
  dependency-type: indirect
  dependency-group: go_modules
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file go Pull requests that update go code labels Mar 7, 2026
@spencercjh spencercjh merged commit 6493aa0 into main Mar 8, 2026
4 checks passed
@spencercjh spencercjh deleted the dependabot/go_modules/integration-tests/gozero-demo/go_modules-6b971a9d7e branch March 8, 2026 10:58
spencercjh added a commit that referenced this pull request Mar 30, 2026
Review feedback addressed:
- CustomProvider: use p.name instead of hardcoded CustomProviderName in error messages
- StreamWriter: optimize bytes.Contains to bytes.IndexByte for hot path
- E2E tests: handle enrich.enabled=false config, pass --custom-api-key-env for custom provider
- Design doc: fix StreamWriter file path, update Stream to *bool type, correct prefix casing

Fixes review comments #11, #12, #13, #16, #17 on PR #57

Signed-off-by: caijiahao <caijh@inesa.com>
Signed-off-by: spencercjh <spencercjh@gmail.com>
spencercjh added a commit that referenced this pull request Mar 30, 2026
* docs: add Phase 4.1 Streaming design document

Design P4.1: Real-time streaming support for LLM enrichment

Key features:
- Option pattern for Provider interface (WithStreamingFunc)
- StreamWriter for thread-safe output with batch prefix
- Concurrent processing with mutex-protected output
- CLI flag --no-stream to disable streaming (enabled by default)

Signed-off-by: spencercjh <spencercjh@gmail.com>

* docs: add P4.1 Streaming implementation plan

8 tasks with TDD approach:
1. Provider interface refactoring (Option pattern)
2. StreamWriter implementation
3. Provider streaming implementation
4. BatchProcessor streaming integration
5. Enricher streaming support
6. CLI integration (--no-stream flag)
7. Integration testing
8. Final verification

Signed-off-by: spencercjh <spencercjh@gmail.com>

* feat(provider): add Option pattern for streaming support

- Add GenerateOptions, Option, WithStreamingFunc, applyOptions
- Update Provider interface to accept ...Option
- Update all provider implementations with new signature (streaming logic in next commit)

Signed-off-by: spencercjh <spencercjh@gmail.com>

* feat(processor): add StreamWriter for thread-safe streaming output

- StreamWriter with mutex-protected writes
- WriteWithPrefix adds batch type prefix
- Tested for concurrent access safety

Signed-off-by: spencercjh <spencercjh@gmail.com>

* feat(provider): add streaming support to all providers

- Replace GenerateFromSinglePrompt with GenerateContent
- Pass StreamingFunc to langchaingo via llms.WithStreamingFunc
- Return content from response.Choices for non-streaming callers

Signed-off-by: spencercjh <spencercjh@gmail.com>

* feat(processor): integrate streaming into BatchProcessor

- Add StreamWriter field and WithStreamWriter option
- Pass streaming callback to provider with batch type prefix
- Update NewBatchProcessor to accept functional options

Task 4 of P4.1 streaming implementation

Signed-off-by: spencercjh <spencercjh@gmail.com>

* feat(enricher): add Stream option to EnrichOptions

- Add Stream (bool) and Writer (io.Writer) to EnrichOptions
- Create StreamWriter when streaming is enabled
- Default: streaming enabled to os.Stdout

Signed-off-by: spencercjh <spencercjh@gmail.com>

* feat(cli): add --no-stream flag to enrich command

- Streaming enabled by default
- Use --no-stream to disable and wait for complete response

Signed-off-by: spencercjh <spencercjh@gmail.com>

* test(enricher): add streaming integration test

- Test that streaming callback is invoked
- Test that StreamWriter output contains batch prefix [api]

Signed-off-by: spencercjh <spencercjh@gmail.com>

* style(enricher): fix whitespace alignment

Signed-off-by: spencercjh <spencercjh@gmail.com>

* fix(batch): update streaming function to ignore context parameter

Signed-off-by: spencercjh <spencercjh@gmail.com>

* fix(processor): add nil check to NewStreamWriter

Prevent runtime panic by validating writer parameter is not nil.
Add test to verify panic behavior with nil writer.

Signed-off-by: spencercjh <spencercjh@gmail.com>

* test(enricher): add test for Stream: false path

Add TestEnricher_WithStreamingDisabled to verify that no streaming
callback is passed to the provider when Stream option is disabled.

Signed-off-by: spencercjh <spencercjh@gmail.com>

* test(processor): add streaming callback verification in batch tests

Add TestBatchProcessor_ProcessBatch_WithStreaming to verify that
streaming callback is properly invoked when StreamWriter is configured.

Signed-off-by: spencercjh <spencercjh@gmail.com>

* feat(processor): add chunk buffering to StreamWriter

- Add buffer accumulation for streaming chunks
- Auto-flush on newline, buffer threshold, or prefix change
- Add WithFlushThreshold option for configurable buffering
- Add Flush method for explicit buffer clearing
- Update enricher to flush StreamWriter after processing
- Add tests for buffering behavior

Signed-off-by: spencercjh <spencercjh@gmail.com>

* feat(processor): add streaming debug logging and metrics

- Add StreamWriterMetrics struct to track streaming statistics
- Add GetMetrics() method for retrieving metrics
- Add WithDebug option for enabling debug logging
- Add WithFlushThreshold option for configurable buffering
- Track total chunks, bytes, flushes, and unique prefixes
- Debug logging shows chunk details and flush events

Signed-off-by: spencercjh <spencercjh@gmail.com>

* style: fix formatting issues from golangci-lint

Signed-off-by: spencercjh <spencercjh@gmail.com>

* docs: clarify make verify usage in CLAUDE.md

Explain that make verify checks for uncommitted changes and should only
be used after committing. Recommend individual commands (make fmt, lint,
test) before committing to avoid false failures from git diff check.

Signed-off-by: spencercjh <spencercjh@gmail.com>

* test(e2e): add conditional enrich E2E tests with streaming verification

- Add skipIfNoConfig helper to skip tests without valid E2E config
- Check for .spec-forge.e2e.local.yaml or .spec-forge.local.yaml
- Verify API key environment variable is set before running
- Test streaming output with prefix verification ([api], [schema], [param])
- Test --no-stream flag disables streaming prefixes
- Test local config file loading mechanism
- Add .spec-forge.e2e.example.yaml as configuration template
- Update .gitignore to exclude E2E local configs

Signed-off-by: spencercjh <spencercjh@gmail.com>

* test(e2e): add conditional enrich E2E tests with streaming verification

- Add loadE2EConfig helper to load config from integration-tests/.spec-forge.e2e.local.yaml
- Skip tests gracefully if no valid config found (file missing or API key env not set)
- Add TestE2E_Enrich_NoStreamFlag to verify --no-stream disables streaming prefixes
- Add TestE2E_Enrich_WithStreaming to test real LLM enrichment with streaming output
- Add TestE2E_Enrich_WithLocalConfig to test local config file loading
- Add .spec-forge.e2e.example.yaml as configuration template
- Update .gitignore to exclude integration-tests/.spec-forge.e2e.local.yaml
- Document E2E enrich test setup in integration-tests/README.md

Signed-off-by: spencercjh <spencercjh@gmail.com>

* test(e2e): fix enrich E2E tests for streaming verification

- Remove streaming prefix check in stdout (StreamWriter writes to os.Stdout directly, not Cobra's buffer)
- Remove TestE2E_Enrich_WithLocalConfig (tests Viper config loading, not enrich logic)
- Verify enrichment by checking the output spec file contains descriptions
- Update README to document only the two streaming-related tests
- All tests pass:
  - TestE2E_Enrich_Help: PASS
  - TestE2E_Enrich_MissingArgs: PASS
  - TestE2E_Enrich_NonExistentFile: PASS
  - TestE2E_Enrich_NoStreamFlag: SKIP (requires config)
  - TestE2E_Enrich_WithStreaming: PASS (with config) / SKIP (without config)

Signed-off-by: spencercjh <spencercjh@gmail.com>

* fix(provider): satisfy goconst in anthropic and custom providers

Agent-Logs-Url: https://github.com/spencercjh/spec-forge/sessions/be20b0d1-0dc2-45c4-adc4-b2bec21a9a95

Co-authored-by: spencercjh <29922079+spencercjh@users.noreply.github.com>

* fix(review): address PR review feedback for P4.1 streaming

- Change EnrichOptions.Stream to *bool (tri-state) to avoid backwards
  compatibility issues with zero value of bool (false). Now nil means
  use default (true), explicit false/true overrides.
- Add error return when LLM providers return empty choices to prevent
  silent enrichment failures (OpenAI, Anthropic, Ollama, Custom).
- Fix comment in batch.go to reflect lowercase prefix values.
- Remove stale TestE2E_Enrich_WithLocalConfig entry from README table.
- Make E2E test assertion language-agnostic (check for non-empty
  descriptions instead of specific Chinese text).

Signed-off-by: spencercjh <spencercjh@gmail.com>

* fix(review): address additional PR review feedback for P4.1 streaming

Review feedback addressed:
- CustomProvider: use p.name instead of hardcoded CustomProviderName in error messages
- StreamWriter: optimize bytes.Contains to bytes.IndexByte for hot path
- E2E tests: handle enrich.enabled=false config, pass --custom-api-key-env for custom provider
- Design doc: fix StreamWriter file path, update Stream to *bool type, correct prefix casing

Fixes review comments #11, #12, #13, #16, #17 on PR #57

Signed-off-by: caijiahao <caijh@inesa.com>
Signed-off-by: spencercjh <spencercjh@gmail.com>

* fix(review): address third round of Copilot review feedback for P4.1

Review feedback addressed:
- factory.go: use AnthropicProviderName and CustomProviderName constants instead of string literals
- design doc: update EnrichOptions summary to reflect actual API (Stream *bool, Writer io.Writer)
- design doc: fix data flow example to use lowercase prefix [api] instead of [API]
- stream_writer.go: validate WithFlushThreshold to use DefaultFlushThreshold for zero/negative values
- e2e_enrich_test.go: pass --timeout flag when configured in E2E config

Fixes review comments #21-26 on PR #57

Signed-off-by: caijiahao <caijh@inesa.com>
Signed-off-by: spencercjh <spencercjh@gmail.com>

* fix(review): address fourth round of Copilot review feedback

Review feedback addressed:
- e2e_enrich_test.go: change Enabled to *bool to distinguish between
  "not set" (nil, run tests) and "explicitly false" (skip tests)
- README.md: update skip message path to match actual output
- batch.go: add Flush() call after each LLM call to ensure buffered
  streaming output is visible for short responses

Note: #30 (streaming to os.Stdout) is intentional design for real-time
terminal feedback and not changed.

Fixes review comments #27-29 on PR #57

Signed-off-by: caijiahao <caijh@inesa.com>
Signed-off-by: spencercjh <spencercjh@gmail.com>

* fix(review): address fifth round of Copilot review feedback

Review feedback addressed:
- e2e_enrich_test.go: match API key env var logic to CLI behavior
  (OPENAI_API_KEY, ANTHROPIC_API_KEY, or LLM_API_KEY for custom)
- e2e_enrich_test.go: use YAML parsing for provider-agnostic assertions
  instead of language-specific substring matching
- design doc: update output example to show actual raw JSON streaming
  behavior instead of hypothetical human-readable text

Note: #32 (streaming writes to os.Stdout) is intentional design for
real-time terminal feedback - already addressed in #30 response.

Fixes review comments #31, #33, #34 on PR #57

Signed-off-by: caijiahao <caijh@inesa.com>
Signed-off-by: spencercjh <spencercjh@gmail.com>

* fix(enricher,stream_writer): improve error handling and metrics updates

Signed-off-by: spencercjh <spencercjh@gmail.com>

* feat(batch): add streaming support and improve processing logic

Signed-off-by: spencercjh <spencercjh@gmail.com>

* fix(review): address Copilot review feedback - streaming, concurrency, docs

- Remove redundant atomic ops in StreamWriter, use mutex-only sync
- Handle short writes in flushLocked()
- Change final Flush error to warning (streaming is ancillary)
- Streaming mode processes batches sequentially for readable output
- --no-stream enables concurrent processing (--concurrency applies)
- Update flag descriptions, config comments, design doc, CLAUDE.md

Signed-off-by: spencercjh <spencercjh@gmail.com>

---------

Signed-off-by: spencercjh <spencercjh@gmail.com>
Signed-off-by: caijiahao <caijh@inesa.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: spencercjh <29922079+spencercjh@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file go Pull requests that update go code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant