What shipped on OpenVibe.AI
Every change deployed to OpenVibe, newest first. Each line is a commit from the OpenVibers repositories, linked to the change itself. When enough have gathered, or a large feature lands, they are written up as Patch notes on openvibe.blog. JSON: /api/v1/changelog.
2026-09-24
b2ea9d1ai.run.* events (W13 gate): queued, cached, succeeded and failed runs each queue their openvibe-contracts ai.run.<status>@1 event in the same transaction as the state change (succeeded with its citations; interrupted runs at boot too)…
bc26762One W3C trace across services (Track O): openvibe-shared v1.7.0 trace.install(app) keeps each request's traceparent and puts it on the calls made while serving it, to loopback and OpenVibe hosts only
beee294CI calls the shared test workflow (Track Q): OpenVibe.Shared test.yml@e8b0caf (install, node --check, npm test, openvibe-contracts-check; ffmpeg where the tests need it) instead of a copy of those steps
a6d4f39SECURITY.md: how to report a vulnerability ([email protected], 7-day reply, scope, supported versions)
2026-09-23
f034a9fopenvibe-shared v1.5.1, openvibe-contracts v0.33.0
772262copenvibe-shared v1.5.0 (Track R release manifest), openvibe-contracts v0.32.0
3a480acCI: run the shared security workflow (gitleaks secret scan + dependency audit, Track Q)
96dc8a3Track O: /metrics for direct loopback callers and a truthful /api/ready (openvibe-shared v1.3.0)
b92f5efDocs: STATUS.json and README match production (2026-09-23)
bdca064Run queue caps: a run that would wait for a slot is refused 429 queue.full (problem+json, Retry-After) once its caller already has AI_MAX_QUEUED_RUNS_PER_CALLER runs waiting (default 50) or the queue holds AI_MAX_QUEUED_RUNS (default 200)…
549ec14Schema cache: the compiled-validator cache shared by every caller (ai.extract/ai.enrich schemas are caller-supplied) is an LRU capped by entry count and total schema bytes (AI_SCHEMA_CACHE_MAX=500, AI_SCHEMA_CACHE_MAX_BYTES=8 MiB); evicted…
690b068Fetcher: a redirect from a public allow-listed host may not reach the internal Media origin. Every hop was judged, but judge() let the internal origin through on any hop, so an allow-listed host that redirects could make the service fetch…
f75c66bNamespaces fail closed: a token without an ns claim no longer runs every namespace's workflows. A service token (svc:<id>) without ns falls back to its AI_NS_FALLBACK entry (default live=live.*|network.site_copy, since Network grants…
8928289nginx: client address headers only from $remote_addr (realip). X-Forwarded-For was appended to and CF-Connecting-IP passed through from the client, so a request reaching the origin without Cloudflare (DNS-only host or the bare IP) chose…
ef314f7Provider circuit breaker ignores caller-caused 4xx: a few malformed requests from one caller (bad image, oversized max_tokens, invalid schema) no longer open the circuit and take the shared provider away from every other caller
2e7b6fdopenvibe-contracts v0.29.0 (ai manifest and capabilities released); contracts check is blocking
3d9e0faMove Live's AI here: import script for its AI records, migration plan, and the Live patch that adds AI_SERVICE=remote
87d38e3Capability proposals (ai.run.create, ai.run.read, ai.workflow.manage, ai.provider.manage, ai.usage.read) and the ai service manifest; README, .env.example, systemd unit, nginx vhost, CI on Node 22.22.1, STATUS alpha W13
8ecc674AI service: providers, routing with fallback and circuit breaker, versioned templates/workflows/routes, runs, request log, citations, scoped cache, quotas and audit
2026-09-21
3813e51Charter: OpenVibe.AI as defined in the OpenVibe realignment plan (placeholder, no code yet)