Skip to content

fix(embed): distinguish omitted and empty LLM keys - #3359

Open
Sanderhoff-alt wants to merge 1 commit into
vectorize-io:mainfrom
Sanderhoff-alt:fix/embed-llm-key-inheritance
Open

fix(embed): distinguish omitted and empty LLM keys#3359
Sanderhoff-alt wants to merge 1 commit into
vectorize-io:mainfrom
Sanderhoff-alt:fix/embed-llm-key-inheritance

Conversation

@Sanderhoff-alt

@Sanderhoff-alt Sanderhoff-alt commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • default HindsightEmbedded.llm_api_key to None
  • omit the daemon config entry when the key is not provided
  • preserve an explicit empty string for local LLM services without authentication

Problem

HindsightEmbedded previously defaulted llm_api_key to an empty string and always forwarded it to the daemon. Constructing the client without a key could therefore overwrite a valid key inherited from the parent environment or the profile .env file.

Using None for the omitted case distinguishes inheritance from an explicitly empty key while keeping the existing daemon behavior unchanged.

Fixes #3253.

Testing

  • uv run pytest tests/test_embedded_namespaces.py -q
  • uv run pytest tests/test_profile_daemon_config.py -q
  • ./scripts/hooks/lint.sh

HindsightEmbedded previously defaulted llm_api_key to an empty string and
always forwarded it to the daemon. Omitting the argument therefore replaced
a valid key inherited from the parent environment or profile.

Use None as the default and omit the config entry only in that case. Keep an
explicit empty string as an override, so local LLM services can still run
without authentication.

Add regression coverage for omitted, empty, and non-empty keys.
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.

local_embedded: daemon ignores shell env — HINDSIGHT_API_LLM_API_KEY only works via config dict, error message is misleading

1 participant