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
sourcerecord 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
devenvironment so the environment-scoped registry/OIDC configuration resolves at build time (the image build/push + GitOps sync jobs now declareenvironment: 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.Zrelease 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.