Raw JSON report machine-readable
{
"data": {
"repo": {
"topics": [],
"is_fork": true,
"size_kb": 41129,
"has_wiki": false,
"homepage": "https://www.jaegertracing.io/",
"languages": {
"Go": 3829115,
"sed": 534,
"HTML": 1821,
"Shell": 128585,
"Python": 176152,
"Makefile": 36193,
"Dockerfile": 4617,
"JavaScript": 586,
"Go Template": 40834
},
"pushed_at": "2026-07-31T22:07:15Z",
"created_at": "2026-07-07T04:39:22Z",
"owner_type": "User",
"updated_at": "2026-07-07T04:39:22Z",
"description": "CNCF Jaeger, a Distributed Tracing Platform",
"is_archived": false,
"is_disabled": false,
"license_spdx": "Apache-2.0",
"default_branch": "main",
"license_spdx_raw": "Apache-2.0",
"primary_language": "Go",
"significant_languages": [
"Go"
]
},
"owner": {
"blog": null,
"name": "yurishkuro's AI bot",
"type": "User",
"login": "ysh-bot",
"company": null,
"location": null,
"followers": 0,
"avatar_url": "https://avatars.githubusercontent.com/u/262046922?v=4",
"created_at": "2026-02-17T04:12:56Z",
"is_verified": null,
"public_repos": 4,
"account_age_days": 166
},
"license": {
"state": "standard",
"spdx_id": "Apache-2.0",
"raw_spdx": "Apache-2.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": false
},
"activity": {
"releases": [
{
"tag": "v2.19.0",
"kind": "minor",
"published_at": "2026-06-03T13:17:07Z"
},
{
"tag": "v2.18.0",
"kind": "minor",
"published_at": "2026-05-13T15:47:08Z"
},
{
"tag": "v2.17.0",
"kind": "minor",
"published_at": "2026-03-30T15:11:26Z"
},
{
"tag": "v2.16.0",
"kind": "minor",
"published_at": "2026-03-06T20:29:18Z"
},
{
"tag": "v2.15.1",
"kind": "patch",
"published_at": "2026-02-09T00:16:14Z"
},
{
"tag": "v2.15.0",
"kind": "minor",
"published_at": "2026-02-06T18:52:45Z"
},
{
"tag": "v2.14.1",
"kind": "patch",
"published_at": "2026-01-02T18:34:55Z"
},
{
"tag": "v2.14.0",
"kind": "minor",
"published_at": "2026-01-02T02:25:29Z"
},
{
"tag": "v2.13.0",
"kind": "minor",
"published_at": "2025-12-03T16:07:08Z"
},
{
"tag": "v2.12.0",
"kind": "minor",
"published_at": "2025-11-13T16:44:30Z"
},
{
"tag": "v2.11.0",
"kind": "minor",
"published_at": "2025-10-02T11:57:56Z"
},
{
"tag": "v2.10.0",
"kind": "minor",
"published_at": "2025-09-03T18:28:19Z"
},
{
"tag": "v2.9.0",
"kind": "minor",
"published_at": "2025-08-06T18:10:13Z"
},
{
"tag": "v2.8.0",
"kind": "minor",
"published_at": "2025-07-04T16:53:12Z"
},
{
"tag": "v2.7.0",
"kind": "minor",
"published_at": "2025-06-10T18:29:07Z"
},
{
"tag": "v2.6.0",
"kind": "minor",
"published_at": "2025-05-09T19:30:14Z"
},
{
"tag": "v2.5.0",
"kind": "minor",
"published_at": "2025-04-05T08:41:40Z"
},
{
"tag": "v2.4.0",
"kind": "minor",
"published_at": "2025-03-08T05:34:31Z"
},
{
"tag": "v2.3.0",
"kind": "minor",
"published_at": "2025-02-06T18:08:09Z"
},
{
"tag": "v2.2.0",
"kind": "minor",
"published_at": "2025-01-08T00:08:50Z"
},
{
"tag": "v2.1.0",
"kind": "minor",
"published_at": "2024-12-06T21:17:15Z"
},
{
"tag": "v2.0.0",
"kind": "major",
"published_at": "2024-11-10T18:53:12Z"
},
{
"tag": "v2.0.0-rc2",
"kind": "prerelease",
"published_at": "2024-10-07T09:16:33Z"
},
{
"tag": "v2.0.0-rc1",
"kind": "prerelease",
"published_at": "2024-09-15T00:15:41Z"
},
{
"tag": "v2.0.0-rc0",
"kind": "prerelease",
"published_at": "2024-08-06T15:39:43Z"
},
{
"tag": "v1.76.0",
"kind": "minor",
"published_at": "2025-12-03T16:07:08Z"
},
{
"tag": "v1.75.0",
"kind": "minor",
"published_at": "2025-11-13T16:44:30Z"
},
{
"tag": "v1.74.0",
"kind": "minor",
"published_at": "2025-10-02T11:57:56Z"
},
{
"tag": "v1.73.0",
"kind": "minor",
"published_at": "2025-09-03T18:28:19Z"
},
{
"tag": "v1.72.0",
"kind": "minor",
"published_at": "2025-08-06T18:10:13Z"
},
{
"tag": "v1.71.0",
"kind": "minor",
"published_at": "2025-07-04T16:53:12Z"
},
{
"tag": "v1.70.0",
"kind": "minor",
"published_at": "2025-06-10T18:29:07Z"
},
{
"tag": "v1.69.0",
"kind": "minor",
"published_at": "2025-05-09T19:30:14Z"
},
{
"tag": "v1.68.0",
"kind": "minor",
"published_at": "2025-04-05T08:41:40Z"
},
{
"tag": "v1.67.0",
"kind": "minor",
"published_at": "2025-03-08T05:34:31Z"
},
{
"tag": "v1.66.0",
"kind": "minor",
"published_at": "2025-02-06T18:08:09Z"
},
{
"tag": "v1.65.0",
"kind": "minor",
"published_at": "2025-01-08T00:08:50Z"
},
{
"tag": "v1.64.0",
"kind": "minor",
"published_at": "2024-12-06T21:17:15Z"
},
{
"tag": "v1.63.0",
"kind": "minor",
"published_at": "2024-11-10T18:53:12Z"
},
{
"tag": "v1.62.0",
"kind": "minor",
"published_at": "2024-10-07T09:16:33Z"
},
{
"tag": "v1.61.0",
"kind": "minor",
"published_at": "2024-09-15T00:15:41Z"
},
{
"tag": "v1.60.0",
"kind": "minor",
"published_at": "2024-08-06T15:39:43Z"
},
{
"tag": "v1.59.0",
"kind": "minor",
"published_at": "2024-07-10T15:12:40Z"
},
{
"tag": "v1.58.1",
"kind": "patch",
"published_at": "2024-06-22T20:08:51Z"
},
{
"tag": "v1.58.0",
"kind": "minor",
"published_at": "2024-06-11T16:04:17Z"
},
{
"tag": "v1.57.0",
"kind": "minor",
"published_at": "2024-05-01T23:19:12Z"
},
{
"tag": "v1.56.0",
"kind": "minor",
"published_at": "2024-04-03T19:57:40Z"
},
{
"tag": "v1.55.0",
"kind": "minor",
"published_at": "2024-03-07T05:21:42Z"
},
{
"tag": "v1.54.0",
"kind": "minor",
"published_at": "2024-02-06T23:10:30Z"
},
{
"tag": "v1.53.0",
"kind": "minor",
"published_at": "2024-01-08T18:05:40Z"
},
{
"tag": "v1.52.0",
"kind": "minor",
"published_at": "2023-12-06T09:43:23Z"
},
{
"tag": "v1.51.0",
"kind": "minor",
"published_at": "2023-11-02T23:57:12Z"
},
{
"tag": "v1.50.0",
"kind": "minor",
"published_at": "2023-10-06T14:47:06Z"
},
{
"tag": "v1.49.0",
"kind": "minor",
"published_at": "2023-09-07T13:13:08Z"
},
{
"tag": "v1.48.0",
"kind": "minor",
"published_at": "2023-08-15T11:35:43Z"
},
{
"tag": "v1.47.0",
"kind": "minor",
"published_at": "2023-07-06T20:38:11Z"
},
{
"tag": "v1.46.0",
"kind": "minor",
"published_at": "2023-06-05T02:45:00Z"
},
{
"tag": "v1.45.0",
"kind": "minor",
"published_at": "2023-05-05T20:59:36Z"
},
{
"tag": "v1.44.0",
"kind": "minor",
"published_at": "2023-04-10T19:06:14Z"
},
{
"tag": "v1.43.0",
"kind": "minor",
"published_at": "2023-03-15T18:08:08Z"
},
{
"tag": "v1.42.0",
"kind": "minor",
"published_at": "2023-02-05T21:04:16Z"
},
{
"tag": "v1.41.0",
"kind": "minor",
"published_at": "2023-01-03T22:41:26Z"
},
{
"tag": "v1.40.0",
"kind": "minor",
"published_at": "2022-12-09T01:21:25Z"
},
{
"tag": "v1.39.0",
"kind": "minor",
"published_at": "2022-11-01T12:30:46Z"
},
{
"tag": "v1.38.1",
"kind": "patch",
"published_at": "2022-10-05T00:25:31Z"
},
{
"tag": "v1.38.0",
"kind": "minor",
"published_at": "2022-09-16T14:25:43Z"
},
{
"tag": "v1.37.0",
"kind": "minor",
"published_at": "2022-08-03T17:29:32Z"
},
{
"tag": "v1.36.0",
"kind": "minor",
"published_at": "2022-07-05T10:37:57Z"
},
{
"tag": "v1.35.2",
"kind": "patch",
"published_at": "2022-05-31T17:21:11Z"
},
{
"tag": "v1.35.1",
"kind": "patch",
"published_at": "2022-05-31T17:21:11Z"
},
{
"tag": "v1.35.0",
"kind": "minor",
"published_at": "2022-05-30T20:07:14Z"
},
{
"tag": "v1.34.1",
"kind": "patch",
"published_at": "2022-05-16T15:23:24Z"
},
{
"tag": "v1.34.0",
"kind": "minor",
"published_at": "2022-05-11T22:13:38Z"
},
{
"tag": "v1.33.0",
"kind": "minor",
"published_at": "2022-04-11T21:18:11Z"
},
{
"tag": "v1.32.0",
"kind": "minor",
"published_at": "2022-03-06T02:03:16Z"
},
{
"tag": "v1.31.0",
"kind": "minor",
"published_at": "2022-02-04T20:35:55Z"
},
{
"tag": "v1.30.0",
"kind": "minor",
"published_at": "2022-01-11T16:26:25Z"
},
{
"tag": "v1.29.0",
"kind": "minor",
"published_at": "2021-12-01T10:52:24Z"
},
{
"tag": "v1.28.0",
"kind": "minor",
"published_at": "2021-11-06T04:08:24Z"
},
{
"tag": "v1.27.0",
"kind": "minor",
"published_at": "2021-10-06T18:07:56Z"
},
{
"tag": "v1.26.0",
"kind": "minor",
"published_at": "2021-09-06T03:44:35Z"
},
{
"tag": "v1.25.0",
"kind": "minor",
"published_at": "2021-08-05T01:35:33Z"
},
{
"tag": "v1.24.0",
"kind": "minor",
"published_at": "2021-07-07T11:58:07Z"
},
{
"tag": "v1.23.0",
"kind": "minor",
"published_at": "2021-06-04T19:13:43Z"
},
{
"tag": "v1.22.0",
"kind": "minor",
"published_at": "2021-02-23T21:30:42Z"
},
{
"tag": "v1.21.0",
"kind": "minor",
"published_at": "2020-11-16T14:47:57Z"
},
{
"tag": "v1.20.0",
"kind": "minor",
"published_at": "2020-09-29T18:21:58Z"
},
{
"tag": "v1.19.2",
"kind": "patch",
"published_at": "2020-08-27T07:17:27Z"
},
{
"tag": "v1.19.1",
"kind": "patch",
"published_at": "2020-08-26T22:30:20Z"
},
{
"tag": "v1.19.0",
"kind": "minor",
"published_at": "2020-08-26T15:03:45Z"
},
{
"tag": "v1.18.1",
"kind": "patch",
"published_at": "2020-06-19T09:25:29Z"
},
{
"tag": "v1.18.0",
"kind": "minor",
"published_at": "2020-05-14T10:29:31Z"
},
{
"tag": "v1.17.1",
"kind": "patch",
"published_at": "2020-03-13T08:02:54Z"
},
{
"tag": "v1.17.0",
"kind": "minor",
"published_at": "2020-02-24T18:17:19Z"
},
{
"tag": "v1.16.0",
"kind": "minor",
"published_at": "2019-12-17T11:29:57Z"
},
{
"tag": "v1.15.1",
"kind": "patch",
"published_at": "2019-11-07T23:45:29Z"
},
{
"tag": "v1.15.0",
"kind": "minor",
"published_at": "2019-11-07T19:28:20Z"
},
{
"tag": "v1.14.0",
"kind": "minor",
"published_at": "2019-09-02T15:21:42Z"
},
{
"tag": "v1.13.1",
"kind": "patch",
"published_at": "2019-06-28T07:48:52Z"
}
],
"recent_commits": [
{
"oid": "382273edfeef8fcbf267eb5e3fd81d2fe9795efb",
"body": "… (#8954)\n\n## Which problem is this PR solving?\n- Part of #7612 (RFC 0006). Milestone **M9** — migrates the\nadaptive-sampling store off `olivere/elastic` onto the shared `esclient`\ntransport pool, following the M5 (reads) and M6 (writes) pattern.\n\n## Description of the changes\n**Scaffolding:**\n- `es\n[…]\nfmt`/`make lint` clean.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(es): Migrate sampling store reads and writes onto owned esclient…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-07T04:34:31Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "444a551ed9eb09dd36ce08c7e7627286e894536a",
"body": "… (#8884)\n\n## Which problem is this PR solving?\n- Resolves #8883\n\n## Description of the changes\n- `Binary.Start` in `cmd/jaeger/internal/integration/binary.go` opens\ntwo log files, `output_logs.txt` and `error_logs.txt`, via\n`os.OpenFile`, but never closes them. On Windows, `t.TempDir()`'s\ncleanup i\n[…]\n this PR (choose one)\n- [ ] **None**\n- [x] **Light**\n- [ ] **Moderate**: AI helped with code generation or debugging specific\nparts\n- [ ] **Heavy**\n\nSigned-off-by: shayannab <shayannabehera@gmail.com>",
"is_bot": false,
"headline": "Fix Windows test cleanup failure: close output/error log file handles…",
"author_name": "shayanna",
"author_login": "shayannab",
"committed_at": "2026-07-07T04:17:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bcfbd5a045ddca255fda851759f47a6b567a720a",
"body": "…ock (#8955)\n\n## Which problem is this PR solving?\n- Part of #7612 (RFC 0006). The M1 request-snapshot baseline froze every\nES/OS data-plane and admin request **except one**: the adaptive-sampling\nwrites. `InsertThroughput` / `InsertProbabilitiesAndQPS` stamp the\ndocument body with `time.Now()` and \n[…]\nlint`\nclean.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "test(es): Snapshot sampling store write requests via an injectable cl…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-07T03:29:12Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b7ad60e8f8cae21f79c4381e8349429db8ea3098",
"body": "## Which problem is this PR solving?\n- Part of #7612 (RFC 0006), milestone **M6** — the first Stage-B *write*\nslice. Migrates the Elasticsearch/OpenSearch span write path off\n`olivere/elastic`'s `BulkProcessor` onto a bounded bulk indexer over the\nshared `esclient` transport pool.\n- Resolves #2192 (\n[…]\nfor the new functionality\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(es): Migrate span writes onto an owned bounded bulk indexer (#8944)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-07T01:48:21Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7ff0898bfc1dea452c289acc8fa70927c159c2cd",
"body": "…e (#8952)\n\n## Which problem is this PR solving?\n\nCloses #8951\n\n`internal/auth.TokenProviderWithTime` returns a `func() string` closure\nthat\nread and wrote a captured `currentToken` string **without\nsynchronization**.\nThe auth `RoundTripper` invokes that closure on **every HTTP request**,\nso any\ncon\n[…]\nuth/` passes\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(auth): Synchronize fallback token in TokenProviderWithTime closur…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-06T23:43:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5f870a088564afcadc084a1b16f833576de73d34",
"body": "## Which problem is this PR solving?\n- Closes #8947.\n\nRemoves support for **Elasticsearch 6.x**. It reached EOL (Elastic, Nov\n2020), and the vendor that kept it alive for Jaeger — Red Hat's\nOpenShift distributed tracing platform, which used ES6 as its backend —\nreached [end of support on Nov 3,\n2025\n[…]\nfor the new functionality\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(es): Remove support for Elasticsearch v6 (#8948)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-06T21:13:21Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d417316e7805f8cdc29d87b33635fb69a175ab30",
"body": "…registry (#8910)\n\n## Which problem is this PR solving?\n- Part of #8890 (and #8874): unify AI agent tool dispatch through a\ngateway-side MCP server. #8894 added the session-free telemetry endpoint\n (`/api/ai/mcp/`); this PR adds the **session-scoped** endpoint\n(`/api/ai/mcp/<sessionId>/`) and the s\n[…]\n**Moderate**: AI helped with code generation or debugging specific\nparts\n- [ ] **Heavy**: AI generated most or all of the code changes\n\n---------\n\nSigned-off-by: Nabil-Salah <nabil.salah203@gmail.com>",
"is_bot": false,
"headline": "feat(ai-gateway): Add session-scoped MCP endpoint and session-stream …",
"author_name": "Nabil Salah",
"author_login": "Nabil-Salah",
"committed_at": "2026-07-06T19:27:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1b4ed9dea64aa5d241b07d27e01761b511d6a311",
"body": "…ry AST (#8943)\n\n## Which problem is this PR solving?\n- Part of #7612 (RFC 0006). Milestone **M5** — the first Stage-B read\nslice: it introduces the owned, driver-neutral query AST + response type\n+ `Searcher`, and migrates the simplest ES/OS read path\n(service/operation names) off `olivere/elastic`\n[…]\nfor the new functionality\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(es): Migrate service/operation reads onto owned Searcher and que…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-06T05:32:57Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9823a8b932dddb57492b5956bfe17231e171defa",
"body": "…(RFC 0006 M4) (#8938)\n\n## Which problem is this PR solving?\n\n- Part of #7612 (replace `olivere/elastic`). RFC 0006 M4 (Stage A). \n- Previously, operations whose endpoints depended on the backend flavor,\nsuch as template creation or ILM/ISM, issued a redundant `GET /` network\nping on every call to d\n[…]\nidalam <161572905+iammdzaidalam@users.noreply.github.com>\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Unify Elasticsearch backend version detection at client construction …",
"author_name": "Zaid",
"author_login": "iammdzaidalam",
"committed_at": "2026-07-06T03:32:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b7529bec3b5e002c4844cb6ac3e6f9caa7e3f80b",
"body": "## Which problem is this PR solving?\n- Part of #7612 (RFC 0006). Documentation clarifications to the RFC,\nplus a small non-functional cleanup in the `esclient` package.\n- The RFC described the client architecture only in prose, and its M4\nmilestone stated the *mechanism* (\"one version-detection path\n[…]\nI have signed all commits\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[es] RFC 0006: client-layering diagrams + sharpen M4 criteria (#8941)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-06T00:23:18Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "73e078f54b8b52ccb81750a520c73e2606de7e5d",
"body": "…06 M3.5c) (#8939)\n\n## Which problem is this PR solving?\n- Part of #7612 (RFC 0006, milestone M3.5c).\n- `es-rollover` and `es-index-cleaner` could only authenticate with\nbasic auth (username/password). M3.5b routed the admin plane through the\nshared auth stack, but nothing populated bearer-token / A\n[…]\nfor the new functionality\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[es] Add bearer-token and API-key CLI flags to es admin tools (RFC 00…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-05T21:11:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5fc31a0428e533f63392c4e0d11136bad19b74c9",
"body": "… (#8937)\n\n## Which problem is this PR solving?\n- Part of #7612 (RFC 0006, milestone M3.5b).\n- The admin plane (`es-rollover` / `es-index-cleaner`, via\n`esclient.Client`) hand-rolled a single-endpoint HTTP client with only\nTLS + static Basic auth, bypassing the shared RoundTripper stack that\nthe dat\n[…]\nfor the new functionality\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[es] Route admin plane through the shared auth stack (RFC 0006 M3.5b)…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-05T20:25:22Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "30d99f976aef7d3bd66f6d16348a2bbd75181d8c",
"body": "…nic on corrupted rows (#8935)\n\n## Which problem is this PR solving?\n\n- Resolves #8933.\n- A malformed or truncated trace/span ID stored in ClickHouse can\ntrigger a slice-to-array conversion panic while decoding spans.\n- This allows a single corrupted row to act as a \"poison pill\", crashing\n`jaeger-q\n[…]\nt`\n\n## AI Usage in this PR (choose one)\n\n- [x] **Light**: AI provided minor assistance (formatting, simple\nsuggestions)\n\nSigned-off-by: iammdzaidalam <161572905+iammdzaidalam@users.noreply.github.com>",
"is_bot": false,
"headline": "fix(clickhouse): Validate decoded trace/span ID lengths to prevent pa…",
"author_name": "Zaid",
"author_login": "iammdzaidalam",
"committed_at": "2026-07-05T20:14:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d26f8a0ab986df45ac9974e752aca853886e8e39",
"body": "…#8936)\n\n## Which problem is this PR solving?\n\n- Part of #7612 (replace `olivere/elastic`). RFC 0006 **M3.5a** — the\nfirst step toward the admin plane inheriting the full auth stack: move\nthe shared RoundTripper stack into `esclient` so `esclient` (not\n`clientbuilder`, which pulls in olivere) owns i\n[…]\nat they did.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Relocate the shared ES RoundTripper stack into the esclient package (…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-05T17:57:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "cc01403bb7bad00f4b16a0221acfbfd94ffeaf1d",
"body": "…rt-go pool (#8932)\n\n## Which problem is this PR solving?\n\n- Part of #7612 (replace `olivere/elastic`). RFC 0006 **M3** foundation:\nintroduce the shared connection **pool** and route the admin plane\nthrough it.\n\n## Description of the changes\n\n**`rawClient` over the connection pool** — new\n`internal/\n[…]\n/...`\nclean.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Route the Elasticsearch admin client through a shared elastic-transpo…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-05T17:04:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ce1a0cb8e9246179507226f50b8928a1f4a0ebb8",
"body": "…Host override (#8917)\n\n## Which problem is this PR solving?\n\n- Resolves #8916. The `custom_headers` configuration is currently\nignored by the v7 `olivere` client, causing required static headers\n(such as `Host` for proxies) to be silently dropped on almost all\ndata-path storage requests.\n- This PR \n[…]\n2905+iammdzaidalam@users.noreply.github.com>\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(es): Apply custom_headers to all Elasticsearch clients and honor …",
"author_name": "Zaid",
"author_login": "iammdzaidalam",
"committed_at": "2026-07-05T05:14:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0afd9fce40d34f53f24587048b75a997e25e42a9",
"body": "…8768)\n\n## Which problem is this PR solving?\n\n- Fixes #8760\n\nWith `sigv4auth` against AWS-managed OpenSearch (FGAC enabled), startup\nfails on the index-template PUT with HTTP 403, while bodyless GETs\nsucceed. The request is signed over an empty payload hash.\n\n## Description of the changes\n\n#8308 int\n[…]\nGUIDELINES.md\n- [x] I have signed all commits\n- [x] I have added unit tests for the new functionality\n- [x] I have run lint and test steps successfully\n\nSigned-off-by: truffle <truffleagent@gmail.com>",
"is_bot": false,
"headline": "fix(storage): Populate req.GetBody before SigV4 signing, not after (#…",
"author_name": "Truffle",
"author_login": "truffle-dev",
"committed_at": "2026-07-05T04:39:34Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "34a27eb3ed41eedd1da7fff90c84972bac423ac3",
"body": "…930)\n\n## Which problem is this PR solving?\n\nPart of #7612 (replace `olivere/elastic`). Implements **M2** of RFC 0006\nStage A: rename the control-plane client package so it can become the\nfoundation of Jaeger's own ES/OpenSearch client (RFC 0006 §6.4), rather\nthan a second client bolted alongside th\n[…]\neaner/app`).\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Rename the Elasticsearch control-plane client package to esclient (#8…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-05T03:53:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a8cb621dd38a89926c97ee14ada777374a74b425",
"body": "## Which problem is this PR solving?\n\nPart of #7612 (replace `olivere/elastic`). Completes the **data-plane**\nhalf of the RFC 0006 Stage-A snapshot baseline (M1). #8922 landed the\nharness, the full admin/control-plane snapshots, and one data-plane\nslice (service/operation); this PR extends the reque\n[…]\nlint` clean.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Snapshot the Elasticsearch data-plane request wire format (#8929)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-05T02:55:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d719125e7551599cdf5b4c5780e018b1d5c984ca",
"body": "…es (#8922)\n\n## Which problem is this PR solving?\n\nPart of #7612 (replace `olivere/elastic`). This lands the **Stage-A\nfoundation of RFC 0006**: a request-wire-format snapshot (\"golden\")\nsuite over the *current* Elasticsearch/OpenSearch clients, so the\nupcoming migration to a Jaeger-owned client can\n[…]\nunctionality\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add ES/OS request-snapshot suite baseline and converge mapping fixtur…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-04T21:39:43Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "694afdec5c9de60f4b760b151993b0a955467381",
"body": "… (#8919)\n\n## Which problem is this PR solving?\n- Part of #7612 — Investigate the path to replace the `olivere/elastic`\ndriver.\n\nJaeger talks to Elasticsearch/OpenSearch through **two unrelated client\nabstractions**: the deprecated `olivere`-based data-plane `es.Client`\nand a raw-HTTP control-plane \n[…]\nommits (DCO)\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(rfc): Add RFC 0006 for a unified Elasticsearch/OpenSearch client…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-04T18:00:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fe5ed89359f8cc3bc2e644791b153e6146406cda",
"body": "…921)\n\n## Which problem is this PR solving?\n\nResolves #8920\n\nThe Elasticsearch/OpenSearch index-mapping golden tests in\n`internal/storage/v1/elasticsearch/mappings/` did not assert the full\n`{mapping type × backend × version}` matrix. As a result, two defects\nhad slipped through:\n\n1. **Unreachable `\n[…]\nr the new functionality\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Assert full mapping golden matrix and fix orphaned/stale fixtures (#8…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-04T04:45:30Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "563555ffb5728a67ffcec63352b3d1d7ceb9c7ab",
"body": "Wait at least one week before proposing a dependency upgrade, avoiding\nbroken or low-confidence releases. Security alerts bypass this delay via\ntheir own minimumReleaseAge override.\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>",
"is_bot": false,
"headline": "chore(renovate): Add 7-day minimum release age (#8915)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-02T21:24:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0d98a5056596f6ca389f47c5e3ce5cab696e9d86",
"body": "## Summary\n\n- Adds RFC 0004 proposing qualified attribute queries — allowing users\nto optionally scope tag/attribute searches to specific OTLP levels\n(span, resource, scope, event, link)\n- Evaluates 4 options against 12 criteria with a traffic-light\ncomparison matrix\n- Recommends phased approach: ba\n[…]\n/claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nSigned-off-by: Yuri Shkuro <yurishkuro@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(rfc): Qualified attribute queries (#8810)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-07-02T19:36:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7b2b26b2cec88abbb87226b0347aa1a6e6637c00",
"body": "## 🛑 Breaking change\n\nThe `jaegermcp` extension that used to run on an MCP server on a\nseparate port has been merged into the `jaegerquery` extension and the\nMCP tools are not available from the main query port under `/api/ai/mcp`\n\n## Which problem is this PR solving?\n- Resolves the first phase of #\n[…]\nf-by: Nabil-Salah <nabil.salah203@gmail.com>\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(mcp): Merge jaegermcp extention into jaegerquery extension (#8894)",
"author_name": "Nabil Salah",
"author_login": "Nabil-Salah",
"committed_at": "2026-07-01T17:23:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "45f2999b2fdae0c70abe475ce572a8dd99a889b2",
"body": "## Summary\n\n- upgrade the Gemini AI sidecar lockfile from pydantic-settings 2.14.1\nto 2.14.2\n- address Dependabot security alert 64 / GHSA-4xgf-cpjx-pc3j\n- keep the change scoped to the generated uv lock entry for the affected\ntransitive dependency\n\n## Why\n\nDependabot reports pydantic-settings 2.14.\n[…]\n.\n\n## Validation\n\n- /tmp/codex-uv-venv-jaeger-dependabot-64/bin/uv run --locked pytest -q\ntest_sidecar_workflow.py\n- make fmt\n- make lint\n- make test\n\nSigned-off-by: Jonah Kowall <jonahk@spacelift.io>",
"is_bot": false,
"headline": "fix(deps): Upgrade pydantic-settings in AI sidecar lockfile (#8886)",
"author_name": "Jonah Kowall",
"author_login": "jkowall",
"committed_at": "2026-07-01T17:14:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7974ba5d8406826b4072e4372eb33cd614c4ab4c",
"body": "…an_names (#8902)\n\n## Which problem is this PR solving?\n\nFixes #8901. `get_services` and `get_span_names` cap their results at\n100 (`defaultServiceLimit` / `defaultSpanNameLimit`) and return the\ntrimmed slice with no indication anything was cut, so a caller cannot\ntell whether it got everything.\n\n##\n[…]\nfollow-up.\n\n---\n*Disclosure: this change was authored with AI assistance (Claude Code);\nI have reviewed it and will shepherd it through review.*\n\nSigned-off-by: Cedric Conday <neumann.alpha@gmail.com>",
"is_bot": false,
"headline": "fix(mcp): Report total_count and truncated on get_services and get_sp…",
"author_name": "Cedric Conday",
"author_login": "CedricConday",
"committed_at": "2026-07-01T03:21:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5c3a19badbaa53578ec7001024ff766cdb39f226",
"body": "## Which problem is this PR solving?\n- Resolves #8824 \n\n## Description of the changes\n\n`DistributedElectionParticipant.Close()` now calls\n`lock.Forfeit(resourceName)`\nwhen the instance is the leader, immediately releasing the distributed\nlock\ninstead of waiting for TTL expiry (~60s default).\n\nThe fi\n[…]\nstand and can explain every line of the change.\n\n---------\n\nSigned-off-by: Sarva Dubey <sarvadubey@gmail.com>\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "fix(sampling): Forfeit leader lock on graceful shutdown (#8825)",
"author_name": "Sarva Dubey",
"author_login": "HESleagacy",
"committed_at": "2026-06-30T22:58:43Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "29ac1fbd288ba9fb812d27af91c713ca9ed882fc",
"body": "## Which problem is this PR solving?\n- Part of #8811\n\n## Description of the changes\n- Implements `tracestore.SummaryReader` natively for the v2\nElasticsearch backend (ADR-010 Milestone 5). Until now ES opted out and\nsummaries were produced by the `computeSummaries` fallback, which loads\nevery span o\n[…]\n-----\n\nSigned-off-by: Me Priyank <pvonlyone29@gmail.com>\nSigned-off-by: Priyank Verma <pvonlyone29@gmail.com>\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "feat(es): Native trace summaries (SummaryReader) (#8812)",
"author_name": "Priyank Verma",
"author_login": "Me-Priyank",
"committed_at": "2026-06-30T17:05:02Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4ce96677d66107f6804f8e4850da81119b9ec6cd",
"body": "## Which problem is this PR solving?\n\nPart of #8440\n\nAI agents connected to Jaeger via MCP have no way to discover or load\nreusable analysis playbooks (skills). This PR adds a single `read_skill`\nMCP tool that lets any connected agent read skill files through\nprogressive disclosure — start with the \n[…]\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>\nCo-authored-by: Yuri Shkuro <yurishkuro@users.noreply.github.com>\nCo-authored-by: Yuri Shkuro <github@ysh.us>",
"is_bot": false,
"headline": "feat(jaegermcp): Add `read_skill` tool for agent skill discovery (#8849)",
"author_name": "Soumya Raikwar",
"author_login": "SoumyaRaikwar",
"committed_at": "2026-06-29T22:58:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d4752b758617b7a06edf6bf2ca5efa5e476bb49f",
"body": "… supports it (#8895)\n\n## Summary\n\n- `NewReaderDecorator` now returns a `ReadMetricsDecoratorWithSummary`\n(embedding `ReadMetricsDecorator` by value + implementing\n`tracestore.SummaryReader`) when the wrapped reader implements that\noptional interface; otherwise it returns a plain `*ReadMetricsDecora\n[…]\nnt` and `make fmt` clean\n\n🤖 Generated with [Claude Code](https://claude.ai/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(tracestoremetrics): Forward SummaryReader when underlying reader…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-29T20:06:05Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6610d1dbacf2bdd24f16a9f25cabcb295f74cb90",
"body": "… (#8893)\n\nAdd db.system.name, db.operation.name, and db.query.text attributes to\nthe simulated Redis and MySQL client spans in the HotROD example, and\nexpose a DBOperationNameAttribute helper in the otelsemconv package.\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>",
"is_bot": false,
"headline": "feat(hotrod): Add standard OTEL DB semconv attributes to HotRod spans…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-29T18:37:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2bd332e9154f6443a108d93e9c9258d0fcf47b6c",
"body": "…to v2.1.2 (#8861)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/apache/cassandra-gocql-driver/v2](https://redirect.github.com/apach\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "fix(deps): update module github.com/apache/cassandra-gocql-driver/v2 …",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-29T05:48:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5f7c179a4501b2ab54484ccc548a05308362ebc7",
"body": "Fixes #8773\n\nFixes a few spelling typos in README files:\n- `cmd/jaeger/README.md`: \"verions\" → \"versions\"\n- `cmd/jaeger/internal/extension/remotesampling/README.md`: \"Exension\" →\n\"Extension\"\n- `cmd/jaeger/internal/integration/README.md`: \"Exension\" → \"Extension\"\n- `cmd/jaeger/internal/extension/expvar/README.md`: \"implementaion\" →\n\"implementation\"\n\nDocumentation-only change; no code or behavior affected.\n\n---------\n\nSigned-off-by: DonaldRaph <62525712+donaldraph@users.noreply.github.com>",
"is_bot": false,
"headline": "Fix typos in README files (#8774)",
"author_name": "Donald Anyamba",
"author_login": "donaldraph",
"committed_at": "2026-06-29T05:38:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3e2f63946ec2c1c8c6222ca8438501b2e83a30b5",
"body": "This PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/cache](https://redirect.github.com/actions/cache) | action |\nmajor | `v5.1.0` → `v6.1.0` |\n| [actions/checkout](https://redirect.github.com/actions/checkout) |\naction | major | `v6` → `v7` |\n| \n[…]\njcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "chore(deps): update github-actions deps (major) (#8865)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-29T05:33:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "89dd8f016a74e6d98b280299c218d0ddf8496ad1",
"body": "…862)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/dgraph-io/badger/v4](https://redirect.github.com/dgraph-io/badger)\n| `v4.9.1` → \n[…]\njcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "fix(deps): update module github.com/dgraph-io/badger/v4 to v4.9.2 (#8…",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-29T05:32:13Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f14c8e008bfcafbd6c9929a8162a86328b877702",
"body": "## Which problem is this PR solving?\n- Partial fix for #5506\n\n## Description of the changes\n- Enabled the `argument-limit` revive linter rule\n- No code changes required - the codebase already complies with this\nrule\n- The `argument-limit` rule enforces a maximum number of function\nparameters, promot\n[…]\nommits\n- [x] I have added unit tests for the new functionality\n- [x] I have run lint and test steps successfully\n - for `jaeger`: `make lint test`\n\nSigned-off-by: SamyakBorkar <2022bit037@sggs.ac.in>",
"is_bot": false,
"headline": "Enable argument-limit linter rule (#7969)",
"author_name": "Samyak Borkar",
"author_login": "SamyakBorkar",
"committed_at": "2026-06-29T05:31:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "32db9b3256fbaf09e37140cd5898f7ee250b30b7",
"body": "….4.2 (#8863)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/elastic/go-elasticsearch/v9](https://redirect.github.com/elastic/go-elas\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "fix(deps): update module github.com/elastic/go-elasticsearch/v9 to v9…",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-29T00:32:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f6cfd7fc5adb5aaf45f3039f2bd8ac5d80ed1683",
"body": "This PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/ClickHouse/ch-go](https://redirect.github.com/ClickHouse/ch-go)\n| `v0.71.0` → `v0.73.0`\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yMDkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "fix(deps): update all clickhouse packages (#8723)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-28T16:14:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3bcd98984260119e4662334bb5608f6b770a9cc7",
"body": "## Which problem is this PR solving?\n- Part of #4708 (RFC 0004 Phase 2). Carved out per @yurishkuro's\nsuggestion that the `request`/ctx change land as a standalone\nrefactoring PR before the data stream client work.\n\n## Description of the changes\n- The direct-HTTP Elasticsearch client hardcoded `cont\n[…]\ns successfully: `make lint test`\n\n## AI Usage in this PR (choose one)\n\n- [x] **Moderate**: AI helped with code generation or debugging specific\nparts\n\nSigned-off-by: Me Priyank <pvonlyone29@gmail.com>",
"is_bot": false,
"headline": "refactor(es): Thread context.Context through the ES REST client (#8873)",
"author_name": "Priyank Verma",
"author_login": "Me-Priyank",
"committed_at": "2026-06-27T14:52:54Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "093d9bce5a47da3f9cdc8b679f20d426e3f72e3d",
"body": "…write path (#8833)\n\n## Which problem is this PR solving?\n- Part of #4708 (RFC 0004 Phase 2, PR 1 of 2)\n\n## Description of the changes\n- Introduces the `DataStreamRotation` index-rotation strategy\n(`WriteTarget` → data stream name, `ReadTargets` → data stream name /\noptional read alias, `WriteOpType\n[…]\n----\n\nSigned-off-by: Me Priyank <pvonlyone29@gmail.com>\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(es): Add DataStreamRotation strategy and data-stream-aware span …",
"author_name": "Priyank Verma",
"author_login": "Me-Priyank",
"committed_at": "2026-06-27T02:22:11Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6028fb57942412f80ac6a428170e6c3c7a3191a0",
"body": "…#8870)\n\nCloses #8869\n\nFollows up on #8868.\n\n## Summary\n\n- Rename `IndexPrefixSeparator` → `IndexSeparator`\n- Rename `Span/Service/Dependency/SamplingTemplateName` → `*IndexName` —\ntemplate creation is a marginal use case; index naming is the primary\none\n- Delete the four `*IndexBaseName` constants \n[…]\n`make fmt` — no changes\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor(es): Rename index name constants, eliminate *IndexBaseName (…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-26T23:33:00Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9fdf8c3f2d87376adca4151c9c121b0ff5895492",
"body": "…855)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector](h\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "fix(deps): update all otel collector contrib packages to v0.155.0 (#8…",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-26T22:16:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "05a31dcffb7eec460019446c46a3428653d5459a",
"body": "This PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/cenkalti/backoff/v5](https://redirect.github.com/cenkalti/backoff)\n| `v5.0.3` → `v6.0.1\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "fix(deps): update module github.com/cenkalti/backoff/v5 to v6 (#8866)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-26T22:08:52Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6bb6bb143c3414b7176f8b1b1d64cdfe4d87440d",
"body": "This PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [actions/cache](https://redirect.github.com/actions/cache) | action |\nminor | `v5.0.1` → `v5.1.0` |\n| [actions/setup-go](https://redirect.github.com/actions/setup-go) |\naction | minor | `v6.4.0` → `v6.5\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "chore(deps): update github-actions deps (#8864)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-26T22:06:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6a26499b7d4dd4522daa71e785d3a9a8b48afa2d",
"body": "…x param from Resolved*Rotation (#8868)\n\nCloses #8867\n\n## Summary\n\n- Moves `SpanTemplateName`, `ServiceTemplateName`,\n`DependencyTemplateName`, `SamplingTemplateName` and the four\n`*IndexBaseName` constants from `internal/storage/elasticsearch/indices`\ninto `internal/storage/elasticsearch/config`.\n-\n[…]\n`make fmt` — no changes\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor(es): Move index name constants to config package, drop prefi…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-26T21:15:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "632d9df29c1c406dac3aefdba61319a87e0b0022",
"body": "This PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[go.opentelemetry.io/collector/client](https://redirect.github.com/open-telemetry/opentelemetry-col\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yNDIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "fix(deps): update all otel collector packages (#8860)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-26T18:54:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "515d8055d39a00eb5f094ca990c74277c5c16f67",
"body": "## Which problem is this PR solving?\n\nThe ES v2 write path computes `parentSpanID` from the OTEL span but\nnever writes it to the `parentSpanID` field in the ES document (the\nfield was marked \"deprecated\"). This forces read-side code (e.g. the\nnative trace summaries in #8812) to use expensive `top_hi\n[…]\nssfully: `make lint test`\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(es): Populate parentSpanID field on write path (#8859)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-26T16:09:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fdb5760d8fa1daab8d8c97401a519ff59ba3e313",
"body": "## Which problem is this PR solving?\n- Resolves #8805\n\n## Description of the changes\n- `ComputeCriticalPathFromTraces`\n(`cmd/jaeger/internal/extension/jaegermcp/internal/criticalpath`)\ntreated an empty result slice as a failure. A valid trace can\nlegitimately produce an empty critical path (e.g. a s\n[…]\n-----\n\nSigned-off-by: Me Priyank <pvonlyone29@gmail.com>\nSigned-off-by: Priyank Verma <pvonlyone29@gmail.com>\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "fix(mcp): Don't error on empty critical path (#8806)",
"author_name": "Priyank Verma",
"author_login": "Me-Priyank",
"committed_at": "2026-06-26T15:03:02Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "05cf5508bdc5998f0460295c18b35e1b8aff9955",
"body": "…(#8815)\n\n## Which problem is this PR solving?\n- Towards: #8691 \n\n## Description of the changes\n- When jaeger is stopped in between the test, http clients for\nwriting/reading phase still remain and so as their go routines causing\nleaks. To fix them, idle connections are closed on cleanup.\n\n## How wa\n[…]\ntions)\n- [ ] **Moderate**: AI helped with code generation or debugging specific\nparts\n- [ ] **Heavy**: AI generated most or all of the code changes\n\nSigned-off-by: Manik Mehta <mehtamanik96@gmail.com>",
"is_bot": false,
"headline": "[chore] Close idle connections for http clients in integration tests …",
"author_name": "Manik Mehta",
"author_login": "Manik2708",
"committed_at": "2026-06-26T14:09:21Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7caca72f45ef3c8057d22bb24b6bdbcaa572e931",
"body": "…(#8842)\n\n## Summary\n\n- Extracts `NewClient()` and all client-construction helpers from\n`internal/storage/elasticsearch/config` into a new\n`internal/storage/elasticsearch/clientbuilder` package\n- Makes the `config` package a pure data package with no imports of\n`olivere/elastic`, `go-elasticsearch/v\n[…]\nw structure\n\nCloses #8841\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor(es): Extract client construction into clientbuilder package …",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-26T00:53:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7019bbcc9c4a5bab89c38e687cb1ca7b749624ff",
"body": "This PR contains the following updates:\n\n| Package | Type | Update | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|---|---|\n| [golang.org/x/exp](https://pkg.go.dev/golang.org/x/exp) | require |\ndigest \n[…]\njcmVhdGVkSW5WZXIiOiI0My4yMDYuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "fix(deps): update all golang.org/x packages (#8682)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-25T22:21:53Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "54c6d6dfcc15aca71a9f4d132cae5d749e2712fd",
"body": "…ns (#8835)\n\n## Which problem is this PR solving?\n- Towards #8831 \n\nOCB's generated `main.go` calls vanilla `otelcol.NewCommand`, skipping\n`cmd/jaeger/main.go` entirely, so custom distributions lose all\nJaeger-specific subcommands and the embedded all-in-one default config.\nThis PR exports the CLI b\n[…]\nest`\n\n## AI Usage in this PR \n- [x] **Moderate**: AI helped with code generation or debugging specific\nparts\n\n---------\n\nSigned-off-by: iammdzaidalam <161572905+iammdzaidalam@users.noreply.github.com>",
"is_bot": false,
"headline": "feat: Export reusable jaegercli.NewCommand for custom OCB distributio…",
"author_name": "Zaid",
"author_login": "iammdzaidalam",
"committed_at": "2026-06-25T14:56:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "dd5381f8ec7a298095670324122fdcdbe0b7474c",
"body": "## Description\nThe `jaegermcp` extension started an HTTP server goroutine in `Start()` \nwith no lifecycle synchronization. `Shutdown()` called \n`httpServer.Shutdown(ctx)` but returned immediately without waiting for \nthe goroutine to finish, creating a race condition where the process \ncould exit wh\n[…]\n\n## Checklist\n- [x] I have read CONTRIBUTING.md\n- [x] Commit is signed off (DCO)\n- [x] Change is consistent with existing patterns in the codebase\n\nSigned-off-by: g-k-s-03 <govindsingh97704@gmail.com>",
"is_bot": false,
"headline": "fix(jaegermcp): wait for server goroutine to exit on Shutdown (#8852)",
"author_name": "govind singh",
"author_login": "g-k-s-03",
"committed_at": "2026-06-25T14:48:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "458909045711cc379f0ca507a489aa1cd3aa2cca",
"body": "## Which problem is this PR solving?\n\n- Fixes #8843\n\nThe `get_span_details` MCP tool validates `trace_id` via `parseTraceID`\nbut passes the `span_ids` array through unchecked. A malformed `span_id`\n(wrong length or non-hex, e.g. `\"abc\"`) is never caught at the boundary,\nso `buildQuery` builds and ru\n[…]\nmd\n- [x] I have signed all commits\n- [x] I have added unit tests for the new functionality\n- [x] I have run lint and test steps successfully\n\n---------\n\nSigned-off-by: truffle <truffleagent@gmail.com>",
"is_bot": false,
"headline": "fix(mcp): Validate span_id format before querying backend (#8845)",
"author_name": "Truffle",
"author_login": "truffle-dev",
"committed_at": "2026-06-25T02:41:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "10a149c2325171a6988ad1a4d392de2192d66a77",
"body": "…design (#8840)\n\n## Summary\n\nIntroduces a new `max_trace_duration` configuration option (default:\n**24h**) that controls how far beyond the requested time window the\nES/OS reader looks for spans belonging to a trace.\n\n### 🛑 Breaking change\n\nPreviously, `FindTraces` used a hardcoded **±1h** padding o\n[…]\n && make test` — all pass\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(es): Add configurable max_trace_duration and improve time-range …",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-24T04:28:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "51ae927fd83ca45cfbe4cb0657f7f45d73efc888",
"body": "….go (#8839)\n\n## Summary\n- Renames rotation implementation files in\n`internal/storage/elasticsearch/indices/` for better discoverability\n- Concrete implementations: `aliased.go` → `rotation_aliased.go`,\n`periodic.go` → `rotation_periodic.go`\n- Decorator implementations: `logging.go` →\n`rotation_deco\n[…]\n renames, no code changes\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor(es): Rename rotation implementation files to rotation_{name}…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-24T03:39:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "73ac0e6d903d246fa6e571dc8d6d67428682be05",
"body": "…l (#8822)\n\n## Which problem is this PR solving?\n\n- The integration test harness has no way to stop a binary mid-test and\nstart a different one, which is needed for backward compatibility\ntesting (start old binary, write data, stop it, start new binary, verify\nreads). This PR adds that capability as\n[…]\nIDELINES.md#ai-usage-policy).\n- [x] **Light**: AI provided minor assistance (formatting, simple\nsuggestions)\n\n---------\n\nSigned-off-by: iammdzaidalam <161572905+iammdzaidalam@users.noreply.github.com>",
"is_bot": false,
"headline": "[chore]: Add Binary.Stop() and BinaryPath for mid-test process contro…",
"author_name": "Zaid",
"author_login": "iammdzaidalam",
"committed_at": "2026-06-24T03:16:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d17b353ec767e6f9e834d85ee678ab61c7da4cca",
"body": "## Summary\n\n- Add e2e tests for `manual_rollover` and `auto_rollover` rotation\nstrategies on both ES and OpenSearch\n- Create config YAML variants with unique `index_prefix` values to avoid\ncollision with existing tests\n- Add setup helpers that use `go run ./cmd/es-rollover init` to create\ninitial in\n[…]\n ES 8.x, 9.x, OS 2.x, 3.x\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(es): Add e2e integration tests for all rotation strategies (#8838)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-23T22:01:45Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "06e2a7cf1708daaac418651937fb7f7cc5687a28",
"body": "… tests (#8756)\n\n## Which problem is this PR solving?\n- Resolves #8741\n\n## Description of the changes\n- Refactored `TestDependencyReader_GetDependencies` and\n`TestDowngradedDependencyReader_GetDependencies` in\n[depreader_test.go](file:///d:/OpenSource/jaeger/internal/storage/v2/v1adapter/depreader_t\n[…]\ntion or debugging specific\nparts\n- [ ] **Heavy**: AI generated most or all of the code changes\n\nSigned-off-by: kavyarathod05 <kavya.rathod@vwo.com>\nCo-authored-by: kavyarathod05 <kavya.rathod@vwo.com>",
"is_bot": false,
"headline": "test(v1adapter): fix mock expectation validation in dependency reader…",
"author_name": "kavya",
"author_login": "kavyarathod05",
"committed_at": "2026-06-23T21:12:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d5e3be86da0560d6fa14c9bfda860270ef600715",
"body": "…(#8836)\n\n## Summary\n\n- Add OpenSearch 3.x and Elasticsearch 9.x `direct` mode to CI matrix\n- Fix ISM (Index State Management) rollover support for OpenSearch:\n - Route ILM client to `_plugins/_ism/policies/` endpoint on OpenSearch\n - Fix version parsing to handle multi-digit major versions\n - Ad\n[…]\ndirect\npass\n\nCloses #8829\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(es): Improve ES/OS integration test CI coverage and reduce noise …",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-23T17:03:08Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3084f6a4c085b480f80dffae5250ece7107f5d49",
"body": "…rsion (#8830)\n\n## Summary\n\nFixes #8829 — OpenSearch index templates were emitting the\nElasticsearch-specific `lifecycle` block (which OpenSearch silently\nignores), causing ISM rollover to fail with \"Missing rollover_alias\nindex setting\".\n\n- When `UseILM` is enabled and the backend is OpenSearch, in\n[…]\npenSearch 3.7.0\ncontainer\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(es): Emit OpenSearch ISM rollover_alias and consolidate BackendVe…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-23T15:08:30Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d5c3dd6393b9f87a12b11330eed135cdcdbcb550",
"body": "…8828)\n\n## Summary\n\n- Add base64 trace ID parsing to `/api/traces/{traceID}` (v1) and\n`/api/v3/traces/{trace_id}` (v3) HTTP endpoints\n- Parser tries hex first (backward compatible), then falls back to\nbase64 (standard, URL-safe, with/without padding)\n- Enables Jaeger UI to pass base64 trace IDs dire\n[…]\nses for affected packages\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(query): Accept base64-encoded trace IDs in HTTP API endpoints (#…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-23T02:08:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d5e2ccd4705e1ae200baf7438c09a64ded5dd78e",
"body": "Fixes several spelling typos in README files as identified in #8773:\n'verions' → 'versions', 'Exension' → 'Extension' (two files), and\n'implementaion' → 'implementation'.\n\n---\n\n_This contribution was AI-assisted (Claude). It's a small targeted fix —\nhappy to revise, or just close if it's not a direction you want. No\noffense taken._\n\nSigned-off-by: Maxwellm34 <maxwellmcinnis123@gmail.com>",
"is_bot": false,
"headline": "docs: fix typos in README files (#8786)",
"author_name": "Maxwell McInnis",
"author_login": "MaxwellM34",
"committed_at": "2026-06-22T05:23:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dff3fef7e1711192fc3078577b5a22e135212ab6",
"body": "… deprecation (#8823)\n\n## Summary\n\nPhase 1b of [RFC\n0004](https://github.com/jaegertracing/jaeger/blob/main/docs/rfc/0004-elasticsearch-data-streams.md)\n— introduces the new `rotation` config structure for ES/OpenSearch index\nmanagement while preserving full backward compatibility with existing\nflag\n[…]\nnt`, `make test` all pass\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor(es): Introduce index rotation config schema with legacy flag…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-22T04:49:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "abd8b22e04ea8022263cc8f8468e49f1050adcbf",
"body": "## Which problem is this PR solving?\n- Resolves #8748\n\n## Description of the changes\n- Removed `fswatcher` from `FactoryBase` — it was watching the ES\npassword file for changes and swapping the entire client on each update,\nwhich required a background goroutine\n- The existing `auth.TokenProvider` ca\n[…]\n-by: iammdzaidalam <161572905+iammdzaidalam@users.noreply.github.com>\nSigned-off-by: Yuri Shkuro <yurishkuro@users.noreply.github.com>\nCo-authored-by: Yuri Shkuro <yurishkuro@users.noreply.github.com>",
"is_bot": false,
"headline": "chore(storage): remove fswatcher from Elasticsearch factory (#8750)",
"author_name": "Zaid",
"author_login": "iammdzaidalam",
"committed_at": "2026-06-22T02:37:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "353795611f820ef9de70a7f2e2d9018a82d66ea4",
"body": "## Summary\n\n- Adds RFC 0004 proposing Data Streams as a fourth index management\nstrategy for Jaeger's ES/OpenSearch span storage\n- Covers naming conventions, composable index templates, write/read path\nchanges, lifecycle policy management, configuration (single\n`index_management` enum replacing bool\n[…]\nW]` items in the document\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "RFC 0004: Elasticsearch/OpenSearch Data Streams for span storage (#8804)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-22T02:30:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "daaf2f4c2f39bb082038d96e27814427c2892b95",
"body": "…ace (#8826)\n\n## Summary\n- Migrates the dependency store, metric store, and sampling store to use\nthe `Rotation` interface introduced in #8808\n- Removes legacy `TimeRangeIndexFn`-based index computation and\n`useReadWriteAliases` boolean branching from these stores\n- All ES storage components now use\n[…]\nby: Yuri Shkuro <yurishkuro@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "refactor(es): Migrate depstore and metricstore to use Rotation interf…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-22T01:51:29Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "126e568c9701c2f2325b918800932d37f9fce515",
"body": "…` in integration tests (#8814)\n\n## Which problem is this PR solving?\n- Towards: #8691 \n\n## Description of the changes\n- The trace id of `default.json` is clashing with `example.json` which\nneeds to fixed before introducing backward compatibility tests\n\n## How was this change tested?\n- Integration t\n[…]\ntions)\n- [ ] **Moderate**: AI helped with code generation or debugging specific\nparts\n- [ ] **Heavy**: AI generated most or all of the code changes\n\nSigned-off-by: Manik Mehta <mehtamanik96@gmail.com>",
"is_bot": false,
"headline": "[chore] Update trace id in `defaul.json` clashing with `example.json…",
"author_name": "Manik Mehta",
"author_login": "Manik2708",
"committed_at": "2026-06-21T19:22:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "788465472aef7b45488d56eb8d855189fa6a68b6",
"body": "## Summary\n\n- Introduces a `Rotation` interface in\n`internal/storage/elasticsearch/indices/` with `WriteTarget(time.Time)\nstring`, `ReadTargets(start, end time.Time) []string`, and\n`WriteOpType() WriteOpType` methods\n- Implements `PeriodicRotation` (time-based indices), `AliasedRotation`\n(rollover a\n[…]\ntest` passes (3594 tests)\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor(es): Introduce Rotation interface for index management (#8808)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-20T15:51:07Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ced2c1c984a3ba18d39ba3f06e81427de315f44f",
"body": "Fixes #8798\n\n## Summary\n- Add a `wait_for_daemonset` helper to the OTel demo deploy script.\n- Wait for `DaemonSet/otel-collector-agent` instead of\n`Deployment/otel-collector` after the OTel Helm release upgrades.\n\n## Why\nPost-merge manual deploy from `main` failed after Helm successfully\nupgraded Op\n[…]\nr-agent` exists and\n`Deployment/otel-collector` does not.\n- `make fmt`\n- `make lint`\n- `make test`\n\nSigned-off-by: Jonah Kowall <jonahk@spacelift.io>\nCo-authored-by: Jonah Kowall <jonahk@spacelift.io>",
"is_bot": false,
"headline": "Fix OTel demo collector rollout and receiver bind (#8803)",
"author_name": "Jonah Kowall",
"author_login": "jkowall",
"committed_at": "2026-06-18T21:46:11Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "594df00b1181228f16d5578142fc08b76dcf07be",
"body": "Fixes #8798\n\n## Summary\n- Remove `--force` from OKE demo Helm upgrades so Helm v4 can roll the\ndemo forward.\n- Keep normal upgrade mode as `helm upgrade --install --wait` for Jaeger\nimage/tag roll-forward.\n- Add workflow controls for selecting the original OCI demo, the OTel\ndemo, or both demo stack\n[…]\n`, `health_check`, and no rendered\n`hostPort`.\n- `make fmt`\n- `make lint`\n- `make test`\n\n---------\n\nSigned-off-by: Jonah Kowall <jonahk@spacelift.io>\nCo-authored-by: Jonah Kowall <jonahk@spacelift.io>",
"is_bot": false,
"headline": "Fix OKE demo upgrades and OTel stack rollout (#8799)",
"author_name": "Jonah Kowall",
"author_login": "jkowall",
"committed_at": "2026-06-18T18:37:39Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8528286209b3bc6b57c2e8b64172038828272ab8",
"body": "This PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[go.opentelemetry.io/collector/config/confighttp/xconfighttp](https://redirect.github.com/open-tele\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yMTkuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIzMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "fix(deps): update all otel collector packages (#8793)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-18T14:54:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "595759a0ac5ba8eae3ae59d120bfb4d24880f602",
"body": "## Summary\n\n- Adds public facade packages (`components/`) that expose component\n`NewFactory` functions, enabling users to build custom Jaeger\ndistributions using\n[ocb](https://github.com/open-telemetry/opentelemetry-collector/tree/main/cmd/builder)\n(OpenTelemetry Collector Builder)\n- Includes a refe\n[…]\ncises all facade packages\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: Support custom Jaeger distributions via ocb (#8800)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-18T04:21:14Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "11b08c08b216d03e52f1d8df04f071ddf57091c3",
"body": "Fixes #8796\n\n## Summary\n- Read the Node.js version from the active Jaeger UI checkout,\nrespecting `JAEGER_UI_DIR` for snapshot builds.\n- Enable Corepack after `actions/setup-node` so the UI rebuild uses the\nnpm version declared by the checked-out UI package metadata.\n\n## Why\nMain currently fails to \n[…]\n/storage/v2/grpc`; the package passed when rerun\ndirectly, and the second full `make test` passed.\n\nSigned-off-by: Jonah Kowall <jonahk@spacelift.io>\nCo-authored-by: Jonah Kowall <jonahk@spacelift.io>",
"is_bot": false,
"headline": "Enable Corepack for snapshot UI builds (#8797)",
"author_name": "Jonah Kowall",
"author_login": "jkowall",
"committed_at": "2026-06-17T14:39:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7c9b2f6ef08a0cae61aa64f67ffb7618798e4d9d",
"body": "This PR contains the following updates:\n\n| Package | Update | Change |\n|---|---|---|\n|\n[opensearchproject/opensearch](https://redirect.github.com/opensearch-project/OpenSearch)\n| minor | `3.6.0` → `3.7.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>opensearch-project/OpenSearch\n(opensearchproject/\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yMTkuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "chore(deps): update opensearch 3.x docker images to v3.7.0 (#8795)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-17T03:18:32Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "da8e9650ad8a1e4f3396d38f1756c0faf87be4ea",
"body": "This PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| alpine | final | minor | `3.23.4` → `3.24.1` |\n| alpine | stage | minor | `3.23.4` → `3.24.1` |\n\n---\n\n### Configuration\n\n📅 **Schedule**: (UTC)\n\n- Branch creation\n - \"on the first day of the month\"\n- Au\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yMTkuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "chore(deps): update alpine docker tag to v3.24.1 (#8794)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-17T03:18:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6e1bc4d640abad590bb7b696bb8e28564744335e",
"body": "This PR contains the following updates:\n\n| Package | Update | Change |\n|---|---|---|\n| [prom/prometheus](https://redirect.github.com/prometheus/prometheus) |\nminor | `v3.11.1` → `v3.12.0` |\n\n---\n\n> [!WARNING]\n> Some dependencies could not be looked up. Check the [Dependency\nDashboard](../issues/5586\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yMDkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "chore(deps): update prom/prometheus docker tag to v3.12.0 (#8722)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-17T03:01:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "50341526b781fa111ad1e78ce826acde49a8c346",
"body": "…759)\n\nThis PR contains the following updates:\n\n| Package | Change |\n[Age](https://docs.renovatebot.com/merge-confidence/) |\n[Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|\n[github.com/open-telemetry/opentelemetry-collector-contrib/cmd/schemagen](https://redirect.g\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yMTkuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "fix(deps): update all otel collector contrib packages to v0.154.0 (#8…",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-17T01:55:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0c157fe366c53118b69e02e1986ac5fd2272da75",
"body": "## Summary\n\n- make manual OKE demo workflow dispatch use upgrade mode by default\n- add an explicit `deploy_mode` input so clean reinstalls are opt-in\n- replace the unbounded clean-mode Helm deletion loop with `helm\nuninstall --wait --timeout` and release diagnostics on failure\n\n## Root cause\n\nThe ma\n[…]\nopriate\nscript`. The public demo endpoints were still returning 200 after\ncancellation.\n\n---------\n\nSigned-off-by: Jonah Kowall <jonahk@spacelift.io>\nCo-authored-by: Jonah Kowall <jonahk@spacelift.io>",
"is_bot": false,
"headline": "[codex] Bound OKE demo clean deploys (#8791)",
"author_name": "Jonah Kowall",
"author_login": "jkowall",
"committed_at": "2026-06-17T01:50:06Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "288a4b4799b5a2e8eaf6d14d0abdafe64d54f192",
"body": "## Summary\n\n- deploy the OKE demo from `jaeger-snapshot` and\n`example-hotrod-snapshot` images instead of release image repositories\n- default the deployed snapshot tag to the workflow SHA, with a manual\noverride for workflow dispatch\n- make the deploy job wait for Helm releases, verify Kubernetes\nro\n[…]\ngithub/workflows/ci-deploy-demo.yml`\n- `git diff --check`\n- `make fmt`\n- `make lint`\n- `make test`\n\nSigned-off-by: Jonah Kowall <jonahk@spacelift.io>\nCo-authored-by: Jonah Kowall <jonahk@spacelift.io>",
"is_bot": false,
"headline": "[codex] Deploy OKE demo from snapshot images (#8789)",
"author_name": "Jonah Kowall",
"author_login": "jkowall",
"committed_at": "2026-06-16T15:43:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "18f6e25e04da8ccd7a9322731ae76b59563f4bd4",
"body": "## Summary\n- Skip release-check (git fetch/describe) when `JAEGER_UI_DIR` is a\ncustom path, since the intent is to force a source build from that tree.\n- Have `rebuild-ui` automatically invoke `build-ui` to copy gzipped\nassets into the Go source tree, eliminating the need for a separate\nstep.\n\n## Te\n[…]\n release-check\nstill works as before\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(build): Fix rebuild-ui with custom JAEGER_UI_DIR (#8787)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-16T02:02:47Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6e10b96a759c0240e76e5ec21a3b48275f130e13",
"body": "## Which problem is this PR solving?\n- Part of #7595 (Part 1 of 2: gRPC Handler)\n- The API v3 QueryService protobuf definition includes a\n`GetDependencies` RPC, but it was never actually implemented in the V3\n`Handler`. As a result, any client attempting to query service\ndependencies via the V3 gRPC\n[…]\nith code generation or debugging specific\nparts\n\n---------\n\nSigned-off-by: harsh6921 <pachorihimanshu0@gmail.com>\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Yuri Shkuro <github@ysh.us>",
"is_bot": false,
"headline": "feat(apiv3): Implement GetDependencies gRPC RPC handler (#8745)",
"author_name": "Harsh-6291",
"author_login": "Harsh-6291",
"committed_at": "2026-06-15T16:28:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a1691354a80130013d017792463a06c880018fc3",
"body": "Resolves #5888\nContributes to #8669\n\nAdded SLSA Level 3 provenance generation to the release pipeline to\nsatisfy OpenSSF Scorecard requirements and improve artifact\nverification.\n\n- Hooked into `ci-release.yml` to generate a SHA256 checksum of all\n`.tar.gz` and `.zip` artifacts in the `deploy/` dire\n[…]\nbugging specific\nparts\n- [ ] **Heavy**: AI generated most or all of the code changes\n\nSigned-off-by: Victor Chidera Obiezue <obiezuechidera@gmail.com>\nCo-authored-by: Jonah Kowall <jkowall@kowall.net>",
"is_bot": false,
"headline": "chore(ci): add SLSA provenance to release workflow (#8686)",
"author_name": "victor obi",
"author_login": "vic-comm",
"committed_at": "2026-06-15T15:46:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "592490ed4d838134ada961cab7b8f2149364a0cd",
"body": "## Summary\n\nFixes #8777.\n\n- Adds `scripts/utils/retry.sh` — a generic exponential-backoff retry\nwrapper (default 3 attempts, 15s → 30s → 60s; `ATTEMPTS` and `BACKOFF`\nenv-overridable).\n- Migrates every CI docker pull site (12 files) to wrap its pull with\nthe new helper. For compose-based sites, the \n[…]\n\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nSigned-off-by: Yuri Shkuro <yurishkuro@users.noreply.github.com>\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "ci(retry): Add retry wrapper for transient docker image pulls (#8779)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-13T21:30:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e0b90521b3bd8ce3ff0c11bb41ef2e540328f4c5",
"body": "## Which problem is this PR solving?\n- Part of https://github.com/jaegertracing/jaeger-ui/issues/1307\n\n## Description of the changes\n- Add OTLP proxy config for UI self tracing\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>",
"is_bot": false,
"headline": "Add OTLP proxy config for UI self tracing (#8778)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-13T19:23:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8eb969d487db7451a39a71c9a38d68c80a6a9596",
"body": "This PR contains the following updates:\n\n| Update | Change |\n|---|---|\n| lockFileMaintenance | All locks refreshed |\n\n---\n\n> [!WARNING]\n> Some dependencies could not be looked up. Check the [Dependency\nDashboard](../issues/5586) for more information.\n\n🔧 This Pull Request updates lock files to use th\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yMDkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjIwOS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "chore(deps): lock file maintenance (#8725)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-12T00:11:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "da257e41a96c4dbad98f83f85a60be6bd4e334f3",
"body": "This PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| cassandra | final | digest | `2c6576f` → `755db00` |\n\n---\n\n> [!WARNING]\n> Some dependencies could not be looked up. Check the [Dependency\nDashboard](../issues/5586) for more information.\n\n---\n\n### Confi\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yMDIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "chore(deps): update cassandra:5.0.8 docker digest to 755db00 (#8678)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-12T00:09:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "260e647e9f46f070a7296bdfd56d4886d8da0544",
"body": "## Summary\n\n- documents `Pinned-Dependencies` as an accepted OpenSSF Scorecard\nexception\n- explains why Jaeger keeps dynamic Docker base image args in component\nDockerfiles\n- links the exception back to #8671\n\n## Rationale\n\nThe release build path injects `base_image` and `debug_image` through\ncentra\n[…]\nch component Dockerfile\nwould add drift risk without improving the release build.\n\n## Validation\n\n- `make fmt`\n- `make lint`\n- `make test`\n\nRefs #8671\n\nSigned-off-by: Jonah Kowall <jkowall@kowall.net>",
"is_bot": false,
"headline": "docs(security): Document pinned dependency exception (#8716)",
"author_name": "Jonah Kowall",
"author_login": "jkowall",
"committed_at": "2026-06-10T21:05:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e166869dcce3fbeedf4e497e1d147edf67fa948f",
"body": "…8753)",
"is_bot": false,
"headline": "fix(jptrace): Tolerate non-slice warnings attribute in AddWarnings (#…",
"author_name": "Truffle",
"author_login": "truffle-dev",
"committed_at": "2026-06-10T16:47:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "03581b76485c640df89dd05ff65c69392f575479",
"body": "…730)\n\n## Which problem is this PR solving?\nFollow-up to #8711 per @yurishkuro's post-merge feedback.\n\n## Description of the changes\n- Cleaned up stale v1/v2 references from comments in `config.go`\n- Removed the dead flag path (`AddFlags`, `InitFromViper`) and helpers\nthat only served it (`parseKV`,\n[…]\nUsage in this PR (choose one)\n- [x] **Moderate**: AI helped with code generation or debugging specific\nparts\n\n---------\n\nSigned-off-by: iammdzaidalam <161572905+iammdzaidalam@users.noreply.github.com>",
"is_bot": false,
"headline": "fix(prometheus): remove dead v1 flag path and stale v1 references (#8…",
"author_name": "Zaid",
"author_login": "iammdzaidalam",
"committed_at": "2026-06-09T15:19:11Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5271b013a5b89fa5a5943903ec4f02acab7ff2c2",
"body": null,
"is_bot": false,
"headline": "[codex] fix(ci): Pin Python dependencies by hash (#8708)",
"author_name": "Jonah Kowall",
"author_login": "jkowall",
"committed_at": "2026-06-09T13:50:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9495d4c613dd1bd15cd491d2d52c66f307ccced5",
"body": "## Which problem is this PR solving?\n- Closes #8739.\n\nThe Jaeger SPA wants to submit browser-side spans (page-load\ninstrumentation, AI-chat telemetry, whatever). Browsers can only POST to\nthe same origin without a CORS preflight, and the OTel-collector OTLP\nHTTP receiver listens on a different port \n[…]\nage in this PR (choose one)\n- [x] **Heavy**: AI generated most or all of the code changes\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(query): Support OTLP export from Jaeger UI without CORS (#8740)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-08T18:01:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ba84b10fe10478d4c9f96cbe6ef9ee911653ce96",
"body": "## Which problem is this PR solving?\nThe RFC's status header still said \\\"Draft\\\" and the free-form\nimplementation note only covered the §4.1 capability work. Several RFC\nsections have since shipped — most recently the Gemini launcher in #8732\n— and the doc should reflect that.\n\n## Description of th\n[…]\nt steps successfully: \\`make lint test\\` —\nN/A, doc-only.\n\n## AI Usage in this PR (choose one)\n- [x] **Heavy**: AI generated most or all of the code changes\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>",
"is_bot": false,
"headline": "docs(rfc): Reflect implementation status of RFC 0003 (#8736)",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-08T03:25:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "dab0bc1dd133dea187671a2b1784798a83b1ec35",
"body": "…car (#8732)\n\n## Which problem is this PR solving?\n- Closes #8731.\n- Implements RFC 0003 §4.2 / §4.3 for the Gemini reference sidecar.\n\nAfter #8727 landed, the chat-surface gate is fully backend-driven —\noperators no longer touch `config-ui.json`. What's left of the local\nsetup friction is \"two term\n[…]\nhub.com/jaegertracing/jaeger/blob/main/CONTRIBUTING_GUIDELINES.md#ai-usage-policy).\n- [x] **Heavy**: AI generated most or all of the code changes\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>",
"is_bot": false,
"headline": "feat(scripts): Add make run-ai-gemini launcher for the Gemini AI side…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-08T03:08:18Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "46bbe203725c1318e884814d25b7c16821b91fb5",
"body": "…8735)\n\n## Which problem is this PR solving?\n- Closes #8734.\n\nOperators running the launcher (#8732) reported a steady drip of:\n\n```\nINFO connection closed cause=\"read tcp [::1]:...->[::1]:16688: use of closed network connection\"\n```\n\n— one line per AI health-check cycle. The line comes from the acp\n[…]\nve run lint and test steps successfully: `make lint test`\n\n## AI Usage in this PR (choose one)\n- [x] **Heavy**: AI generated most or all of the code changes\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>",
"is_bot": false,
"headline": "fix(aihealth): Silence ACP SDK's per-cycle \"connection closed\" log (#…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-08T03:03:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ea86f511c76888a052fde8905e4de1493a51d40b",
"body": "…… (#8727)\n\n## Which problem is this PR solving?\n- Closes #8726\n- Builds on #8728 (which landed the `jaegerai/aihealth` package and RFC\n0003 in isolation).\n- Follows up jaegertracing/jaeger-ui#4034: the UI now drives the chat\nsurface from `backendCapabilities.aiAssistant`, which the backend wasn't\nw\n[…]\nhub.com/jaegertracing/jaeger/blob/main/CONTRIBUTING_GUIDELINES.md#ai-usage-policy).\n- [x] **Heavy**: AI generated most or all of the code changes\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>",
"is_bot": false,
"headline": "feat(query): Add backend-derived AI assistant capability with livenes…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-08T01:56:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bd16d08c685c7785e056ffb38d2118a14f031987",
"body": "…r + RFC 0003 (#8728)\n\n## Which problem is this PR solving?\n- Part of #8726.\n- Lays the foundation for the backend-derived\n`backendCapabilities.aiAssistant` flag introduced UI-side in\njaegertracing/jaeger-ui#4034.\n\n## Description of the changes\nTwo self-contained additions; nothing else changes.\n\n- \n[…]\nhub.com/jaegertracing/jaeger/blob/main/CONTRIBUTING_GUIDELINES.md#ai-usage-policy).\n- [x] **Heavy**: AI generated most or all of the code changes\n\n---------\n\nSigned-off-by: Yuri Shkuro <github@ysh.us>",
"is_bot": false,
"headline": "feat(aihealth): Add periodic health-checker package for the AI sideca…",
"author_name": "Yuri Shkuro",
"author_login": "yurishkuro",
"committed_at": "2026-06-07T22:27:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "04ed1651bd762daf30e36fdac836f459016f426c",
"body": "This PR contains the following updates:\n\n| Package | Update | Change |\n|---|---|---|\n| cr.jaegertracing.io/jaegertracing/jaeger | minor | `2.18.0` → `2.19.0`\n|\n| cr.jaegertracing.io/jaegertracing/jaeger-tracegen | minor | `2.18.0` →\n`2.19.0` |\n\n---\n\n> [!WARNING]\n> Some dependencies could not be look\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yMDkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjIwOS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "chore(deps): update all jaeger docker images to v2.19.0 (#8720)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-07T19:25:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fe80fcd24dade1593a35a4bf4e0af18715250088",
"body": "This PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|\n[rtCamp/action-slack-notify](https://redirect.github.com/rtCamp/action-slack-notify)\n| action | minor | `v2.3.0` → `v2.4.0` |\n\n---\n\n> [!WARNING]\n> Some dependencies could not be looked up. Check the [De\n[…]\njcmVhdGVkSW5WZXIiOiI0My4yMDkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjIwOS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->\n\nSigned-off-by: Mend Renovate <bot@renovateapp.com>",
"is_bot": false,
"headline": "chore(deps): update github-actions deps to v2.4.0 (#8721)",
"author_name": "Mend Renovate",
"author_login": "renovate-bot",
"committed_at": "2026-06-07T19:24:28Z",
"body_truncated": true,
"is_coding_agent": false
}
],
"releases_count": 99,
"commits_last_year": 776,
"latest_release_at": "2026-06-03T13:17:07Z",
"latest_release_tag": "v2.19.0",
"releases_from_tags": true,
"days_since_last_push": 2,
"active_weeks_last_year": 49,
"days_since_latest_release": 60,
"mean_days_between_releases": 22.4
},
"community": {
"has_readme": false,
"has_license": false,
"readme_badges": {
"hosts": [],
"total": 0,
"header": 0,
"collected": true,
"has_inspect_badge": false
},
"has_description": false,
"has_contributing": false,
"health_percentage": null,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "github.com/jaegertracing/jaeger",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": false,
"registry_url": "https://pkg.go.dev/github.com/jaegertracing/jaeger",
"is_deprecated": false,
"latest_version": "v1.76.0",
"repository_url": "https://github.com/jaegertracing/jaeger",
"versions_count": 99,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2025-12-03T16:07:08Z",
"latest_version_yanked": null,
"days_since_latest_publish": 242
}
]
},
"popularity": {
"forks": 0,
"stars": 0,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": {
"days": [],
"complete": true,
"collected": 0,
"total_stars": 0,
"collected_at": null
},
"open_issues_and_prs": 0
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": true,
"bootstrap_files": [
"Makefile",
"docker-compose/monitor/Makefile",
"docker-compose/tail-sampling/Makefile"
],
"api_schema_files": [
"examples/hotrod/services/driver/driver.proto",
"internal/proto/metrics/openmetrics.proto",
"internal/proto/metrics/otelspankind.proto"
],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"go.mod",
"internal/tools/go.mod",
"monitoring/jaeger-mixin/generate/go.mod",
"scripts/build/docker/debug/go.mod"
],
"largest_source_bytes": 185252,
"source_files_sampled": 1131,
"oversized_source_files": 5,
"agent_instruction_files": [
".github/copilot-instructions.md",
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 3968
},
"dependencies": {
"manifests": [
"go.mod"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"go"
],
"dependencies": [
{
"name": "github.com/ClickHouse/ch-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.73.0"
},
{
"name": "github.com/ClickHouse/clickhouse-go/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.47.0"
},
{
"name": "github.com/ag-ui-protocol/ag-ui/sdks/community/go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260605151526-e2c717d2194d"
},
{
"name": "github.com/apache/cassandra-gocql-driver/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.1.2"
},
{
"name": "github.com/asaskevich/govalidator",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20230301143203-a9d515a09cc2"
},
{
"name": "github.com/cenkalti/backoff/v6",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v6.0.1"
},
{
"name": "github.com/coder/acp-go-sdk",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.13.0"
},
{
"name": "github.com/davecgh/go-spew",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.2-0.20180830191138-d8f796af33cc"
},
{
"name": "github.com/dgraph-io/badger/v4",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v4.9.2"
},
{
"name": "github.com/elastic/elastic-transport-go/v8",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v8.9.0"
},
{
"name": "github.com/elastic/go-elasticsearch/v9",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v9.4.2"
},
{
"name": "github.com/go-logr/zapr",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.0"
},
{
"name": "github.com/gogo/googleapis",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.1"
},
{
"name": "github.com/gogo/protobuf",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.2"
},
{
"name": "github.com/google/gnostic-models",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.7.1"
},
{
"name": "github.com/google/uuid",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "github.com/gorilla/handlers",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.2"
},
{
"name": "github.com/gorilla/websocket",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.4-0.20250319132907-e064f32e3674"
},
{
"name": "github.com/jaegertracing/jaeger-idl",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.9.0"
},
{
"name": "github.com/kr/pretty",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.3.1"
},
{
"name": "github.com/modelcontextprotocol/go-sdk",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.1"
},
{
"name": "github.com/olivere/elastic/v7",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v7.0.32"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckv2extension",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/core/xidutils",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "github.com/pmezard/go-difflib",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.1-0.20181226105442-5d4384ee4fb2"
},
{
"name": "github.com/prometheus/client_golang",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.23.2"
},
{
"name": "github.com/prometheus/client_model",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.6.2"
},
{
"name": "github.com/prometheus/common",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.69.0"
},
{
"name": "github.com/spf13/cobra",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.10.2"
},
{
"name": "github.com/spf13/pflag",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.10"
},
{
"name": "github.com/spf13/viper",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.21.0"
},
{
"name": "github.com/stretchr/testify",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.1"
},
{
"name": "go.opentelemetry.io/collector/client",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/component",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/component/componentstatus",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/component/componenttest",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/config/configauth",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/config/configgrpc",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/config/confighttp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/config/confighttp/xconfighttp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/config/configmiddleware",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/config/confignet",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/config/configoptional",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/config/configretry",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/config/configtelemetry",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/config/configtls",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/confmap",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/confmap/provider/envprovider",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/confmap/provider/fileprovider",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/confmap/provider/httpprovider",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/confmap/provider/httpsprovider",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/confmap/provider/yamlprovider",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/confmap/xconfmap",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/connector",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/connector/forwardconnector",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/consumer",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/consumer/consumertest",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/exporter",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/exporter/debugexporter",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/exporter/exporterhelper",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/exporter/exportertest",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/exporter/nopexporter",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/exporter/otlpexporter",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/exporter/otlphttpexporter",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/extension",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/extension/extensionauth",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/extension/extensioncapabilities",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/extension/zpagesextension",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/featuregate",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/otelcol",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/pdata",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/pdata/xpdata",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/pipeline",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/processor",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/processor/batchprocessor",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/processor/memorylimiterprocessor",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/processor/processorhelper",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/processor/processortest",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/receiver",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.61.0"
},
{
"name": "go.opentelemetry.io/collector/receiver/nopreceiver",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/receiver/otlpreceiver",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/collector/service",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.69.0"
},
{
"name": "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.69.0"
},
{
"name": "go.opentelemetry.io/contrib/samplers/jaegerremote",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.37.1"
},
{
"name": "go.opentelemetry.io/otel",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.44.0"
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlptrace",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.44.0"
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.44.0"
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.44.0"
},
{
"name": "go.opentelemetry.io/otel/exporters/prometheus",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.66.0"
},
{
"name": "go.opentelemetry.io/otel/exporters/stdout/stdouttrace",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.44.0"
},
{
"name": "go.opentelemetry.io/otel/metric",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.44.0"
},
{
"name": "go.opentelemetry.io/otel/sdk",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.44.0"
},
{
"name": "go.opentelemetry.io/otel/sdk/metric",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.44.0"
},
{
"name": "go.opentelemetry.io/otel/trace",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.44.0"
},
{
"name": "go.uber.org/automaxprocs",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "go.uber.org/goleak",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.0"
},
{
"name": "go.uber.org/zap",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.28.0"
},
{
"name": "go.yaml.in/yaml/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.0.4"
},
{
"name": "golang.org/x/exp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260611194520-c48552f49976"
},
{
"name": "golang.org/x/sys",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.46.0"
},
{
"name": "google.golang.org/genproto/googleapis/api",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20260526163538-3dc84a4a5aaa"
},
{
"name": "google.golang.org/grpc",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.81.1"
},
{
"name": "google.golang.org/protobuf",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.36.11"
},
{
"name": "@octokit/rest",
"manifest": ".github/scripts/package.json",
"ecosystem": "npm",
"version_constraint": "^22.0.0"
},
{
"name": "github.com/golangci/golangci-lint/v2",
"manifest": "internal/tools/go.mod",
"ecosystem": "go",
"version_constraint": "v2.12.2"
},
{
"name": "github.com/josephspurrier/goversioninfo",
"manifest": "internal/tools/go.mod",
"ecosystem": "go",
"version_constraint": "v1.7.0"
},
{
"name": "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/schemagen",
"manifest": "internal/tools/go.mod",
"ecosystem": "go",
"version_constraint": "v0.154.0"
},
{
"name": "github.com/vektra/mockery/v3",
"manifest": "internal/tools/go.mod",
"ecosystem": "go",
"version_constraint": "v3.7.0"
},
{
"name": "github.com/wadey/gocovmerge",
"manifest": "internal/tools/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20160331181800-b5bfa59ec0ad"
},
{
"name": "go.opentelemetry.io/collector/cmd/builder",
"manifest": "internal/tools/go.mod",
"ecosystem": "go",
"version_constraint": "v0.155.0"
},
{
"name": "golang.org/x/vuln",
"manifest": "internal/tools/go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.0"
},
{
"name": "gotest.tools/gotestsum",
"manifest": "internal/tools/go.mod",
"ecosystem": "go",
"version_constraint": "v1.13.0"
},
{
"name": "mvdan.cc/gofumpt",
"manifest": "internal/tools/go.mod",
"ecosystem": "go",
"version_constraint": "v0.10.0"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 0,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 0
},
"bus_factor": 3,
"bot_contributors": 3,
"top_contributors": [
{
"type": "User",
"login": "yurishkuro",
"commits": 925,
"avatar_url": "https://avatars.githubusercontent.com/u/3523016?v=4"
},
{
"type": "User",
"login": "renovate-bot",
"commits": 602,
"avatar_url": "https://avatars.githubusercontent.com/u/25180681?v=4"
},
{
"type": "User",
"login": "pavolloffay",
"commits": 279,
"avatar_url": "https://avatars.githubusercontent.com/u/5618424?v=4"
},
{
"type": "User",
"login": "mahadzaryab1",
"commits": 235,
"avatar_url": "https://avatars.githubusercontent.com/u/43658574?v=4"
},
{
"type": "User",
"login": "albertteoh",
"commits": 104,
"avatar_url": "https://avatars.githubusercontent.com/u/26584478?v=4"
},
{
"type": "User",
"login": "jpkrohling",
"commits": 75,
"avatar_url": "https://avatars.githubusercontent.com/u/13387?v=4"
},
{
"type": "User",
"login": "black-adder",
"commits": 69,
"avatar_url": "https://avatars.githubusercontent.com/u/791791?v=4"
},
{
"type": "User",
"login": "Manik2708",
"commits": 68,
"avatar_url": "https://avatars.githubusercontent.com/u/65224535?v=4"
},
{
"type": "User",
"login": "jkowall",
"commits": 63,
"avatar_url": "https://avatars.githubusercontent.com/u/1859948?v=4"
},
{
"type": "User",
"login": "danish9039",
"commits": 44,
"avatar_url": "https://avatars.githubusercontent.com/u/133037056?v=4"
}
],
"contributors_sampled": 97,
"top_contributor_share": 0.281
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci-ai-sidecar-gemini.yml",
"ci-build-binaries.yml",
"ci-deploy-demo.yml",
"ci-docker-all-in-one.yml",
"ci-docker-build.yml",
"ci-docker-hotrod.yml",
"ci-e2e-all.yml",
"ci-e2e-badger.yaml",
"ci-e2e-cassandra.yml",
"ci-e2e-clickhouse.yml",
"ci-e2e-elasticsearch.yml",
"ci-e2e-grpc.yml",
"ci-e2e-kafka.yml",
"ci-e2e-memory.yaml",
"ci-e2e-opensearch.yml",
"ci-e2e-query.yml",
"ci-e2e-spm.yml",
"ci-e2e-tailsampling.yml",
"ci-e2e-ui-reverse-proxy.yml",
"ci-lint-checks.yaml",
"ci-ocb-build.yml",
"ci-orchestrator-stage1.yml",
"ci-orchestrator-stage2.yml",
"ci-orchestrator-stage3.yml",
"ci-orchestrator.yml",
"ci-release.yml",
"ci-summary-report-publish.yml",
"ci-summary-report.yml",
"ci-unit-tests-go-tip.yml",
"ci-unit-tests.yml",
"codeql.yml",
"dco_merge_group.yml",
"dependency-review.yml",
"fossa.yml",
"label-check.yml",
"pr-quota-manager.yml",
"scorecard.yml",
"stale.yml",
"waiting-for-author.yml"
],
"has_docs_dir": true,
"linter_configs": [
".golangci.yml"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"go.sum",
"package-lock.json",
"uv.lock"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": null,
"reason": "no pull request found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 33 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "project was created within the last 90 days. Please review its contents carefully",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 9,
"reason": "dependency not pinned by hash detected -- score normalized to 9",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 10,
"reason": "SAST tool detected: CodeQL",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "13 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "382273edfeef8fcbf267eb5e3fd81d2fe9795efb",
"ran_at": "2026-08-02T22:14:47Z",
"aggregate_score": 4.9,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": true,
"has_security_policy": true,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"recent_prs": {
"merged_7d": 0,
"decided_7d": 0,
"merged_30d": 0,
"authors_30d": 0,
"decided_30d": 0,
"sample_size": 0,
"window_days": 30,
"sample_exhausted": false,
"authors_probed_30d": 0,
"newcomer_merged_30d": 0,
"bot_prs_excluded_30d": 0,
"newcomer_authors_30d": 0,
"newcomer_decided_30d": 0
},
"ci_last_run_at": null,
"oldest_open_prs": [],
"last_merged_pr_at": null,
"ci_last_conclusion": null,
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/ysh-bot/jaeger",
"host": "github.com",
"name": "jaeger",
"owner": "ysh-bot"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": "The weighted overall 52 is calibrated to 53 on the published index scale (record calibration 2026-08-02).",
"notes": [
{
"code": "overall_calibration",
"params": {
"raw": 52,
"calibrated": 53,
"calibration": "2026-08-02"
}
}
],
"value": 53,
"inputs": {
"security": 49,
"vitality": 88,
"community": 12,
"governance": 35,
"calibration": "2026-08-02",
"engineering": 64,
"ai_readiness": 92,
"weighted_overall_raw": 52
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 88,
"weight": 0.21,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 88,
"inputs": {
"commits_last_year": 776,
"human_commit_share": 1,
"days_since_last_push": 2,
"active_weeks_last_year": 49
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 2 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 2
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "49/52 weeks with commits",
"points": 33.9,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 49
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "776 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 776
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 88,
"inputs": {
"releases_count": 99,
"latest_release_tag": "v2.19.0",
"releases_from_tags": true,
"days_since_latest_release": 60,
"mean_days_between_releases": 22.4
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "99 version tags (no GitHub releases)",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "version_tags_no_releases",
"params": {
"count": 99
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 60 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 60
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~22.4 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 22.4
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "exceptional",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "critical",
"name": "Community & Adoption",
"value": 12,
"weight": 0.17,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 0,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "0 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 0
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "at_risk",
"name": "Community health",
"note": null,
"notes": [],
"value": 25,
"inputs": {
"has_readme": false,
"has_license": false,
"readme_badges": 0,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"readme_badge_services": [],
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (Apache-2.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "Apache-2.0"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "weak",
"name": "Sustainability & Governance",
"value": 35,
"weight": 0.23,
"metrics": [
{
"key": "maintainer_resilience",
"band": "good",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 76,
"inputs": {
"bus_factor": 3,
"contributors_sampled": 97,
"top_contributor_share": 0.281
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "3 contributor(s) cover half of all commits",
"points": 36,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 3
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 28% of commits",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 28
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "97 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 97
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 33 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "critical",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance, Newcomer PR acceptance. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution",
"pr_acceptance",
"newcomer_pr_acceptance"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 1,
"inputs": {
"merged_prs": 0,
"open_issues": 0,
"closed_issues": 0,
"prs_merged_7d": 0,
"prs_decided_7d": 0,
"prs_merged_30d": 0,
"prs_decided_30d": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 0,
"first_time_authors_30d": 0,
"first_time_prs_merged_30d": 0,
"first_time_prs_decided_30d": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "no issues or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_issues_or_data",
"params": {}
}
],
"max_points": 42
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "no decided pull requests or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_decided_prs_or_data",
"params": {}
}
],
"max_points": 30
},
{
"key": "newcomer_pr_acceptance",
"name": "Newcomer PR acceptance",
"detail": "no first-time contributor's PR decided in 30d",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_newcomer_prs",
"params": {
"days": 30
}
}
],
"max_points": 13
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "at_risk",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 20,
"inputs": {
"followers": 0,
"owner_type": "User",
"is_verified": null,
"owner_login": "ysh-bot",
"public_repos": 4,
"account_age_days": 166
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "0 followers of ysh-bot",
"points": 0,
"status": "missed",
"details": [
{
"code": "owner_followers",
"params": {
"count": 0,
"login": "ysh-bot"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "4 public repos, account ~0 yr old",
"points": 6,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 4
}
},
{
"code": "account_age_years",
"params": {
"years": 0
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 64,
"weight": 0.19,
"metrics": [
{
"key": "engineering_practices",
"band": "excellent",
"name": "Engineering practices",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 80,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "39 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 39
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": ".golangci.yml",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yml"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "weak",
"name": "Documentation",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"topics": [],
"has_wiki": false,
"homepage": "https://www.jaegertracing.io/",
"has_readme": false,
"has_docs_dir": true,
"has_description": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://www.jaegertracing.io/",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "weak",
"name": "Security",
"value": 49,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "weak",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests",
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 49,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 15,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 3,
"scorecard_aggregate": 4.9
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 33 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 9",
"points": 4.5,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool detected: CodeQL",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "13 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "exceptional",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"commit_weight_rule": {
"min_commits": 50,
"min_commit_share": 0.1
},
"review_only_matches": 0,
"below_threshold_exposures": [],
"assessed_self_published_locations": 17
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "excellent",
"name": "AI Readiness",
"value": 92,
"weight": 0.04,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 1,
"agent_instruction_files": [
".github/copilot-instructions.md",
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 3968
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": ".github/copilot-instructions.md, AGENTS.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".github/copilot-instructions.md, AGENTS.md, CLAUDE.md"
}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "100 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 100,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "excellent",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 91,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum",
"package-lock.json",
"uv.lock"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [
"Makefile",
"docker-compose/monitor/Makefile",
"docker-compose/tail-sampling/Makefile"
],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [],
"agent_commit_share": 0.44,
"toolchain_manifests": [
"go.mod",
"internal/tools/go.mod",
"monitoring/jaeger-mixin/generate/go.mod",
"scripts/build/docker/debug/go.mod"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile, docker-compose/monitor/Makefile, docker-compose/tail-sampling/Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Makefile, docker-compose/monitor/Makefile, docker-compose/tail-sampling/Makefile"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": ".golangci.yml",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yml"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "Go (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "44 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 44,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 9",
"points": 9,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "exceptional",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 185252,
"source_files_sampled": 1131,
"oversized_source_files": 5
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Go (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "5/1131 source files over 60KB",
"points": 54.8,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 1131,
"oversized": 5
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "exceptional",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": true,
"api_schema_files": [
"examples/hotrod/services/driver/driver.proto",
"internal/proto/metrics/openmetrics.proto",
"internal/proto/metrics/otelspankind.proto"
]
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": "examples/hotrod/services/driver/driver.proto, internal/proto/metrics/openmetrics.proto, internal/proto/metrics/otelspankind.proto",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples/hotrod/services/driver/driver.proto, internal/proto/metrics/openmetrics.proto, internal/proto/metrics/otelspankind.proto"
}
}
],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 20,
"status": "met",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
}
],
"classification": {
"labels": [
"cli"
],
"scores": {
"cli": 4,
"mcp-server": 3,
"network-service": 3
},
"primary": "cli",
"evidence": [
{
"tier": "dependencies",
"label": "cli",
"source": "dep:github.com/spf13/cobra",
"weight": 4
},
{
"tier": "structure",
"label": "mcp-server",
"source": "mcp_signal",
"weight": 3
},
{
"tier": "structure",
"label": "network-service",
"source": "api_schema",
"weight": 3
}
],
"artifacts": [],
"confidence": "low",
"host_extension": false,
"runs_as_process": true,
"consumed_by_code": false
},
"metrics_version": "2.3.1"
},
"warnings": [
"Community profile unavailable",
"go package 'github.com/jaegertracing/jaeger' points at a different repository (https://github.com/jaegertracing/jaeger); excluded from ecosystem scoring",
"Could not fetch go package 'github.com/jaegertracing/jaeger/internal/tools' from its registry",
"Could not fetch npm package 'jaeger-ci-scripts' from its registry",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-08-02T22:15:06.544006Z",
"schema_version": "0.29.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/y/ysh-bot/jaeger.svg",
"full_name": "ysh-bot/jaeger",
"license_state": "standard",
"license_spdx": "Apache-2.0"
}