feat(plugins): bundle langfuse_tracing as a first-class bundled plugin#16841
Closed
kshitijk4poor wants to merge 1 commit into
Closed
feat(plugins): bundle langfuse_tracing as a first-class bundled plugin#16841kshitijk4poor wants to merge 1 commit into
kshitijk4poor wants to merge 1 commit into
Conversation
Moves Langfuse observability from an optional-skill installer pattern
to a proper bundled plugin under plugins/langfuse_tracing/.
Changes:
- plugins/langfuse_tracing/__init__.py — full tracing implementation
(pre/post LLM call + pre/post tool call hooks). CC_* Continue.dev
aliases removed; only HERMES_LANGFUSE_* and standard LANGFUSE_*
env vars are honoured.
- plugins/langfuse_tracing/plugin.yaml — plugin manifest
- hermes_cli/config.py — HERMES_LANGFUSE_{ENABLED,PUBLIC_KEY,SECRET_KEY,
BASE_URL} added to OPTIONAL_ENV_VARS; optional keys (ENV, RELEASE,
SAMPLE_RATE, MAX_CHARS, DEBUG) + standard LANGFUSE_* vars added to
_EXTRA_ENV_KEYS so save_env_value / load_env recognise them
- hermes_cli/tools_config.py — 'Langfuse Observability' entry in
TOOL_CATEGORIES (Cloud + Self-Hosted providers); post_setup handler
that pip-installs the langfuse SDK and activates the plugin via config
- optional-skills/observability/langfuse-tracing/SKILL.md — slimmed to a
pointer/troubleshooting doc; installer script removed (no longer needed)
- tests/plugins/test_langfuse_tracing.py — 10 tests covering fail-open,
env-gating, no CC_ aliases, hook registration, span lifecycle, and
_safe_value edge cases
Users enable tracing via `hermes tools` → Langfuse Observability.
No external git-fetch or personal fork dependency.
5bd13cc to
e6f55eb
Compare
Collaborator
Author
|
Superseded by a cleaner PR with all review fixes applied. See the replacement PR. |
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.
Summary
Resolves the architecture concern from PR #15764: Langfuse tracing was implemented as an optional-skill that installed an external plugin from a personal fork. This PR replaces that with a proper bundled plugin.
What changed
plugins/langfuse_tracing/__init__.pyplugins/langfuse_tracing/plugin.yamlhermes_cli/config.pyOPTIONAL_ENV_VARS+_EXTRA_ENV_KEYShermes_cli/tools_config.pyLangfuse Observabilitycategory inTOOL_CATEGORIES(Cloud + Self-Hosted);post_setuphandler installs SDK + activates pluginoptional-skills/observability/langfuse-tracing/SKILL.mdWhat was removed / fixed vs #15764
git fetchfromkshitijk4poor/hermes-langfuse-tracing.git fetch <external> <branch>:refs/remotes/...side-effect on the agent repo's.git/.CC_LANGFUSE_*) stripped; onlyHERMES_LANGFUSE_*and standardLANGFUSE_*vars honoured.hermes tools→ Langfuse Observability, which also installs thelangfuseSDK.User flow
Tests
10 new tests in
tests/plugins/test_langfuse_tracing.py:langfuseSDK not installed_safe_valueedge cases (truncation, bytes, None)Closes #15764