Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
b0ab9ba
chore(ci): scope LoongSuite tests to changed packages
sipercai May 21, 2026
f5438ed
chore(ci): harden selective LoongSuite CI
sipercai May 22, 2026
3475fd6
chore(ci): scope new LoongSuite plugin workflow changes
sipercai May 26, 2026
6377fb0
chore(ci): scope LoongSuite tests to changed packages (#195)
sipercai May 26, 2026
dd93379
chore(ci): avoid duplicate LoongSuite push runs
sipercai May 26, 2026
8b0ccbc
chore(ci): use dynamic LoongSuite matrices
sipercai May 26, 2026
94e9d5a
chore(ci): refresh checks after GitHub outage
sipercai May 26, 2026
7b09549
chore(ci): avoid duplicate LoongSuite push runs (#201)
sipercai May 27, 2026
be67e0b
Improve LiteLLM GenAI util instrumentation
sipercai May 20, 2026
5504097
Refine LiteLLM GenAI provider and stream handling
sipercai May 21, 2026
c3342e3
Fix LiteLLM GenAI review blockers
sipercai May 21, 2026
0ed5a1b
test(litellm): fix GenAI wrapper CI checks
sipercai May 26, 2026
d741321
feat(agno): adapt instrumentation for Agno 2
sipercai May 21, 2026
458f06e
feat(crewai): add genai util instrumentation
sipercai May 21, 2026
96d8603
fix(crewai): address optional import review comments
sipercai May 26, 2026
fe8ced8
chore(agno): update generated loongsuite workflows
sipercai May 26, 2026
bc29c14
feat(litellm): improve GenAI util instrumentation (#196)
sipercai May 27, 2026
f0da784
feat(agno): adapt instrumentation for Agno 2 (#197)
sipercai May 27, 2026
9618e0c
feat(crewai): add GenAI util instrumentation (#198)
sipercai May 27, 2026
e6aea5a
feat: use GenAI util for Google ADK spans (#199)
sipercai May 29, 2026
6c50471
feat: support multiple benchmark framework! (#200)
123liuziming May 29, 2026
3c496f3
release: publish GenAI util as loongsuite-otel-util-genai
sipercai Jun 1, 2026
7d93dfe
release: publish GenAI util as loongsuite-otel-util-genai (#206)
sipercai Jun 1, 2026
571220d
docs: update community SIG QR codes (#214)
sipercai Jun 9, 2026
13f9339
chore: post-release 0.6.0 - archive changelogs & bump dev versions (#…
sipercai Jun 9, 2026
da62fc6
feat(genai): propagate agent name to child spans
sipercai Jun 10, 2026
a55f07a
fix(qwenpaw): align agentscope spans with entry session
sipercai Jun 10, 2026
6a71890
fix: satisfy misc ci checks
sipercai Jun 11, 2026
c4ce725
fix(genai): use standard baggage key for agent name
sipercai Jun 11, 2026
bced622
fix(qwenpaw): align session propagation and quiet bootstrap (#215)
sipercai Jun 11, 2026
f2f50d0
docs: update repository name references to loongsuite-python
steverao Jun 12, 2026
17bb42b
docs: update remaining README and changelog repo references
steverao Jun 12, 2026
72a4274
docs: sync LoongSuite Python release artifact naming
sipercai Jun 16, 2026
c0e721f
docs: fix renamed changelog PR links
sipercai Jun 16, 2026
de65b32
Docs/update repo name (#218)
sipercai Jun 17, 2026
c438bc4
fix(hermes-agent): create entry span from session source
sipercai Jun 11, 2026
3ac94d8
fix(agno): remove pydantic runtime dependency
sipercai Jun 16, 2026
e23c40c
ci: register Hermes LoongSuite tox jobs
sipercai Jun 17, 2026
5088b41
fix(qwen-agent): improve token and nested agent tracing
sipercai Jun 16, 2026
f5c7c56
fix: silence genai audio optional dependency import warning
sipercai Jun 18, 2026
01bba83
fix: silence GenAI audio optional dependency import warning (#223)
sipercai Jun 18, 2026
df4b496
fix(hermes-agent): create entry span from session source (#216)
sipercai Jun 23, 2026
6be9c20
fix(qwen-agent): improve token and nested agent tracing (#220)
sipercai Jun 23, 2026
75836bd
fix(agno): remove pydantic runtime dependency (#221)
sipercai Jun 23, 2026
ed516d0
fix: capture claude agent sdk session ids
sipercai Jun 14, 2026
aed5bb8
docs: update claude agent sdk changelog
sipercai Jun 23, 2026
8a17210
fix: capture dashscope multimodal media outputs
sipercai Jun 23, 2026
fff8fd3
fix: skip empty claude stream session updates
sipercai Jun 23, 2026
f085af2
fix: capture claude agent sdk session ids (#222)
sipercai Jun 24, 2026
7ffb142
fix: capture DashScope multimodal media outputs (#227)
sipercai Jun 24, 2026
effaf5a
feat(deepagents): add root agent instrumentation
sipercai Jun 12, 2026
4af6f06
docs(deepagents): clarify manual instrumentation order
sipercai Jun 12, 2026
6b5ad37
chore(deepagents): use loongsuite util genai for direct installs
sipercai Jun 12, 2026
f9e7bdc
feat(deepagents): map model nodes to react steps
sipercai Jun 14, 2026
f799020
feat(deepagents): capture skill load attributes
sipercai Jun 24, 2026
238ab3d
chore(deepagents): satisfy PR readiness checks
sipercai Jun 24, 2026
385f7c5
style(deepagents): apply precommit formatting
sipercai Jun 24, 2026
875f970
fix(deepagents): uninstrument managed dependencies
sipercai Jun 24, 2026
a456f57
test(deepagents): cover structured tool arguments
sipercai Jun 24, 2026
2d51b6c
perf(langchain): route react step entry by framework
sipercai Jun 24, 2026
30f0a4c
fix(deepagents): restore util package source metadata
sipercai Jun 24, 2026
974b460
fix(deepagents): include core deps for lint env
sipercai Jun 24, 2026
d270136
fix(vertexai): remove stale pyright ignores
sipercai Jun 24, 2026
0ae1399
fix(deepagents): align python version matrix
sipercai Jun 24, 2026
8c70103
fix(deepagents): align bootstrap pin version
sipercai Jun 25, 2026
8aa32ec
fix(deepagents): capture root agent input messages
sipercai Jun 25, 2026
66ac6cd
style(deepagents): apply ruff formatting
sipercai Jun 25, 2026
7d4bc85
feat(claude-agent-sdk): capture gen_ai.skill.* on Skill load execute_…
sipercai Jun 22, 2026
b0bee4b
fix(vertexai): remove stale pyright ignores
sipercai Jun 25, 2026
e4232fd
feat(claude-agent-sdk): capture gen_ai.skill.* on Skill load execute_…
sipercai Jun 26, 2026
1b25fcc
feat(deepagents): support DeepAgents instrumentation (#228)
sipercai Jun 26, 2026
f628717
feat(agentscope): support AgentScope v2
sipercai Jun 2, 2026
06c0239
Support AgentScope v2 instrumentation
sipercai Jun 3, 2026
0d658d0
chore: refresh LoongSuite generated files
sipercai Jun 25, 2026
ddc5c0e
fix(agentscope): serialize v2 tool result content
sipercai Jun 25, 2026
dc93557
docs(agentscope): clarify v2 handler factory
sipercai Jun 25, 2026
1ae366a
feat(instrumentation-microsoft-agent-framework): add plugin per execu…
123liuziming Jun 24, 2026
0afbba6
fix(microsoft-agent-framework): review [M1][M2][L1]
123liuziming Jun 24, 2026
a8a3f7f
fix(microsoft-agent-framework): validation P0/P1/P3/P5
123liuziming Jun 24, 2026
383158a
fix(maf): align telemetry with genai conventions
sipercai Jun 25, 2026
b530a86
fix(maf): address review comments and ci
sipercai Jun 25, 2026
f3fe856
fix(maf): move instrumentation into loongsuite matrix
sipercai Jun 26, 2026
d8cc15d
fix: add missing Apache 2.0 license headers
ralf0131 Jun 28, 2026
db67ba5
fix(maf): finalize spans through util genai bridge
sipercai Jun 29, 2026
1cb729c
feat(autogen): add LoongSuite instrumentation
sipercai Jun 29, 2026
42c2546
style(autogen): apply ruff formatting
sipercai Jun 29, 2026
1ca6957
fix(maf): address util genai review comments
sipercai Jun 29, 2026
a1c6940
fix(autogen): capture agent and tool content
sipercai Jun 29, 2026
ebbedb4
fix(autogen): normalize tool call finish reason
sipercai Jun 29, 2026
391c84c
feat(autogen): cover team and direct model flows
sipercai Jun 29, 2026
f06a90e
fix(maf): align workflow and mcp genai semantics
sipercai Jun 29, 2026
ff68ad4
fix(maf): align workflow telemetry with genai util
sipercai Jun 29, 2026
c5a9084
fix(autogen): keep create agent spans lifecycle-only
sipercai Jun 29, 2026
c119607
feat(autogen): add LoongSuite instrumentation (#231)
sipercai Jun 30, 2026
3b7ca8f
Merge branch 'main' into feat/microsoft-agent-framework
sipercai Jun 30, 2026
4f89585
style(maf): apply ruff formatting
sipercai Jun 30, 2026
a49b51b
fix: split bootstrap registry fragments
sipercai Jun 30, 2026
86fdc1f
chore: add CrewAI changelog entry
sipercai Jun 30, 2026
b2872a2
Merge remote-tracking branch 'origin/pr/232' into liuyu/feat-integrat…
sipercai Jul 1, 2026
c7db4a4
Merge remote-tracking branch 'origin/pr/229' into liuyu/feat-integrat…
sipercai Jul 1, 2026
e395bb4
Merge remote-tracking branch 'origin/pr/208' into liuyu/feat-integrat…
sipercai Jul 1, 2026
e3ce9e1
chore: clean integration whitespace
sipercai Jul 1, 2026
39c400e
chore: apply integration formatting
sipercai Jul 1, 2026
5509517
fix: set MAF framework provider for agent executor spans
sipercai Jul 1, 2026
cdeb6b1
ci: test PR 233 on fork ARC runners
sipercai Jul 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
444 changes: 444 additions & 0 deletions .github/scripts/detect_loongsuite_changes.py

Large diffs are not rendered by default.

105 changes: 105 additions & 0 deletions .github/scripts/select_loongsuite_matrix.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
#!/usr/bin/env python3
"""Build a dynamic GitHub Actions matrix for selected LoongSuite jobs.

Inputs come from the GitHub Actions environment:
- LOONGSUITE_ALL_JOBS is a JSON list generated into the workflow template.
- LOONGSUITE_FULL is the detector's full output.
- LOONGSUITE_PACKAGES is the detector's pipe-delimited package output.
- GITHUB_OUTPUT receives has_jobs and matrix outputs.
"""

from __future__ import annotations

import json
import os
import sys
from typing import Any


def _parse_packages(package_output: str) -> set[str]:
return {package for package in package_output.split("|") if package}


def select_jobs(
all_jobs: list[dict[str, Any]],
*,
full: bool,
package_output: str,
) -> list[dict[str, Any]]:
# Full is authoritative even when detector fallback emits packages=||.
if full:
return all_jobs

packages = _parse_packages(package_output)
if not packages:
return []

return [
job
for job in all_jobs
if isinstance(job.get("package"), str) and job["package"] in packages
]


def _load_all_jobs() -> list[dict[str, Any]]:
raw_jobs = os.environ.get("LOONGSUITE_ALL_JOBS")
if raw_jobs is None:
raise ValueError("LOONGSUITE_ALL_JOBS is required")

parsed_jobs = json.loads(raw_jobs)
if not isinstance(parsed_jobs, list):
raise ValueError(
"LOONGSUITE_ALL_JOBS must be a JSON list; check generated "
"job_datas for this template"
)
if not parsed_jobs:
raise ValueError(
"LOONGSUITE_ALL_JOBS is empty; check generated job_datas for "
"this template"
)

return parsed_jobs


def _write_outputs(outputs: dict[str, str]) -> None:
output_path = os.environ.get("GITHUB_OUTPUT")
if not output_path:
return

with open(output_path, "a", encoding="utf-8") as output_file:
for name, value in outputs.items():
output_file.write(f"{name}={value}\n")


def main() -> int:
try:
all_jobs = _load_all_jobs()
selected_jobs = select_jobs(
all_jobs,
full=os.environ.get("LOONGSUITE_FULL") == "true",
package_output=os.environ.get("LOONGSUITE_PACKAGES", "||"),
)
matrix = json.dumps(
{"include": selected_jobs},
separators=(",", ":"),
)
outputs = {
"has_jobs": str(bool(selected_jobs)).lower(),
"matrix": matrix,
}
except Exception as exc: # noqa: BLE001 - fail the selector job loudly.
print(
f"::error::LoongSuite matrix selector failed: "
f"{type(exc).__name__}: {exc}",
file=sys.stderr,
)
raise

_write_outputs(outputs)
print(f"has_jobs={outputs['has_jobs']}")
print(f"selected_jobs={len(selected_jobs)}")
return 0


if __name__ == "__main__":
raise SystemExit(main())
Loading
Loading