Skip to content

chore(legal): replace proprietary license with Apache-2.0 and add DCO#1

Merged
deborahjacob-botanu merged 1 commit into
developerfrom
developer-deborah
Feb 5, 2026
Merged

chore(legal): replace proprietary license with Apache-2.0 and add DCO#1
deborahjacob-botanu merged 1 commit into
developerfrom
developer-deborah

Conversation

@deborahjacob-botanu
Copy link
Copy Markdown
Collaborator

Replace proprietary license with Apache License 2.0 to meet Linux Foundation AI & Data requirements for open-source project acceptance. Add NOTICE file with copyright attribution and Developer Certificate of Origin (DCO v1.1) for contribution sign-off compliance.

Replace proprietary license with Apache License 2.0 to meet
Linux Foundation AI & Data requirements for open-source project
acceptance. Add NOTICE file with copyright attribution and
Developer Certificate of Origin (DCO v1.1) for contribution
sign-off compliance.

Signed-off-by: deborahjacob-botanu <deborahjacob@botanu.ai>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@deborahjacob-botanu deborahjacob-botanu merged commit e4e34a8 into developer Feb 5, 2026
deborahjacob-botanu added a commit that referenced this pull request Apr 24, 2026
…-24 P0 #1)

Pre-change, the default install silently produced no judgeable
content: set_input_content / set_output_content / set_retrieval_content
no-op'd because their rate-gate evaluated ``random.random() < 0.0 ==
False``. The L2 evaluator judge then returned empty test cases for
every span and eval_rollups stayed ``pending`` forever. Customers
had to read the docs AND flip a config flag before the "SDK in →
eval out" loop worked.

Flipping the default to 0.10 (what the docs already recommended for
production) inverts the failure mode from silent-no-eval to loud-
content-captured-with-PII-risk. Three PII-defense layers still run
on every captured attribute:
  1. SDK in-process scrub (pii_scrub_enabled=True by default)
  2. Collector credential-regex scrub on content attribute prefixes
  3. Evaluator Presidio NER before judge calls

Changes:
- BotanuConfig.content_capture_rate default 0.0 → 0.10
- YAML loader fallback default matches (config.py:436)
- Bootstrap logs content_capture_rate at every startup; warns when
  <= 0.0 so the "why are eval rollups empty" debugging path ends
  at a startup log line, not silently-dropped helper calls.
- Tests: test_default_is_zero → test_default_is_ten_percent,
  test_env_var_invalid_ignored now expects 0.10 fallback.
- Docs: api/configuration.md table + getting-started/configuration.md
  code sample both updated.

All 150 SDK unit tests still pass.

NOTE: working-tree had one unrelated pre-existing change to
src/botanu/models/run_context.py — NOT included in this commit.

Signed-off-by: Deborah Jacob <deborah@botanu.ai>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants