Harden logging, env-var checks, and small cleanups - #50
Merged
Conversation
std::atomic<std::shared_ptr> in logger.h does not compile on standard libraries that have not implemented P0718 (notably libc++, which this project selects on Apple), so any macOS build of the SDK or of downstream code including <ai/logger.h> failed. Feature-test __cpp_lib_atomic_shared_ptr, fall back to the atomic_load and atomic_store free functions elsewhere, and document the lifetime of the reference logger() returns. Treat a set-but-empty OPENAI_API_KEY or ANTHROPIC_API_KEY as absent through a shared utils::non_empty_env() helper; an empty value previously produced a client that failed only at request time. Also size the langfuse ISO-8601 buffer for snprintf's worst case, drop a std::move on nlohmann json subscripts that suppressed no copy, silence unused-parameter warnings in the tool factories and the base stream_text stub, and fix the stale designated-initializer example in core.h that no longer compiles.
iskakaushik
force-pushed
the
provider-refresh/02-hardening
branch
from
August 19, 2026 17:43
0f4b3ac to
2edb4c9
Compare
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.
std::atomicstd::shared_ptr in logger.h does not compile on
standard libraries that have not implemented P0718 (notably libc++,
which this project selects on Apple), so any macOS build of the SDK
or of downstream code including <ai/logger.h> failed. Feature-test
__cpp_lib_atomic_shared_ptr, fall back to the atomic_load and
atomic_store free functions elsewhere, and document the lifetime of
the reference logger() returns.
Treat a set-but-empty OPENAI_API_KEY or ANTHROPIC_API_KEY as absent
through a shared utils::non_empty_env() helper; an empty value
previously produced a client that failed only at request time.
Also size the langfuse ISO-8601 buffer for snprintf's worst case,
drop a std::move on nlohmann json subscripts that suppressed no
copy, silence unused-parameter warnings in the tool factories and
the base stream_text stub, and fix the stale designated-initializer
example in core.h that no longer compiles.
Stack created with GitHub Stacks CLI • Give Feedback 💬