Commits
-
openvibe-shared v2.20.0 (was v2.17.0) (#23)OpenVibers · 9 Oct 2026
6d597d3 -
openvibe-contracts v0.122.1 (was v0.112.0) (#21)OpenVibers · 9 Oct 2026
ea4eba5 -
openvibe-shared v2.17.0 (was v2.15.0) (#20)OpenVibers · 9 Oct 2026
c63f1bc -
openvibe-shared v2.15.0 (was v2.13.2) (#19)OpenVibers · 8 Oct 2026
2819911 -
openvibe-shared v2.13.2 (was v2.13.0) (#17)OpenVibers · 8 Oct 2026
ee41c27 -
openvibe-sdk v0.35.0 (was v0.26.0) (#16)OpenVibers · 7 Oct 2026
e21aff5 -
openvibe-contracts v0.112.0 (was v0.97.0) (#15)OpenVibers · 7 Oct 2026
ee5d2c4 -
Events moves to openvibe.events: connect-src, stream URLs and shared 2.13.0 in one change (plan T7) (#14)OpenVibers · 7 Oct 2026
7ed14ef -
openvibe-shared 2.12.0: the showcase home and the Frame footer set their font (they rendered serif) (#13)OpenVibers · 7 Oct 2026
72639ca -
Coupons' home on the showcase kit; pin openvibe-contracts v0.97.0 and openvibe-shared v2.9.0, drop the proposed-capability shim (#11)OpenVibers · 5 Oct 2026
da26edd -
Adopt openvibe-publishing v1.3.0 and serve /llms-full.txtOpenVibers · 4 Oct 2026
b02c7b5 -
Render pages through openvibe-publishing/layout on shared shell v2.6.0OpenVibers · 4 Oct 2026
c845eea -
Bump openvibe-shared v2.4.0 → v2.5.0 (#5)OpenVibers · 3 Oct 2026
27c8993 -
Bump openvibe-shared to v2.4.0 (#4)OpenVibers · 3 Oct 2026
2ff9dc2 -
Move Coupons errors and shutdown onto openvibe-sdk/service (#3)OpenVibers · 2 Oct 2026
d968389 -
Coupons on the Publishing 1.1.0 chassis (plan T9 J5): the Sources client, change cursor and pull loop come from openvibe-publishing/ingest (clients/sources.js keeps only the coupons policy per item, on the caller's transaction), Search publication and the IndexNow ping from /publication (domain/publication.js keeps the gate facts, document bodies and product events), and the registrable-host helpers from the chassis' hosts. Migration 0002 seeds coupons_ingest_cursor once (continuity, never a reset to zero). The replaced domain/hosts.js, domain/psl.js and events/outbox.js are deleted; test/chassis.test.js proves nothing requires them and replays the Sources fixture against a golden captured from the pre-change code; test/domains.test.js runs the same host cases against the chassis. npm test and test:pg green (verified).OpenVibers · 29 Sept 2026
0b72fa1 -
Coupons moves between its pages without a reload (plan T11): openvibe-shared v2.2.0 boost swaps <main> styles-first with the shared transition, prefetching on intent, and does a normal load across a deploy (the ov-boost marker carries the release). The navbar's sign-in returns to the current page.OpenVibers · 29 Sept 2026
2988c6a -
Coupons on the service kit (plan T1): sign-in is openvibe-sdk/sso createSsoClient (state + PKCE S256, server-side exchange, next limited to this site and the Network) and server/auth/sso.js with the openvibe-shared/auth-client import is deleted; service tokens are checked by openvibe-sdk/auth verifyServiceToken with the key their kid names from the same JWKS client; the outbox is createServiceOutbox. Pins: openvibe-sdk v0.25.1, openvibe-contracts v0.79.0, openvibe-shared v2.0.0. npm test and test:pg 13/13.OpenVibers · 29 Sept 2026
d4d51e1 -
The SQLite era is gone (on PostgreSQL since 2026-09-28; no compatibility kept): the one-time migrate-to-postgres script, *_DB_PATH settings (config, .env.example, systemd unit, test helpers), the unused better-sqlite3 dependency and its lockfile entries, and docs, docstrings and STATUS lines about SQLite or its rollback window. Reviewed independently before shipping. npm test 13/13 test files passed.OpenVibers · 29 Sept 2026
74240ba -
openvibe-shared v1.27.0 (from v1.25.0): an async route handler's rejection now reaches the error handler instead of ending the process. Express 4 leaves such a promise unhandled and Node 22 exits on it; instrument() now applies openvibe-shared/express-async. 1.26.0 adds async gauge collects. npm test: 13/13 test files passed.OpenVibers · 28 Sept 2026
5ae03b0 -
Coupons moves to PostgreSQL and Valkey (ADR-035, roadmap WS-X2, repository-pass group G1), async from end to end.OpenVibers · 28 Sept 2026
040dc3e -
npm test no longer counts a skipped test as passed (roadmap WS-Q task 7; openvibe-shared/test-runner, Shared v1.25.0). test/run.js counted every file that exited 0 as passed, so a file that printed that it skipped its work and checked nothing still read as green. It is now the shared runner through run() (same files, one at a time as before, 60 s timeout per file, VERBOSE=1 still prints every file's output): a test prints "<label>: skipped (<why>)" for what it could not run, and that file is listed with ○ and its reasons and not counted as passed; --strict makes a skip fail the run. No test here skips anything. openvibe-shared is pinned at v1.25.0 (from v1.22.0; 1.23 and 1.24 add the web runtime, release-watch fixes and the readiness skip, and /api/ready answers as before because its db check really runs; README and STATUS.json follow). npm test (Node 22) 13/13.OpenVibers · 28 Sept 2026
168262d -
Per-actor rate limits on Coupons' /api/v1 and its page forms (roadmap WS-R task 4, openvibe-sdk v0.12.0 limits). server/http/actor-limits.js makes one limiter per app and counts requests once req.viewer is resolved. A person counts as user:usr_…, whether they call with their Network token, a service names them in X-OV-Subject, or one of their browser helpers sends the request with its cpx_ install token. Every browser a person connected counts together, never by the address it reports from. A first-party service relaying a signed-out visitor counts by the address it forwards. A service or app acting as itself, such as svc:ai for coupons.extract_coupon, counts by its principal. A signed-out caller counts by address. A first-party service reading for itself is not counted on reads, since the lookup limiter already bounds it at 600 a minute. Past a limit a route answers 429 problem+json rate_limited with Retry-After before the route does any work (on the API after the guard, on forms before the body is read), logs one [Limits] line and counts coupons_rate_limited_total{limit,window}.OpenVibers · 28 Sept 2026
64835d2 -
Pins: openvibe-shared 1.20.0 -> 1.22.0 (realtime notification badge, off until a site turns it on; the unreachable-host browser check)OpenVibers · 26 Sept 2026
348f585 -
Pins: openvibe-shared 1.18.0 -> 1.20.0 (the update matrix and release manifest 1.2.0: client generations, the shell)OpenVibers · 26 Sept 2026
ae8beca -
Pins: openvibe-shared 1.17.1 -> 1.18.0 (update telemetry: prompted count, sessions by generation)OpenVibers · 26 Sept 2026
0e2c7c6 -
Pins: openvibe-shared 1.16.1 -> 1.17.1 (release notifications)OpenVibers · 26 Sept 2026
1931942 -
Pins: openvibe-shared 1.16.0 -> 1.16.1 (the OV mark stops animating when idle, hidden or off-screen)OpenVibers · 26 Sept 2026
899873c -
Pins: openvibe-shared 1.13.0 -> 1.16.0OpenVibers · 26 Sept 2026
f366b24 -
Moderation audit (ADR-022, WS-D task 1): coupons.moderation.action from the outbox in the same transaction when staff or a staff-capable service disables, expires, re-enables (coupon.disabled|expired|enabled, the note as reason) or approves (coupon.approved) someone else's code, or approves, disables or re-enables a shop (merchant.approved|disabled|enabled, with the codes it published); it names the staff member and never the submitter (owner_subject null) or the code; staff changing their own code reports nothing. Pins: openvibe-contracts 0.49.0 → 0.53.0OpenVibers · 26 Sept 2026
f86f660