Changelog
What shipped in each IBEX Harness release — features, fixes, and breaking changes, grouped by year.
New versions are proposed weekly (Sundays 08:00 UTC) and published when the release PR merges. See RELEASING.md for the process.
2026 Q3
Added
- dbmemory_labels multi-label join table (m2.5.G5.M2)#586
- dbtemporal validity foundation on memories (m2.5.G5.M1)#581
- embedderadd tei gpu embedding backend#561
- embedderhosted-API embedding backend (OpenAI default, Cohere alternate) (m2.5.G4.M3)#576
- embedderinterface registry and Python ABC (m2.5.G4.M1)#557
- embedderredis content-hash embedding cache (m2.5.G4.M4)#579
- mcpmcp server skeleton with stub tools and auth boundary (m2.5.G6.M1)#590
- obsphase 2.5 exit gate with local LGTM stack (m2.5.G7)#592
- proxyadd model capability registry for per-model context and features (m2.5.G1.M2)#541
- proxyanthropic provider adapter (2.5.G1.M1)#538
- proxynon-streaming response pipeline seam (m2.5.G3.M1)#551
- proxyopenaicompatible adapter for self-hosted LLM backends (m2.5.G1.M3)#544
- schemamemory_relationships graph foundation (m2.5.G5.M3)#588
- tokenizerper-family token counting registry (m2.5.G2.M1)#548
Fixed
- authequalize ValidateToken miss cost and rate-limit peers#445
- authrequire CreateToken agent_id/user_id same-org bind#440
- authrequire CreateToken permissions subset of caller#437
- ciunblock semantic-pr-title on release PRs#404
- dbenforce composite org FKs on token subjects#443
Added
- clickhousetyped batch writer for llm_traces#381
- dbdirectives and directive_versions schema#356
- dbsessions and checkpoints schema#366
- infraclickhouse llm_traces table schema#378
- proxy,authtoken revocation propagation via Redis pub/sub#353
- proxyasync trace emitter — ClickHouse integration in LLM handler#383
- proxyauth cache — bloom filter + in-process LRU for token validation#350
- proxycentralise provider error mapping to stable envelope#348
- proxydirective resolver with Redis cache and Postgres fallback#360
- proxyidempotency-key Redis dedupe for provider retries#388
- proxym2.1.3 OpenAI SSE streaming dual-write forwarder#342
- proxyprovider routing middleware — selects provider by model#345
- proxysession idle-timeout sweeper marks abandoned sessions#375
- proxysession lifecycle management in LLM request handler#372
- proxysession store — create, checkpoint, close#368
- proxysystem prompt injection with configurable strategy#363
Fixed
- cichangelog deploy, daily benches, faster profiles#294
- ciexclude CI-only lockfiles from Syft SBOM for Grype#324
- ciresolve SonarQube workflow security hotspots#320
- depsoverride js-yaml to clear GHSA-52cp-r559-cp3m#311
- securitygrpc bump, CodeQL alignment, dependabot go-git ignore#326
- webshow desktop theme segmented control on cold load#297
Added
- webpaper/ink landing, blog, changelog, and roadmap redesign#280
- webredesign changelog page with curated release notes#243
Fixed
- cirepair Tagged Release workflow_dispatch startup#240
- ciresolve tagged release job outputs from step context#242
- cirun version release on merge to create release tag#238
- ciskip DCO on merge commits; strip CR in PR tracking#275
- cisplit tagged release docker job to fix workflow_dispatch#246
- cistop Vitest hang from blocking web deploy#282
- ciuse cosign bundle format for SBOM signing#247
- ciweekly bench publish, every-PR comments, cosign sigstore upload#248
- webrestore landing marquee and fix mobile overflow#286
Added
- authtoken creation and management#47
- authvalidate PAT against Postgres#16
- benchbuild world-class benchmark pipeline and IBEX dashboard
- benchdata pipeline and docs benchmarks section#176
- dbusers and agents schema, token FK constraints#57
- docsapply Matte Graphite design tokens (D.2.2)#104
- docsASCII text-only Mermaid diagrams#129
- docsbootstrap Fumadocs app at docs/app (D.2.1)#101
- docsMDX component catalogue (D.2.3)#108
- docsmigrate to Cloudflare Pages static export#143
- docsnavigation shell (D.2.7)#106
- docsunified landing and docs on ibexharness.com#189
- docswave 14 mobile nav, perf, and mermaid ASCII fix#137
- docsWave 4–5 milestones (D.2.4–D.3.1)#114
- infragraceful shutdown with connection draining for auth and proxy#68
- proxyadd llm provider interface and registry
- proxyagent identity verification via gRPC ValidateAgent#64
- proxyauth gRPC client
- proxyinput validation and stable error envelope#55
- proxyopenai non-streaming HTTP client#211
- proxyrate limit skeleton#62
- proxyrequest ID generation and context correlation middleware#66
- proxyrequest normalization
- webrestore warm landing visuals site-wide#195
Fixed
- authcorrect ListTokens keyset cursor pagination
- benchdeploy dashboard via GitHub Actions Pages#175
- benchk6 v0.53 parsing, real proxy benches, and Matte Graphite dashboard
- benchpre-PR benchmark publish and static docs embed
- benchresolve baseline_sha from published history when schema unset#179
- benchsecure benchmark bot integration and fix dispatch payload#178
- benchshow sub-ms stage latencies and validate go microbench data#184
- benchunblock k6 export and CI load profile#173
- ciallow .github markdown in repo layout guard
- cicomplete workflow hardening and Sonar review fixes#158
- cicorrect codecov pin and gitleaks allowlist for test fixture
- cidrop production HTTP smoke from docs deploy#148
- ciexclude infra from handwritten coverage gate scope
- ciharden version release workflow reporting#230
- ciimprove workflow visibility and standardize release flow#169
- cimake codecov upload non-blocking and annotate integration grpc tests
- cipost semantic-pr-title on version release PRs#234
- cirepair action SHAs, Scorecard permissions, and pin guard#167
- cirepair SBOM Grype install and OpenSSF scorecard gaps#213
- ciresolve release PR number from release-please pr JSON#236
- cirun gitleaks full-repo scan to avoid root-commit range error
- cistabilize docker-publish and benchmark history#168
- cistabilize integration coverage and resolve lint/secrets
- cistabilize SEC4 rate-limit probe; sync CURRENT_STATE after [#92](https://github.com/Rick1330/ibex-harness/issues/92)#93
- ciunblock proxy config tests, lower coverage gate to 80%
- ciuse valid gocovmerge pseudo-version
- dockerbump golang build image to 1.25.12 for CVE-2026-39822#198
- docsdeploy with Node 22 and pnpm wrangler on main#131
- docshoisted pnpm for OpenNext Workers runtime#132
- docsmove fumadocs CSS import before Tailwind directives#103
- docsrepair Cmd+K search and cut over domain to Pages#144
- docsrepair static export Cmd+K search on Pages#146
- docsrestore 3-column layout broken by page-enter wrapper#119
- docsroute brand to marketing site and align cross-domain SEO#153
- docsscan JS chunks in deploy smoke for search index URL#145
- docsserve search index as static public asset#142
- docsskip filesystem mtime on Cloudflare Workers#133
- docsunblock deploy, order CI jobs, optimize nav logo#147
- docsuse static Orama search for Cloudflare Workers
- docswave 14 quality gates remediation (re-land [#137](https://github.com/Rick1330/ibex-harness/issues/137))#139
- dxlocal dev smoke, db-seed on Windows, and migration repair
- move integration helpers into repository_test; gofmt chat cases
- proxyclose burst probe bodies and serialize integration tests in CI
- releaseenforce pre-1.0 versioning standard
- remove unused authMessageTestCases helper
- remove unused field from uuid test cases
- testremove hanging run test and cover config nil pointer redaction
- use full semgrep nosemgrep id for test gRPC servers
- websanitize RSC prefetch txt files on static export#197
Changed
- docsreduce CLS and enforce static doc pages#116