Access Jaeger changelog updates through our uniform API. Same JSON structure across all sources — no adapter-specific parsing needed.
GET https://watchchangelog.com/api/v1/entries?source=jaeger.releases{
"source": "jaeger.releases",
"vendor": "Jaeger",
"id": "tag:github.com,2008:Repository/56342508/v2.20.0",
"published_at": "2026-07-20T04:04:20.000Z",
"title": "Release v2.20.0",
"url": "https://github.com/jaegertracing/jaeger/releases/tag/v2.20.0",
"summary": "Backend Changes ⛔ Breaking Changes Feat(es): promote es.* rotation and index-cleaner feature gates to beta ( @ysh-bot in #9018 ) Feat(es): remove support for elasticsearch v6 ( @yurishkuro in #8948 ) Feat(mcp): merge jaegermcp extension into jaegerquery extension ( @Nabil-Salah in #8894 ) Feat(es): add configurable max_trace_duration and improve time-range design ( @yurishkuro in #8840 ) ✨ New Features Feat(es): add --backend flag to esmapping-generator for opensearch selection ( @ysh-bot in #8985 ) Feat(es): native trace summaries (summaryreader) ( @Me-Priyank in #8812 ) 🐞 Bug fixes, Minor Improvements Feat(es): add synchronous bulk write primitive to the elasticsearch client ( @ysh-bot in #8992 ) Feat(es): gate parentspanid reference-compat write behind a feature gate ( @ysh-bot in #9015 ) Fix(ci): resolve published snapshot shas for oke demo deploy ( @FlamingSaint in #8999 ) feat(jaegerai): add genai span attributes and gateway↔sidecar trace propagation ( @SoumyaRaikwar in #8942 ) Chore(storage): remove expired stable feature gates ( @Anujkumar9081 in #8970 ) Chore(es): scrub lingering olivere references from code comments ( @ysh-bot in #8983 ) Feat(es): migrate template creation to esclient and retire legacy mapping rendering ( @Me-Priyank in #8963 ) Fix(storage): reject mutually-exclusive es auth methods in validate() ( @Anujkumar9081 in #8946 ) Make \"spm not configured\" error message more explicit ( @Saithej2k in #8878 ) Feat(es): migrate span writes onto an owned bounded bulk indexer ( @yurishkuro in #8944 ) Fix(auth): synchronize fallback token in tokenproviderwithtime closure ( @yurishkuro in #8952 ) Feat(es): migrate service/operation reads onto owned searcher and query ast ( @yurishkuro in #8943 ) [es] add bearer-token and api-key cli flags to es admin tools (rfc 0006 m3.5c) ( @yurishkuro in #8939 ) [es] route admin plane through the shared auth stack (rfc 0006 m3.5b) ( @yurishkuro in #8937 ) Fix(clickhouse): validate decoded trace/span id lengths to prevent panic on corrupted rows ( @iammdzaidalam in #8935 ) Fix(es): apply custom_headers to all elasticsearch clients and honor host override ( @iammdzaidalam in #8917 ) Fix(storage): populate req.getbody before sigv4 signing, not after ( @truffle-dev in #8768 ) Fix(mcp): report total_count and truncated on get_services and get_span_names ( @CedricConday in #8902 ) Fix(sampling): forfeit leader lock on graceful shutdown ( @HESleagacy in #8825 ) Feat(tracestoremetrics): forward summaryreader when underlying reader supports it ( @yurishkuro in #8895 ) Feat(hotrod): add standard otel db semconv attributes to hotrod spans ( @yurishkuro in #8893 ) Fix(es): populate parentspanid field on write path ( @yurishkuro in #8859 ) Fix(mcp): don't error on empty critical path ( @Me-Priyank in #8806 ) Fix(jaegermcp): wait for server goroutine to exit on shutdown ( @g-k-s-03 in #8852 ) Fix(mcp): validate span_id format before querying backend ( @truffle-dev in #8845 ) Test(v1adapter): fix mock expectation validation in dependency reader tests ( @kavyarathod05 in #8756 ) Fix(es): improve es/os integration test ci coverage and reduce noise ( @yurishkuro in #8836 ) Fix(es): emit opensearch ism rollover_alias and consolidate backendversion ( @yurishkuro in #8830 ) Feat(query): accept base64-encoded trace ids in http api endpoints ( @yurishkuro in #8828 ) Refactor(es): introduce index rotation config schema with legacy flag deprecation ( @yurishkuro in #8823 ) 🚧 Experimental Features Feat(ai-gateway): serve per-session ui tools over the session-scoped mcp endpoint ( @Nabil-Salah in #8973 ) Feat(ai-gateway): add session-scoped mcp endpoint and session-stream registry ( @Nabil-Salah in #8910 ) Feat(jaegermcp): add read_skill tool for agent skill discovery ( @SoumyaRaikwar in #8849 ) Feat(es): add datastreamrotation strategy and data-stream-aware span write path ( @Me-Priyank in #8833 ) 👷 CI Improvements Fix(build): build embedded ui with pnpm after jaeger-ui migration ( @ysh-bot in #9044 ) Fix windows test cleanup failure: close output/error log file handles ( @shayannab in #8884 ) [chore] close idle connections for http clients in integration tests ( @Manik2708 in #8815 ) [chore]: add binary.stop() and binarypath for mid-test process control ( @iammdzaidalam in #8822 ) Feat(es): add e2e integration tests for all rotation strategies ( @yurishkuro in #8838 ) ⚙️ Refactoring Refactor(ai-gateway): apply rfc 0008 terminology — turn registry, route id, endpoint naming ( @Nabil-Salah in #9017 ) Refactor(es): introduce batch writespans api in v2 elasticsearch trace writer ( @ysh-bot in #8990 ) Feat(es): delete the olivere elasticsearch client stack ( @ysh-bot in #8982 ) Test(es): retire the detailederror olivere-error enricher ( @ysh-bot in #8981 ) Test(es): migrate the elasticsearch rotation e2e tests to the owned client ( @ysh-bot in #8976 ) Refactor(es): make esclient.client a pointer handle ( @ysh-bot in #8979 ) Test(es): migrate the direct elasticsearch integration tests to the owned client ( @ysh-bot in #8975 ) Feat(es): close idle connections on the owned elasticsearch client ( @ysh-bot in #8974 ) Feat(es): migrate the es metricstore onto the owned searcher and query ast ( @ysh-bot in #8967 ) Feat(es): migrate the es span reader onto the owned searcher and query ast ( @ysh-bot in #8958 ) Feat(es): migrate dependency store reads and writes onto owned esclient ( @ysh-bot in #8957 ) Feat(es): migrate sampling store reads and writes onto owned esclient ( @yurishkuro in #8954 ) Test(es): snapshot sampling store write requests via an injectable clock ( @yurishkuro in #8955 ) Unify elasticsearch backend version detection at client construction (rfc 0006 m4) ( @iammdzaidalam in #8938 ) Relocate the shared es roundtripper stack into the esclient package ( @yurishkuro in #8936 ) Route the elasticsearch admin client through a shared elastic-transport-go pool ( @yurishkuro in #8932 ) Rename the elasticsearch control-plane client package to esclient ( @yurishkuro in #8930 ) Add es/os request-snapshot suite baseline and converge mapping fixtures ( @yurishkuro in #8922 ) Refactor(es): thread context.context through the es rest client ( @Me-Priyank in #8873 ) Refactor(es): rename index name constants, eliminate *indexbasename ( @yurishkuro in #8870 ) Refactor(es): move index name constants to config package, drop prefix param from resolved*rotation ( @yurishkuro in #8868 ) Refactor(es): extract client construction into clientbuilder package ( @yurishkuro in #8842 ) Feat: export reusable jaegercli.newcommand for custom ocb distributions ( @iammdzaidalam in #8835 ) Refactor(es): rename rotation implementation files to rotation_{name}.go ( @yurishkuro in #8839 ) Chore(storage): remove fswatcher from elasticsearch factory ( @iammdzaidalam in #8750 ) Refactor(es): migrate depstore and metricstore to use rotation interface ( @yurishkuro in #8826 ) 📖 Documentation Rfc 0004: elasticsearch/opensearch data streams for span storage ( @yurishkuro in #8804 ) 📊 UI Changes ✨ New Features Feat(genai-tab): add content-sensitive rendering toggle (plain/markdown/json) for message content ( @swetalin-10 in #4213 ) Feat(assistant): add markdown rendering and panel resize ( @SoumyaRaikwar in #4181 ) Feat(search): add ascending sort support for start time column ( @akshatsinghai6682-sketch in #4033 ) Feat: treat trace ids as opaque strings, support base64 encoding ( @yurishkuro in #4118 ) Feat(flamegraph): implement native & improved flamegraph trace view ( @yurishkuro in #4098 ) Feat(tracing): export ui-emitted otlp traces to jaeger ( @yurishkuro in #4051 ) 🐞 Bug fixes, Minor Improvements Fix(genai): fix span icon hover tooltip and refine type icons and labels ( @swetalin-10 in #4239 ) Feat(timeline): emphasize span-type icons and soften tree chrome ( @ysh-bot in #4238 ) Chore(genai-tab): prefix the token usage row with \"tokens:\" ( @swetalin-10 in #4222 ) Fix(trace): show span pill labels as tooltips ( @udita-0707 in #4220 ) Feat(trace): expand span pills to hardcoded attribute set ( @udita-0707 in #4214 ) Fix(genai-tab): simplify and fix rendering of genai span icons ( @swetalin-10 in #4221 ) Feat(search): show and track trace search latency ( @ysh-bot in #4216 ) Refactor(otel): introduce iattributes collection replacing raw attribute arrays ( @ysh-bot in #4211 ) Feat(trace): add http status summary chips ( @udita-0707 in #4149 ) Feat(spanbarrow): add genai span type icons for llm, tool, agent, and retrieval spans ( @swetalin-10 in #3857 ) Fix(stats): make heatmap theme-aware ( @jkowall in #4200 ) Fix(listview): remove array-length pre-allocation that created holes ( @dolliecoder in #4194 ) Feat(genai-tab): add genai span detail content ( @swetalin-10 in #4191 ) Feat(utils): add genai span classification and isgenaitrace detection ( @swetalin-10 in #3856 ) Feat(monitor): sync monitor filters to url on change ( @udita-0707 in #4182 ) Fix(timeline): restore critical path hover animation in dark mode ( @yurishkuro in #4180 ) Feat(search): add absolute/relative toggle for table start time ( @yurishkuro in #4175 ) Feat(search): improve table view column sorting ( @sksingh2005 in #3994 ) Fix(filter-spans): stringify object/array attribute values for span search ( @bhuvan-somisetty in #4171 ) Fix: increase critical path bar contrast in dark mode ( @bhavyamsharmaa in #4163 ) Fix(assistant): render tool-call parts in chat thread ( @SoumyaRaikwar in #4164 ) Feat(monitor): support service/spankind/timeframe url params ( @udita-0707 in #4119 ) Feat(trace): add decorative span type icons in tree view ( @swetalin-10 in #3832 ) Fix(tracegraph): theme-aware edge and legend colors in dark mode ( @bhavyamsharmaa in #4074 ) Fix(tracepage): handle root span navigation at index 0 ( @dolliecoder in #4145 ) Fix: fix sidepanel resize when timeline is hidden ( @sksingh2005 in #4046 ) Fix(bug): clear trace id input field on navigation/reload ( #4135 ) ( @shubhtrek in #4136 ) Refactor: standardize keyvaluepair typing across the ddg model ( @shubhtrek in #4064 ) Default to table view for search results ( @yurishkuro in #4133 ) Feat(flamegraph): resizable 50/50 table/chart split with scroll affordance ( @yurishkuro in #4121 ) Fix: copyicon button jumps/enlarges on hover (animation/layout glitch) ( @akshatsinghai6682-sketch in #4022 ) Fix(plexus): use currentcolor for ddg edge weight labels in dark mode ( @shubhtrek in #4079 ) Fix(search): keep back-to-search across find and trace id clicks ( @udita-0707 in #4080 ) Fix(monitor): replace hardcoded light-mode colors with design tokens in operations table ( @udita-0707 in #4054 ) Fix(assistant): wrap fetch passed to httpagent ( @yurishkuro in #4044 ) 🚧 Experimental Features Feat(genai): add genai tab shell to span detail panel ( @swetalin-10 in #4122 ) Feat(tracepage): add genaitimelineviewer view type with auto-activation ( @swetalin-10 in #3872 ) 👷 CI Improvements Chore(pnpm): migrate from npm to pnpm ( @thisis-manan in #4137 ) Chore(ci): route build/lint/test/coverage steps through makefile entrypoints(part of migration to pnpm) ( @aprv10 in #4139 ) ⚙️ Refactoring Refactor(search): remove dead trace redux slice and its search actions/api ( @swetalin-10 in #3999 ) Refactor(timeline): extract critical path logic into helper module ( @sonalyadav1 in #4060 ) Refactor(stats): extract computespanselftime to shared utility ( @yurishkuro in #4113 ) Refactor(ddg): use functional component for graph ( @sksingh2005 in #4100 ) Refactor:migrate virtualizedtraceview to functional component ( @sksingh2005 in #4081 ) Refactor(tracegraph): migrate to functional component ( @sksingh2005 in #4058 )",
"tags": [
"Jaeger",
"jaeger.releases",
"tracing",
"observability",
"open-source"
]
}Sign up to access the full changelog API. All public sources are free — no credit card required.
Sign Up Free →+2 more
+2 more
+2 more
+2 more
+2 more