Skip to content

Changelog

All notable changes are documented below. This project uses Semantic Versioning and Conventional Commits. This page is generated from the repository CHANGELOG.md.

4.0.0 (2026-10-21)

⚠ BREAKING CHANGES

  • genai_otel_bridge_source_graph_unavailable_total is retired; use genai_otel_bridge_source_capability_total and genai_otel_bridge_source_data_incomplete_total.

Features

  • AWS ECS deployment target (DynamoDB-backed HA) (#13) (f6f0d61)
  • chart: add Artifact Hub metadata and point home at the docs site (8e721fd)
  • docs: align docs site with m7kni.io brand + server-side SEO/LLM metadata (c272581), closes #26
  • docs: take the fleet project icon for the site logo and favicon (1656254)
  • docs: take the fleet-generated social card (45c97b9)
  • emit native self-observability histograms (35b2dfb)
  • generate drift-guarded telemetry catalogue into docs/telemetry.md (cfd4ad4)
  • langsmith: add usage loop for platform cost-driver metrics (f75be9a)
  • mint release-please token from the OpenBao broker (25413e3)
  • mint the docs-sync token from the OpenBao broker (8ce848f)
  • relicense from AGPL-3.0-only to Apache-2.0 (bfd95f4)
  • split source capability and incomplete-data metrics (90f96ef)
  • third-party license notices + SBOMs as release artifacts (f8cf300)
  • trace and measure emit processing (dbf5e4f)
  • trace checkpoint commit outcomes (6d71243)
  • trace Portkey export lifecycle (c6e822f)

Bug Fixes

  • app: fail fast on unknown loop names and bound the health server's header read (609112c), closes #40 #72
  • author is Rob Knight, not Rob Knighton (28ce9da)
  • block unspecified address in SSRF guard and correct publish-pipeline docs (44c8c9e), closes #96 #67
  • changelog: demote the duplicate mid-file Changelog heading (fcdef67)
  • checkpoint: reject unencodable watermark times and stop masking failed file writes (44cd89a), closes #81 #82
  • ci,docs: gate edge publish on CI, align make ci/gate, and correct doc drift (54fd99f), closes #107 #109 #115 #118 #123 #131 #135 #136
  • ci: consume shared ubuntu 26.04 actionlint compatibility release (0f0bab4)
  • ci: correct image-tag docs, remove orphaned VERSION, retire superseded pin note (19d0612), closes #36 #69 #70
  • cleanup: retain the leader Lease alongside the checkpoint on uninstall (90bc41a), closes #33
  • config: close validation gaps that let broken configs load (96332f2), closes #38 #39 #41 #46 #52
  • config: default queue depth/bytes and reject the dead telemetry metric_interval (e1b99ae), closes #113 #114
  • coordinate: bound renew, fix self-lockout, classify leadership-loss, require identity (a17b740), closes #30 #74 #84 #87
  • deploy: add graph-unavailable alert, HEALTHCHECK, REPLICAS env, netpol scoping, dockerignore (61b626b), closes #119 #124 #125 #126 #127 #128
  • deploy: correct ECS IAM/GOMEMLIMIT, chart image pin, ESO/netpol rendering, and drift (8b85de9), closes #31 #32 #47 #49 #50 #85 #86
  • deps: align Go 1.27.3 and refresh container trust stores (d801217)
  • deps: update go modules (non-major) (#151) (6f6ac37)
  • deps: update go modules (non-major) (#156) (960e9d4)
  • deps: update go modules (non-major) (#159) (c9857ce)
  • deps: update go modules (non-major) (#174) (761a872)
  • deps: update go modules (non-major) (#181) (3dbf7ce)
  • deps: update go modules (non-major) (#182) (4bd6741)
  • deps: update go modules (non-major) (#184) (22a3271)
  • deps: update go modules (non-major) (#190) (fd21361)
  • deps: update go modules (non-major) (#193) (f0edcd2)
  • deps: update go modules (non-major) (#197) (a293ad1)
  • deps: update go modules (non-major) (#204) (e12432d)
  • deps: update go modules (non-major) (#206) (8c3bac1)
  • deps: update go modules (non-major) (#209) (23db074)
  • deps: update go modules (non-major) (#212) (aa087df)
  • deps: update go modules (non-major) (#214) (09c668f)
  • deps: update go modules (non-major) (#22) (dd2f4b4)
  • deps: update go modules (non-major) (#228) (f04a9eb)
  • deps: update go modules (non-major) (#235) (f0974a6)
  • deps: update go modules (non-major) (#239) (bcea465)
  • deps: update go modules (non-major) (#250) (890351d)
  • deps: update go modules (non-major) (#27) (d6f1811)
  • deps: update go modules (non-major) (#271) (f531d80)
  • deps: update go modules (non-major) (#274) (c4f8dfa)
  • deps: update go modules (non-major) (#275) (368dc51)
  • deps: update kubernetes libraries (#6) (71166a3)
  • deps: update kubernetes libraries to v0.36.3 (#177) (3424b4f)
  • deps: update kubernetes libraries to v0.36.4 (#201) (8c0a1c4)
  • deps: update kubernetes libraries to v0.37.0 (#208) (d43c38c)
  • deps: update kubernetes libraries to v0.37.1 (#248) (fc09ced)
  • deps: update module github.com/aws/aws-sdk-go-v2/service/dynamodb to v1.62.0 (#178) (2b6964c)
  • deps: update module github.com/aws/aws-sdk-go-v2/service/dynamodb to v1.63.0 (#187) (c647eb7)
  • deps: update module github.com/aws/aws-sdk-go-v2/service/dynamodb to v1.69.0 (#240) (b1fec6b)
  • deps: update module github.com/aws/aws-sdk-go-v2/service/dynamodb to v1.70.0 (#258) (43e4fd6)
  • deps: update module github.com/aws/aws-sdk-go-v2/service/dynamodb to v1.71.0 (#284) (7481442)
  • deps: update module github.com/aws/aws-sdk-go-v2/service/dynamodb to v1.72.0 (#287) (a0f5d84)
  • deps: update module github.com/grafana/pyroscope-go to v1.4.0 (#28) (16a9272)
  • deps: update module github.com/grafana/pyroscope-go to v1.4.1 (#157) (1a6ee1a)
  • deps: update module github.com/grafana/pyroscope-go to v1.4.2 (#194) (c60a36e)
  • deps: update module github.com/grafana/pyroscope-go to v1.4.3 (#259) (359ba9c)
  • deps: update module go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to v0.70.0 (#186) (592764c)
  • deps: update module go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to v0.71.0 (#207) (5f4d613)
  • deps: update module go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to v0.72.0 (#263) (1bb6c2b)
  • deps: update module go.opentelemetry.io/proto/otlp to v1.11.0 (#175) (f94115a)
  • deps: update module go.opentelemetry.io/proto/otlp to v1.11.1 (#256) (1ba1468)
  • deps: update module golang.org/x/time to v0.16.0 (#233) (f366dc6)
  • deps: update module google.golang.org/protobuf to v1.36.12 (#191) (b55b187)
  • deps: update module k8s.io/apimachinery to v0.36.3 (#176) (fda402e)
  • deps: update module k8s.io/client-go to v0.36.4 (#202) (3a83d90)
  • deps: update module sigs.k8s.io/controller-runtime to v0.25.0 (#231) (7118d28)
  • deps: update module sigs.k8s.io/controller-runtime to v0.25.1 (#237) (52149d7)
  • deps: update module sigs.k8s.io/controller-runtime to v0.25.2 (#260) (8404982)
  • deps: update opentelemetry to v1.45.0 (#185) (b10fc28)
  • deps: update opentelemetry to v1.46.0 (#205) (8bbea60)
  • deps: update opentelemetry to v1.47.0 (#262) (9047f3c)
  • docs: reword main.html comment so it doesn't trip the hub build guard (7c43023), closes #26
  • ecs: build task IAM policy as a literal list, not jsondecode of a deferred data source (60243f2)
  • emit: count OTLP 200 partial_success rejects instead of silently dropping (6ec9e1e), closes #80
  • emit: never follow redirects on the OTLP emit leg (b11b232), closes #29
  • guard: harden content-egress floor and cardinality-budget correctness (1ef0d83), closes #75 #95 #51 #97 #99
  • guard: scope the content denylist per-loop so an opt-in can't widen another loop's allowed set (8e42dd8), closes #130
  • ha: auto-heal Noop epoch from stored checkpoint on HA→none downgrade (83cf358), closes #45
  • helm: give kubeconform the CRD schemas for ExternalSecret + SecretStore (dcfb24f)
  • helm: restore the doubled braces in the CRD schema URL (ea6bf52)
  • honor Retry-After, align checkpoint RMW budgets, re-campaign on lease lapse (52a3f3f), closes #122 #116 #110
  • notices: use the /v2 module path for go-licenses (262acb5)
  • pass the JWT role explicitly for docs-sync (8e587eb)
  • portkey: correct groups metric names in signals catalogue and docs (2b2ba3f), closes #58 #105
  • portkey: redact signed-URL from download errors and skip oversize JSONL lines (a962763), closes #34 #35
  • repair third-party notices generation (3451473)
  • runtime: make version observable, fix liveness/self-interval, and correct shutdown+metric docs (5ba48d7), closes #71 #73 #76 #88 #90 #91
  • runtime: widen upstream histogram, bounded ordered shutdown, and add emit/degraded instruments (1c940e0), closes #121 #129
  • schedule: correct snapshot catch-up, terminal-halt backoff, backfill-count re-count, and logs budget key (f79c351), closes #92 #93 #94 #98
  • seo: clean browser-tab <title> (fleet cosmetic fix) (0a390df), closes #26
  • seo: clean homepage og:title (fleet cosmetic fix) (59cdd5f), closes #26
  • source: langsmith/portkey loop correctness, quota+auth taxonomy, and enum validation (4c75e89), closes #53 #54 #56 #57 #101 #102 #103 #104 #106
  • source: source registry/ownership hardening, observability, and signed-URL security (eae19e6), closes #61 #62 #63 #65 #66 #133 #139 #140 #141
  • wire emit-latency + degraded-gauge instruments, validate-config placeholders, redact config-parse secrets (ae52bcf), closes #60 #111 #112 #120

Documentation

  • add a "Why This Bridge" positioning page (b240ec0)
  • add an FAQ (d3fa3f7)
  • adopt canonical routing and bounded root rescue (5466f5e)
  • adopt the m7kni.io inverted docs model (fb09f70)
  • agents: cmd/genai-otel-bridge to AGENTS.md standard (e710385)
  • agents: deploy to AGENTS.md standard (4cdd818)
  • agents: drop stale history, cached facts and restated global rules (61bd6b9)
  • agents: internal/app to AGENTS.md standard (00a021f)
  • agents: internal/checkpoint to AGENTS.md standard (7b3fe3c)
  • agents: internal/config to AGENTS.md standard (0597a7c)
  • agents: internal/coordinate to AGENTS.md standard (80b83a9)
  • agents: internal/emit to AGENTS.md standard (b3af6bd)
  • agents: internal/httpx to AGENTS.md standard (a3ce514)
  • agents: internal/model to AGENTS.md standard (7e6ca46)
  • agents: internal/schedule to AGENTS.md standard (f5a4dd9)
  • agents: internal/selfobs to AGENTS.md standard (6621d27)
  • agents: internal/source to AGENTS.md standard (a2974ad)
  • agents: internal/source/langsmith to AGENTS.md standard (811442e)
  • agents: internal/source/portkey to AGENTS.md standard (20f1b89)
  • agents: repo root to AGENTS.md standard (599a711)
  • agents: review fix - cmd heading count and a history-shaped clause (4b2ade5)
  • agents: review fix - name the governance.max_dpm key in internal/schedule (ce19226)
  • agents: review fix - restore five portkey identifiers and traps (dac0265)
  • agents: review fix - restore four langsmith facts dropped by the lane (a940fb4)
  • agents: review fix - restore internal/selfobs profiling and observer seams (f18c976)
  • agents: review fix - restore the bare --notes/--plan backlog trap (19f39d8)
  • agents: review fix - restore the empty-AllowHosts default-allow trap (1a43c16)
  • agents: review fix - restore the internal/emit partial-success identifiers (0cf441e)
  • agents: review fix - restore the internal/source budget-zero trap and Deps hooks (0ce9a72)
  • agents: review fix - restore three internal/config identifiers (35d4691)
  • agents: review fix - restore three internal/model wire-format facts (98dd6ef)
  • agents: review fix - restore two internal/checkpoint durability invariants (56363ee)
  • agents: review fix - restore two internal/coordinate traps (a93295f)
  • agents: review fix - state the internal/app denylist trap in present tense (73a29fc)
  • align recovery contracts and compaction evidence (b64866b)
  • assets: replace the social card with one for this project (49bbb64)
  • backlog: complete Go 1.27 upgrade (faf09a4)
  • backlog: sync fan-out protocol — CodeRabbit review gate (0169d5c)
  • backlog: sync fan-out protocol — success criteria vs write authority (8bbf24a)
  • correct pervasive doc/comment drift against current code (c67e422), closes #37 #42 #43 #44 #48 #55 #68 #77 #78 #79 #83 #89 #100
  • document native histogram aggregation (ace1329)
  • document proxy DNS rebinding residual (db23fbc)
  • drop the unused MathJax and ES6 polyfill CDN scripts (7bb7e98)
  • fix config-accuracy errors found in final review (62ac033)
  • geo: content-shape pass for LLM/search retrievability (9eb656f)
  • improve search result descriptions (c09b76f)
  • loop: adopt the lean LOOP.md and point at the loop contract (b2003ca)
  • publish canonical agent documents (ee3a079)
  • publish canonical agent documents (5fe8412)
  • publish canonical agent documents (10a9ced)
  • publish canonical agent documents (c51ed7d)
  • publish canonical agent documents (0db380f)
  • publish canonical agent documents (2218060)
  • publish canonical agent documents (5fefe40)
  • publish canonical agent documents (c990e2a)
  • publish canonical agent documents (f96b4b5)
  • publish canonical agent documents (44f1e52)
  • publish canonical agent documents (568f401)
  • publish canonical agent documents (7dc1744)
  • publish canonical agent documents (a597d81)
  • publish canonical agent documents (136ec9f)
  • publish canonical agent documents (17f67b3)
  • publish canonical agent documents (d385e32)
  • publish canonical agent documents (20c7d06)
  • publish canonical agent documents (0ad25fa)
  • publish canonical agent documents (d2fee90)
  • publish canonical agent documents (e4f7c21)
  • publish canonical agent documents (db77a5f)
  • publish canonical agent documents (5177675)
  • publish canonical agent documents (a002a70)
  • publish canonical agent documents (2f3e4b0)
  • publish canonical agent documents (698a7ed)
  • publish canonical agent documents (f26106e)
  • publish canonical agent documents (a507bc2)
  • publish canonical agent documents (952c621)
  • publish canonical agent documents (b9bf2f9)
  • publish canonical agent documents (f77d241)
  • publish canonical agent documents (67ecac3)
  • publish canonical agent documents (72fb02b)
  • publish canonical agent documents (4b1dc3c)
  • publish canonical agent documents (9d72109)
  • publish canonical agent documents (aa6bd9d)
  • publish canonical agent documents (fb0dd92)
  • publish canonical agent documents (ab552e2)
  • publish canonical agent documents (373fa3e)
  • publish canonical agent documents (d73aeea)
  • publish canonical agent documents (306615e)
  • publish canonical agent documents (a86961e)
  • publish canonical agent documents (cdc93d8)
  • publish canonical agent documents (8037495)
  • publish canonical agent documents (4e163a4)
  • publish canonical agent documents (785833f)
  • publish public Backlog workspace (9eacd14)
  • re-import fan-out protocol (context-cost rules) (c87452f)
  • re-import the fan-out protocol at c1e6cb0 (089f06d)
  • re-render the fan-out protocol from agent-docs (af2fe7a)
  • re-render the fan-out protocol from agent-docs 711db6c (b9a5b78)
  • re-render the fan-out protocol from agent-docs b0d76d8 (9bff53c)
  • readme: lead with what the project is (07c2973)
  • reconcile observability design records (a57fcca)
  • record self-APM span coverage (25dce38)
  • record that #165 was deleted too, not just the closed set (6c699d4)
  • remove stale wiring comments (200bc97)
  • scaffold zensical site + dispatch workflow for m7kni.io hub (2736648)
  • sync agent-docs, a wave's launch message is a file not a chat block (ed61986)
  • sync approved fan-out scheduling and route verification (f5b20ae)
  • sync Astra routing and default wave reports to files (180877e)
  • sync authorised Astra root judgement (734c529)
  • sync authorised Astra root judgement (938fe57)
  • sync cost-aware fan-out routing and prompt guidance (59c572e)
  • sync fan-out async decision-only guidance (14faaf7)
  • sync fan-out protocol from agent-docs ad7abd2 (7b0f1f6)
  • sync fan-out protocol, delegated root authority for unattended runs (085a11b)
  • sync fan-out protocol, explicit add does not bound the commit (8c8c625)
  • sync fixed Astra low orchestration and rescue routing (5ea0fa5)
  • sync nineteen-worker Codex fan-out guidance (fcd4303)
  • sync optional Astra fan-out routing and run contracts (dfa09c3)
  • sync polling and integration contracts (b49031b)
  • sync root async question policy (80dba3b)
  • sync same-session fan-out recovery contract (80e427c)
  • sync wave orchestration and existing-root contracts (7f142a9)
  • sync wave reliability and worktree contracts (6401407)
  • sync wave-root stage authority and lab-Mac GUI gate (dc027ae)
  • tracker: align canonical fan-out protocol (ae2b167)
  • tracker: correct the canonical owner in the rendered header (0d417b2)
  • tracker: re-import the fan-out protocol from canonical (414d743)
  • tracker: render agent documents from the canonical source (88f1beb)
  • write full user-documentation page set (79c83a9)

Build & CI

  • add auto-rc, arm-automerge and ghcr-cleanup (64467f0)
  • add hadolint + trivy Docker security scans (2c8dc84)
  • add OpenSSF Scorecard via shared reusable workflow (8578368)
  • add Snyk -> Snyk Cloud monitor (SCA/SAST/IaC/container) (5113e36)
  • adopt shared rknightion/.github reusable security workflows (25fbdb3)
  • auto-assign maintainer on new issues (notify by email) (a919c0f)
  • auto-rc: trigger on CI completion instead of push (4f8f795)
  • build + publish edge :main image + snapshot chart on push to main (3cbf760)
  • bump shared rknightion reusables to v1.3.1 (ecaab65)
  • bump the broker-token action pin (7567fb6)
  • codacy: add local analysis config + Cloud file exclusions (2959c88)
  • docs-sync and grafana-sync targets moved to the m7kni org (e8cacf2)
  • drop CodeQL pull_request trigger to trim Actions fan-out (8e6fcd9)
  • force module mode and align make-gate lint with CI (db30ea0)
  • grant checks:read to release-please's publish call to fix startup_failure (ef6c318), closes #149
  • helm: validate the rendered chart against the Kubernetes API schemas (64eb9ac)
  • open Renovate PRs by counting internal checks as success (91c65f2)
  • open the release-please PR under a PAT so CI runs without manual approval (f85574d)
  • pin shared rknightion reusables to v1.0.0 (ba573e7)
  • publish image + Helm chart via shared container-publish reusable (5e59ce5)
  • reference rknightion/.github reusables @main (unpin from digest) (302ec29)
  • remove claude issue-triage workflow (a465421)
  • remove hygiene-fork-backstop (pull_request_target) workflow (f969458)
  • remove notify-maintainer-on-new-issue workflow (4470235)
  • renovate: remove local pr limits + minimumReleaseAge pin (ba1c3b3)
  • repin the release-automation reusables to v1.8.0 (888876c)
  • repin the shared reusables to v1.18.1 (7a63147)
  • report Go test coverage to Codacy (a90ede4)
  • resolve actionlint/shellcheck + zizmor workflow findings (437450d)
  • sha256-verify third-party tool downloads and add a fork-PR hygiene backstop (4872de5), closes #59 #108
  • tune ci.yml — CI concurrency hygiene (1ed5129)
  • upgrade to Go 1.27 (f1ab1a3)
  • use Codacy account token for coverage upload (2b02c4d)

3.0.1 (2026-06-26)

Bug Fixes

  • force release-please generic updater on Chart.yaml; add workflow_dispatch (3050d0b)

Documentation

  • repo is public + main requires ci-success (admin bypass) (f2b88e2)

Build & CI

  • add hybrid issue-triage (no-tools AI analysis + deterministic apply) (98cc6a0)
  • automate releases with release-please (changelog + GitHub Releases + chart bump) (d5c84f1)
  • parallelize CI matrix + add ci-success gate; enable Renovate automerge (fd6a293)
  • wire release-please config, workflows, and chart bump (98db168)

[3.0.0] - 2026-06-26

Build & CI

  • Harden GitHub Actions workflow (zizmor)
  • Enforce the forbidden-words guard in CI via FORBIDDEN_WORDS_PATTERN
  • Strengthen leak detection — credential shapes, gitleaks, fix silent grep bug

Refactor

  • Unify project naming as genai-otel-bridge (retire "decant")

[2.1.1] - 2026-06-25

Bug Fixes

  • Empty-array-safe PRIVATE_NAMES expansion (bash 3.2 + set -u)
  • Example image -> ghcr.io/rknightion/genai-otel-bridge:latest (GHCR has no :main)
  • Log in to the registry host, not host/namespace (GHCR support)

[2.1.0] - 2026-06-25

Build & CI

  • Disable tag-triggered auto-promotion (freeze customer promotion during rename)
  • Narrow .github exclude to workflows/ so issue+PR templates promote
  • Publish image + chart to GHCR from the public repo on v* tags

Documentation

  • Add OSS governance files + README quickstart
  • Sanitize root CLAUDE.md + put CLAUDE.md on the public surface

Features

  • Add 'genai-otel-bridge -validate-config' for secret-free config/overlay validation

Refactor

  • Rename make-aip-oi-secret.sh -> make-genai-otel-bridge-secret.sh
  • Genericize EKS example, move onto the public surface
  • Extract customer delivery artifacts out of the product repo

[2.0.0] - 2026-06-25

Dependencies

  • Optimise renovate config for vendored go + conventional commits

Refactor

  • Rename project to genai-otel-bridge, artifacts to genai-otel-bridge

[1.5.0] - 2026-06-24

Bug Fixes

  • Correct alert state enum OK -> Ok

Documentation

  • Correct GS1 promote-lists to live indexed sets
  • Document v2 dashboard, dynamic thresholds, 11-alert set
  • Note langsmith product rules + per-bucket-gauge staleness gotcha
  • Record late-data investigation (§11) + revision-age instrumentation

Features

  • Add self-relative staleness recording rules
  • Self-relative PollerStale + 7 new self-obs alerts
  • Rebuild self-obs dashboard as v2 tabs + dynamic layout
  • Add LangSmith product recording rules
  • Instrument bucket-revision lateness (age histogram)
  • Add bucket-revision lateness panel (age p50/p95)
  • Map native top-level trace_id field to OTLP trace_id

[1.4.0] - 2026-06-24

Bug Fixes

  • Gofmt config.go alignment + test stamper functions to satisfy unused lint

Documentation

  • Document portkey api_key_use_cases per-key labelling
  • Tighten api_key_use_case slug-rule wording (run-collapse)

Features

  • Lift metadata correlation_id into logs (record attr + OTLP trace_id)
  • Add api_key_use_cases to Portkey SourceConfig
  • SlugifyUseCase label normaliser
  • ResolveUseCases validation + use-case stampers
  • Allow-list api_key_use_case (+ app golden union)
  • Analytics N internal filtered passes + api_key_use_case stamp
  • Groups N internal filtered passes + api_key_use_case stamp
  • Logs_export per-use-case fan-out + record-tier api_key_use_case
  • Surface portkey api_key_use_cases example

Testing

  • Analytics use-case stamp + api_key_ids filter e2e
  • Logs export api_key_ids filter body + record stamp
  • ValidateOwnership passes with api_key_use_cases (M7 regression guard)

Earlier releases

All notable changes to genai-otel-bridge. Subsequent releases are generated from Conventional Commits.

[1.3.1] - 2026-06-23

Bug Fixes

  • Track released version in appVersion + auto-stamp on changelog

[1.3.0] - 2026-06-23

Features

  • Notebook-parity analytics — token_type split, latency avg, api_key_ids filter

[1.2.3] - 2026-06-23

Bug Fixes

  • Rebuild wrong-arch cached tools-e2e binaries (helm/k3d/kubectl)

[1.2.2] - 2026-06-23

Bug Fixes

  • Pin gate jobs to arm64 + rebuild wrong-arch cached tools

[1.2.1] - 2026-06-23

Bug Fixes

  • Record last_success on the logs emit path (health coverage for logs loops)
  • Pull golang builder base via mirror.gcr.io to dodge Docker Hub rate limits

[1.2.0] - 2026-06-23

Bug Fixes

  • Allow product OTLP egress to in-cluster Alloy on 4318
  • Make self-obs health stats self-contained (not recording-rule dependent)
  • Correct scrape_healthy bool + add poller-down/auth self-obs alerts

Documentation

  • Document the self-obs poller-health alerts

Features

  • Add genai-otel-bridge self-observability dashboard (v2, self-obs role)
  • Stamp a source record attribute on product logs (portkey/langsmith)

[1.1.1] - 2026-06-23

Bug Fixes

  • Recover logs_export from a lost-ack /start instead of wedging on AB01
  • Deploy poller into the grafana-poller namespace (ESO SA alignment)

Documentation

  • Align dev overlay with renamed langsmith-poller secret
  • Consume existing shared portkey/langsmith secrets

Features

  • Route product telemetry through in-cluster Alloy; enable self traces + profiles

[1.1.0] - 2026-06-23

Features

  • Add gated ESO SecretStore/ExternalSecret + runtimeEnv to deploy/helm

[1.0.3] - 2026-06-23

Build & CI

  • Scope the deploy jobs to the dev environment so the environment-scoped registry/OIDC configuration resolves at build time (the image build/push + GitOps sync jobs now declare environment: dev, matching the rest of the estate).

[1.0.2] - 2026-06-23

Build & CI

  • Parallelised the CI gate — its steps (build, vet, lint, unit test, race, acceptance, envtest, helm-lint) now run as concurrent jobs rather than one sequential run, cutting wall-clock to roughly the slowest single step. All steps still block the image publish.

[1.0.1] - 2026-06-23

Build & CI

  • Delivery pipeline — the CI now builds the container image and pushes it to the configured registry, then syncs the Helm chart into the GitOps deployment repo and pins the released image tag.
  • Kaniko build path (Dockerfile.kaniko) — a BuildKit-free Dockerfile for daemonless CI builders (native single-arch build).
  • The image is tagged with both the deployment-tracking tag and the vX.Y.Z release tag.

[1.0.0] - 2026-06-23

Initial release.

genai-otel-bridge is a vendor-neutral integrator that polls AI-platform APIs (LLM gateways such as Portkey, evaluation platforms such as LangSmith) and emits operational telemetry to Grafana Cloud as OTLP metrics and logs.

Features

  • Portkey source — analytics + groups → OTLP metrics; logs_export → OTLP logs.
  • LangSmith source — sessions/eval → OTLP metrics; runs → a content-free OTLP log index.
  • Content-free by design — never requests prompt/response bodies; an outbound field allow/deny-list governs every emitted field, enforced as a release gate.
  • Highly available — leader-elected single-emit; monotonic, lease-epoch-fenced checkpointing; conditional gap-free emit within source retention plus the sink accept window.
  • Deterministic OTLP — hand-encoded, byte-identical re-emit (the precondition for sink idempotency).
  • Operationally honest — every polling/emit gap or skipped sample is an alertable signal, never silent.
  • Configurable governance — content allow/deny-list and per-metric cardinality guard; durability tuning sized to the Grafana Cloud out-of-order / too-old accept windows.
  • Self-observing — own metrics + logs (distinct resource identity), optional self-profiling and self-tracing.
  • Hardened Helm chart — non-root, default-deny network policy, PDB, least-privilege RBAC.

Licensed under AGPL-3.0-only.