feat(telemetry): accept INFERENCE_API_KEY as the ingest token (INF-4801) - #100
Merged
francescov1 merged 6 commits intoAug 14, 2026
Merged
Conversation
added 2 commits
August 12, 2026 11:10
CATALYST_OTLP_TOKEN still wins when both are set. The token is now passed to catalyst_setup() explicitly so routing does not depend on which env names the pinned SDK version reads (works with inference-catalyst-tracing 0.1.8, no pin bump needed).
…(INF-4801) - Token: read INFERENCE_API_KEY only (CATALYST_OTLP_TOKEN no longer read). - Metadata passthrough prefix: CATALYST_TRACING_<NAME> -> HALO_TRACING_<NAME> (incl. HALO_TRACING_RUN_ID / HALO_TRACING_CONVERSATION_ID). - Service identity: INFERENCE_SERVICE_NAME / INFERENCE_SERVICE_VERSION, now also passed explicitly to catalyst_setup so behavior does not depend on which env names the pinned SDK reads. - Pin inference-catalyst-tracing 0.1.9 (release carrying the INFERENCE_* env names — must be published before this merges). The engine is only launched by the platform runtime (monorepo halo/src), which switches to the new names in the paired monorepo PR, so no backwards compatibility is kept here.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit b5bc779. Configure here.
…INF-4801) Standalone halo-engine is a customer entrypoint, so CATALYST_OTLP_TOKEN and OTLP_INGEST_TOKEN still enable hosted export (old-name-wins, empty skipped). Docs and UI copy mention only INFERENCE_* / HALO_TRACING_*.
Fork PRs do not receive INFISICAL_CLIENT_* so Authenticate Infisical exits 1 before any test runs and the required E2E check stays red. Skip the live suite on cross-fork PRs; keep it on same-repo PRs, workflow_dispatch, and the engine release workflow_call.
francescov1
approved these changes
Aug 14, 2026
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.

Note
inference-catalyst-tracing0.1.10 is published (carries context-labs/catalyst-tracing#33). Pin is==0.1.10— no release gate remains; merge when CI is green, then releasehalo-enginefor monorepo#5446.Engine half of INF-4801. Standalone
halo-engineis a customer entrypoint, so the ingest token keeps undocumented legacy names at this one boundary. Internal consumers (monorepo runner / halo CLI wrapper) stay new-name-only.CATALYST_OTLP_TOKEN→OTLP_INGEST_TOKEN→INFERENCE_API_KEY. Old name wins; empty/whitespace is skipped so a blank leftover cannot block the new name. Resolved inengine/telemetry/setup.pyand passed tocatalyst_setup(token=…)explicitly (the SDK env chain never runs).CATALYST_*names. README,haloCLI help, app onboarding/import copy, and fire-test-spans docs all sayINFERENCE_*/HALO_TRACING_*only.HALO_TRACING_<NAME>(still becomeshalo.<name>resource attrs).INFERENCE_SERVICE_NAME/INFERENCE_SERVICE_VERSION, also passed explicitly tocatalyst_setup.Pairs with monorepo#5446 (injects
INFERENCE_API_KEYonly — no legacy needed there). Release order: catalyst-tracing SDKs (done) → this (halo-engine0.3.5) → monorepo.Tests: 53/53 telemetry unit tests.
Provenance
U086AGK4G3G)Note
Medium Risk
Changes how standalone customers authenticate OTLP export and which env vars enable hosted vs local tracing; behavior is backward-compatible via undocumented legacy token names but misconfiguration could misroute spans.
Overview
Documents and surfaces
INFERENCE_API_KEY/INFERENCE_OTLP_ENDPOINT/HALO_TRACING_*(and relatedINFERENCE_SERVICE_*) instead ofCATALYST_*in README, CLI help, and desktop onboarding/import/trace UI copy. Local agent setup now showsINFERENCE_OTLP_ENDPOINT=….Engine telemetry routing in
engine/telemetry/setup.pyresolves the OTLP ingest token at the customer boundary (CATALYST_OTLP_TOKEN→OTLP_INGEST_TOKEN→INFERENCE_API_KEY, legacy names win, blanks skipped) and passestoken,service_name, andservice_versionexplicitly intocatalyst_setup(). Run/session metadata passthrough moves fromCATALYST_TRACING_*toHALO_TRACING_*(includingresolve_run_idand conversation id). Pinsinference-catalyst-tracingto 0.1.10.CI: Engine E2E workflow no-ops authenticated steps on fork PRs (no Infisical secrets) so the required check stays green; live E2E still runs on same-repo PRs and release paths.
App dev tooling:
fire-test-spansacceptsINFERENCE_OTLP_ENDPOINTwithCATALYST_OTLP_ENDPOINTas a fallback. Telemetry unit tests cover the new token precedence and forwarding.Reviewed by Cursor Bugbot for commit 7dee503. Bugbot is set up for automated code reviews on this repo. Configure here.