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 Q4
Added
- 4.D.2certify Explore provenance and metadata Trace Inspector contract#911
- apimount operator metadata read authorization#893
- authcomplete 4.P.1 operator session lifecycle and mounted authorization assurance#900
- consoleadd metadata-only D2 trace inspector#908
- consoleconnect authenticated tenant-scoped D1 overview (4.D.1)#906
- consoleenforce fail-closed preview boundary#892
- operator-webtransplant dashboard mock into Track D foundation#887
Fixed
- pre-track-dclose runtime assurance and e2e readiness gaps#903
- proxyenforce fail-closed pre-track-d readiness controls#897
2026 Q3
Added
- 4.P.1partial Gate G1 — fail-closed policy, SecretUse, SSRF (F4-015–018)#845
- 4.P.2canonical evidence plane and durable publication#848
- 4.P.3privacy, Retention, Deletion & Audit Governance#852
- 4.P.4hybrid usage ledger and fail-closed spend caps#860
- 4.p.5production platform, recovery and supply chain#870
- api4.P.0 operator runtime topology & environment contract#840
Added
- apiadd FastAPI management-plane skeleton with auth and error envelope (m4.A.1)#780
- apiagent management API with default provider/model fields (m4.A.3)#791
- apiorg-scoped provider credential management with envelope encryption (m4.A.5)#801
- apiorganization and user management API with suspension propagation (m4.A.2)#785
- apiPAT management API with scoped permissions and gRPC revocation (m4.A.4)#797
- apirate limit configuration API with hot-path reload (m4.B.2)#808
- proxy,apiper-org model routing policy (m4.C.2)#817
- proxy,apiprovider fallback routing (m4.C.4)#822
- proxyatomic Lua hierarchical rate limiter agent→org→global (m4.B.1)#805
- proxyrolling error-rate circuit breaker per provider (m4.C.3)#820
Fixed
- apiclose 4.A.1 verification gaps (envelope, logs, CI)#782
- cirepair tagged release SBOM upload and docker caller perms#776
- ciconfigure release-please signoff and harden DCO workflow env binding
Documentation
- roadmapredesign Phase 4 operator platform milestones (Track P/D/E)#831
Added
- contextassemble context gRPC with L0-L2 degradation (m3.5.C.6)#712
- contextcontext formatter with locked ordering and session nonce (m3.5.C.5)#707
- contextpacker v2 — bounded DP knapsack (m3.5.C.4)#706
- contextparallel retrieval orchestration with three-way concurrency (m3.5.C.2)#696
- contexttoken budget calculator via generate-and-diff catalog (m3.5.C.1)#691
- e2e3.5.F.1 learning-loop suite on compose-test#752
- mcp-memory3.5.E.2 search_memory and write_memory via memory HTTP#734
- mcp-memory3.5.E.4 rate limit, auth breaker, audit gap-fill#749
- mcp-memorydeepen 3.5.E.1 protocol conformance coverage#730
- memory3.5.E.3 record_feedback via ledger + MCP/REST#746
- memoryrelevance-gated composite scoring (m3.5.C.3)#704
- proxyembed ibex JSON metadata via response pipeline (m3.5.D.3)#719
- proxyfail-open Go contextclient for AssembleContext (m3.5.D.1)#715
- proxyterminate sessions and enqueue extraction (m3.5.D.4)#721
- proxywire Assemble into dispatchProviderCompletion (m3.5.D.2)#717
- security3.5.F.2 cross-tenant ISO-MCP isolation matrix#759
- webbenchmarks suite UI parity and nested nav#700
- workercost-tiered provider-agnostic extraction execution (m3.5.B.2)#684
- workerextraction prompt v2 and structured output schema (m3.5.B.1)#680
- workerextraction quality evaluation harness with gold-set (m3.5.B.4)#689
- workerincremental turn tracking and idempotency for batch extraction (m3.5.B.3)#686
Fixed
- cirestore tagged release docker permissions and workflow_call secrets#677
- cischeduled Integration Race + weekly HNSW 1M reliability#743
- ciscope memory-integration to memory path filter#694
- contextclose C.4/C.5 packer and formatter follow-up gaps#710
Added
- memoryadd pgvector store with per-tx ef_search#599
- memoryadd pii detect/redact stage with Presidio (m3.c.1)#604
- memorybootstrap service + scoring v2#597
- memorycontent and near-duplicate detection (m3.c.2)#614
- memoryembed client, HNSW benches, and ADR-0053 (m3.2.1 PR-C)#600
- memorymilestone 3.E.1 security integration suite#643
- memorymilestone 3.E.3 retrieval-quality benchmark sign-off#654
- memorymulti-label memory classification write path (m3.C.4)#629
- memoryredis hot-cache read consumer and top-50 trim (m3.D.3)#640
- memoryschema v2 expand — HNSW, quality columns#595
- memorysemantic search read path with HNSW and GIN fallback (m3.D.1)#633
- memorytemporal-interval-aware conflict detection (m3.c.3)#618
- memorywire composite scoring into search ranking (m3.D.2)#636
- memorywrite-path persistence and orchestration (m3.c.5)#625
- workerCelery worker skeleton with Redis broker and task routing (m3.5.A.1)
- workertask observability and dead-letter handling (m3.5.A.2)#673
Fixed
- ciremediate CVE-2026-56854 and close Scorecard security alerts#670
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