Skip to content

fix(cli): correct the auto mode provider list - #396

Open
Gakshith wants to merge 2 commits into
respanai:mainfrom
Gakshith:fix-auto-provider-list
Open

fix(cli): correct the auto mode provider list#396
Gakshith wants to merge 2 commits into
respanai:mainfrom
Gakshith:fix-auto-provider-list

Conversation

@Gakshith

Copy link
Copy Markdown

Summary

Line 33 of skills/references/tracing.md gives one flat list of the providers a bare Respan() picks up. The default set isn't the same in both languages though — Python bundles 7 adapters, TypeScript bundles 9, and they don't line up — so a single list can't be right for both. It wasn't:

  • LiteLLM is listed as automatic. It's opt-in in Python (_FRAMEWORK_REASON, so it doesn't double-count spans the OpenAI adapter already traces), and there's no LiteLLM entry in the JS registry at all.
  • Cohere is listed with no qualifier. That's true for TypeScript, not for Python.
  • Ollama and Google GenAI are missing on the Python side, OpenRouter and Writer on the TypeScript side.

Quick check for Python:

python3 -c "
import sys, importlib.util as u
spec = u.spec_from_file_location('reg','python-sdks/respan/src/respan/_auto_instrumentation_registry.py')
m = u.module_from_spec(spec); sys.modules['reg']=m; spec.loader.exec_module(m)
print(sorted(s.entry_point for s in m.AUTO_INSTRUMENTATION_REGISTRY if s.enabled_by_default))"

prints ['anthropic', 'aws-bedrock', 'google-genai', 'ollama', 'openai', 'together', 'vertexai'], the same set the respan-ai auto-instrument smoke check step in ci.yml asserts. The JS side comes out of javascript-sdks/respan/src/_auto_instrumentation_registry.ts and matches the table in javascript-sdks/respan/README.md.

The per-language table at line 108 already has all of this right. Line 33 just never got updated along with it in #323.

This one matters a bit more than a normal doc line, because respan setup writes the file straight into ~/.agents/skills/ and ~/.claude/skills/ (setup-base-command.ts:738). Right now it tells a Python user on Cohere or LiteLLM that one line is enough. They get no spans and no error.

What changed

  1. Line 33 now lists the providers per language instead of as one set. I kept it inline rather than pointing at the table, since line 38 tells the reader to skip whichever branch they didn't pick and the table sits under Full path.
  2. It now says the instrumentation adapter is bundled, not the provider SDK. The old wording contradicted line 110, and an agent that reads it as "the SDK is bundled" will skip pip install openai.
  3. Reran scripts/build-plugins.mjs and generate:skill-refs. feat: expand auto-instrumentation onboarding #323 changed the source but didn't rerun them, so the CLI bundle and both plugin copies have been shipping the pre-feat: expand auto-instrumentation onboarding #323 table since Aug 7 — including | Cohere | cohere | — |, which is backwards in both columns now. That's most of the diff here and it's all generator output.

Release Intent

.release-intents/20260822-auto-provider-list.json with {"@respan/cli": "patch"}, since skill-refs.generated.ts lives in that package. Same shape as #346.

Validation

  • I updated or added a .release-intents/*.json file if this PR changes a release-managed package
  • I ran the relevant local checks for the packages I touched

What I ran:

  • release_inventory.py --validate and release_intents.py validate — both pass
  • release_intents.py missing --changed-from main --changed-to HEAD — empty
  • python3 -m unittest discover -s scripts/tests -p 'test_*.py' — 11 tests, OK
  • reran both generators after committing — no diff
  • tsc --noEmit on the regenerated file — clean, and it round-trips byte-identical to the markdown
  • JS matrix resolves to @respan/cli only, Python matrix is 0

Notes

Refs #257 and #323. Not closing #257, since #285 already did the bundling half of it.

Two follow-ups I'm happy to pick up, left out to keep this small:

  • a CI step that reruns the generators and fails on a diff, so the copies can't silently drift again
  • moving the Priority 2 table above the Full path gate, so the Auto branch can point at it and the list lives in exactly one place

The list was one flat set, but the default set differs by language:
Python bundles 7 adapters, TypeScript bundles 9. So the old line was
wrong either way. LiteLLM is opt-in in both. Ollama and Google GenAI
were missing for Python, OpenRouter and Writer for TypeScript, and
Cohere was listed as automatic when it only is on TypeScript.

Also says the instrumentation adapter is bundled rather than the
provider SDK, to match the paragraph further down.
PR respanai#323 edited skills/references/tracing.md but did not rerun the
generators, so the CLI bundle and both plugin copies still shipped the
old table. This is generator output only, plus the release intent.
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.

1 participant