Commits
-
Move pruned events into a replay tier and read both with one cursorOpenVibers · 4 Oct 2026
84ec8d9 -
Add the nats-js-v1 JetStream STREAM carrier over the PostgreSQL recordOpenVibers · 4 Oct 2026
10b286c -
Implement the smallest T7 PR on current origin/main: an optional NATS… (#6)OpenVibers · 3 Oct 2026
73132d2 -
Carriers, the planner and explain (plan T7, ADR-042 decisions 2 and 5): pg-v1 (the poll, every class) and valkey-v1 (QUEUE: a Valkey stream per carrier class through openvibe-sdk/queue, whose consumers take a delivery with a targeted lease; TOPIC: realtime fan-out across Events processes over pub/sub, deduped by event id), with EWMA and a breaker per adapter. PostgreSQL stays the record and the lease the only thing that sends: a lost, late or duplicated stream item changes latency, never the outcome. server/fabric/planner.js places each (carrier class, ordering key) with openvibe-sdk/placement over resource offers and revisioned rate cards, with hysteresis, and keeps a key with a backlog on its carrier; deliveries record their carrier; delivery_placements (migration 0005) keeps each change of decision (pruned with the retention, the latest per key kept). EVENTS_CARRIERS / EVENTS_CARRIERS_DISABLED choose and switch off adapters (the rollback). at_most_once policies are not retried. Admin explain API: GET /api/v1/placement?event_type=&key= and /api/v1/placement/deliveries/:event/:subscription. A targeted claim locks its subscription row like the poll does (a race test on real PostgreSQL fails without it). npm test 20/21 (fabric's Valkey half needs test:pg) and test:pg 21/21.OpenVibers · 29 Sept 2026
d705349 -
Opaque cursors beside the global seq (plan T7, ADR-042 decision 7; openvibe-contracts v0.81.0): every answer that carries a seq also carries its cursor (publish results, pulls with next_cursor, single events, checkpoints with epoch and carrier), pull accepts after=<cursor>, the SSE id is the cursor and Last-Event-ID accepts a cursor or, for this release, a bare seq; a cursor from another retention epoch answers the gap shape, never a silent restart (migration 0003: store_epoch, consumer_checkpoints.epoch/carrier). seq, next_after_seq, latest_seq and X-OpenVibe-Seq are unchanged this release. test/cursor.test.js; answers validated against the contracts; npm test and test:pg 19/19 (verified).OpenVibers · 29 Sept 2026
2863954 -
Events on current pins (plan T7, A1 + A2): openvibe-contracts v0.80.0, openvibe-sdk v0.25.1, openvibe-shared v2.2.0 (no removed export was in use; behaviour unchanged); docs/replay-window-rollout.md and docs/capabilities-proposal/ deleted (superseded by Contracts' capability manifests; nothing linked them).OpenVibers · 29 Sept 2026
d42168e -
Events on PostgreSQL (ADR-035, roadmap WS-X2, repository pass G3).OpenVibers · 28 Sept 2026
f71906e -
README and STATUS.json are current (roadmap WS-U task 3): the README gains Capabilities (the seven implemented capabilities; Events calls no service with a grant; events.usage.recorded), Security (SECURITY.md, auth, private data, egress, delivery signatures, exposure and ticket-free logs) and Deploy (sudo ovhost deploy events, unit, port, env file, store, vhost, drain, rollback) sections. The status line no longer says Media reports only over Live's webhook or that no browser uses the realtime stream, and the contracts note names the v0.63.0 pin. STATUS.json names openvibe-contracts v0.63.0, gains features and is updated 2026-09-28.OpenVibers · 28 Sept 2026
19919ec -
Docs: STATUS.json and README match production (2026-09-23)OpenVibers · 23 Sept 2026
b251739 -
Developer apps (Wave 20, ADR-014): events.app.publish|read|subscribe with app tokens on the existing routes — app.<project_key>.* types only (project_key = p + lowercased project ULID, source app-<lowercased app ULID>), reads scoped to the own project and env plus public first-party events, subscriptions to public https endpoints only (SSRF guard at subscribe and delivery, pinned lookup, no redirects); sandbox tokens accepted on these routes only, events stored with project_id and env and never crossing environments; per-project publish-rate, retained-bytes and subscription quotas; network.app.revoked / network.grant.changed disable an app's subscriptions and old tokens; public nginx locations for the app routes; openvibe-contracts v0.28.0OpenVibers · 23 Sept 2026
06af758 -
Capability ids with three segments (events.event.publish, events.event.read, events.subscription.manage, events.delivery.admin); openvibe-contracts v0.6.0; contract check in CIOpenVibers · 23 Sept 2026
5082c38 -
Ops and docs: .env.example, systemd unit, nginx vhost for SSE, CI on Node 22.22.1, README usage, STATUS alpha W3OpenVibers · 23 Sept 2026
a5fda92 -
Charter: OpenVibe.Events as defined in the OpenVibe realignment plan (placeholder, no code yet)OpenVibers · 21 Sept 2026
9c89644