Merged
Conversation
When BOTANU_API_KEY is set and no explicit endpoint is configured, the SDK now defaults to https://ingest.botanu.ai:4318 and sets the Authorization header automatically. Also adds OTEL_EXPORTER_OTLP_ENDPOINT as a fallback and cleans up README badges. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Introduces SampledSpanProcessor that preserves the host app's existing TracerProvider sampling ratio when botanu is bootstrapped into a project that already has OpenTelemetry wired up. register.py exposes an explicit entry point so existing-OTel users can opt in without the decorator touching their provider. bootstrap.py detects a configured provider and hands off instead of overriding it. Decorators accept an optional step parameter (stored in RunContext, not yet emitted to span attributes) so multi-step workflow plumbing can land without breaking the 0.x contract -- kept backward compatible until the collector servicegraph work unblocks and we start emitting it. scripts/pre_publish_check.py is a red/green gate that builds the wheel, runs twine check, installs into a fresh venv, validates the public API surface, and runs a decorator + emit_outcome smoke test. Safe to run on Windows (ASCII markers, no unicode). Also updates CI, CodeQL, repolinter, scorecard, and release workflows plus the collector / existing-otel / installation docs to match the new bootstrap flow. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Gate OTLP bearer token on *.botanu.ai + local dev hosts so a customer-supplied OTEL_EXPORTER_OTLP_ENDPOINT cannot exfiltrate the tenant API key. Redact Authorization/x-api-key/botanu-api-key headers and user:pass URL credentials in logs. - Add workflow-level input/output capture gated by content_capture_rate + content_sampler. Writes botanu.eval.input_content / botanu.eval.output_content so the evaluator stops scoring placeholder strings. - Add set_input_content / set_output_content on LLMTracker and matching helpers on data tracking. - SampledSpanProcessor gates on_start with the same decision as on_end; forwarding on_start unconditionally orphans span bookkeeping inside wrapped processors (QUAL-C1 memory leak). - Add ResourceEnricher for deployment attributes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
No 0.1.0 tag was ever cut, so the dated 2026-02-05 entry was a fabrication. Collapse initial-release bullets into [Unreleased], drop the inaccurate "Lean mode (default)" line and stale extras list, and update the comparison link to point at main until the first real tag lands. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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
Changes
Type of change
Testing
pytest)ruff check)mypy)Checklist
git commit -s) per the DCO