Commits
-
openvibe-shared 3.0.0: delete the SQLite config store and SQLite analytics (#54)OpenVibers · 10 Oct 2026
ad92e38 -
openvibe-sdk v0.37.2 (was v0.35.0) (#52)OpenVibers · 10 Oct 2026
c3f496e -
openvibe-contracts v0.127.0 (was v0.126.0) (#48)OpenVibers · 10 Oct 2026
6169b29 -
openvibe-contracts v0.126.0 (was v0.122.1) (#46)OpenVibers · 10 Oct 2026
8ba0cb5 -
openvibe-contracts v0.122.1 (was v0.112.0) (#41)OpenVibers · 9 Oct 2026
7c36bed -
openvibe-sdk v0.35.0 (was v0.20.4) (#30)OpenVibers · 8 Oct 2026
e8744b7 -
openvibe-contracts v0.112.0 (was v0.61.0) (#28)OpenVibers · 7 Oct 2026
2a646a6 -
Shared 2.11.0: a bot glyph in the OV icon family (OpenVibe.Bot's site icon). (#22)OpenVibers · 7 Oct 2026
7f1008e -
STATUS.json names the pinned versions and today's date (docs-currency) (#21)OpenVibers · 7 Oct 2026
eb5b818 -
shipped.js knows OpenVibe.Bot; release 2.10.1 (#20)OpenVibers · 5 Oct 2026
c298afd -
Next-step cards in the showcase kit and the traffic-between-products ADR; release 2.10.0 (#19)OpenVibers · 5 Oct 2026
009229b -
Showcase ring icons fill their 40 px slot; release 2.9.0 (#18)OpenVibers · 5 Oct 2026
aa570e4 -
Generate STATUS.json and README version blocks and wire the D41 docs-status check (#17)OpenVibers · 5 Oct 2026
1fea7ad -
Add parallel 'auto' to the test-runner and release 2.8.0 (#16)OpenVibers · 5 Oct 2026
ae68e7a -
Add a CONFIRMATIONREQUESTED notification type and release 2.7.0OpenVibers · 4 Oct 2026
4c6426e -
Add the page shell to STATUS.json features and date it 2026-10-04OpenVibers · 4 Oct 2026
679fa0a -
Bump README status and STATUS.json to 2.6.0 and document shell.page (#13)OpenVibers · 4 Oct 2026
a0890a7 -
Set README status and STATUS.json version to 2.5.0 (#10)OpenVibers · 3 Oct 2026
6b6547e -
Shared 1.30.1: the first in-site move animates (first page = first enter() at route generation ≤ 1), route-transition.js preloads after load, the loading line lives outside the section (re-renders cannot remove it), requested by path so the versions map hashes it. Measured on Live at 400 ms latency: bar, 'Loading Content…' → 'starting up', fade-in, never unstyled. npm test 42/42.OpenVibers · 29 Sept 2026
6ffa241 -
Shared 1.30.0: pages never show unstyled (web-runtime inserts a fragment once its feature's and dependencies' stylesheets have loaded, all started together), rt.enter(section, work, { label }) hides a page until its route is ready, and route-transition.js (fetched on the first move) adds the top progress bar, a 'Loading …' line with the phase, and an opacity-only fade-in. Runtime docs moved to the README (6.2 KB brotli). npm test 42/42.OpenVibers · 29 Sept 2026
fabec42 -
Shared 1.29.2: navbar dropdowns (Live's Go Live → Dashboard) are no longer clipped by the sideways-scrolling links row: the menu is fixed-positioned under its link on hover, focus or tap, offset by a filtered bar's box. Usage notes moved from navbar.js to the README (navbar 28.7 KB brotli, budget 29). npm test 42/42.OpenVibers · 29 Sept 2026
e2c1bdf -
Shared 1.29.1: themes repaint the canvas through the variables (a page's own theme switcher changes the background too), save() applies the theme it saves, and themes without --on-accent get readable button text derived by WCAG luminance (near-black on bright accents); onColor(hex) exported. Navbar brand compact: 6px mark gap, 2px padding, side padding clamp(8px,1.6vw,16px). npm test 42/42.OpenVibers · 29 Sept 2026
ca7d235 -
Shared 1.29.0: openvibe-shared/analytics/pg, request analytics on PostgreSQL (AnalyticsTrackerPg with the same tables and dashboard shapes, analyticsSchema() for migrations, batched 30-day retention). The request path never waits for the database; the day's salt is shared across processes so uniques stay right; no address reaches the database. npm test 42/42.OpenVibers · 28 Sept 2026
1e4bbc3 -
Shared 1.28.1: the account panel's sections keep their height (the accounts block no longer collapses into a sliver with its own scrollbar on phones) and its rows match the menu rows; the OpenVibe.Codes mark at rest shows its V (the looping draw animation was paused at its first, undrawn frame); phones no longer reserve 84-96 px of empty space under the footer (--ov-footer-clearance opts in). npm test 41/41.OpenVibers · 28 Sept 2026
8c5df1b -
Shared 1.28.0: openvibe-shared/config on PostgreSQL. Given an openvibe-sdk/db handle, createConfigStore uses config-pg.js, the same store on the async handle (immutable revisions, atomic activation, last-known-good restored when onActivate fails, redacted secrets with a per-namespace fingerprint key, legacy import) and returns a promise of the store; get() and revision() stay in memory, the rest is async. configSchema() is the DDL for the service's migrations. adminRoutes awaits either kind of store; the better-sqlite3 path is unchanged. test/config-pg.test.js runs every scenario of config.test.js on PGlite (openvibe-sdk v0.20.4 as a dev dependency; its made-up secrets are allowlisted like the original's). npm test 41/41.OpenVibers · 28 Sept 2026
116e07a -
Shared 1.27.0: openvibe-shared/express-async. Express 4 ignores what a handler returns, so a promise an async handler rejects (a database error, a thrown problem) became an unhandled rejection, and Node 22 ends the process on one; the move to PostgreSQL made most handlers async (nine services had 5-41 such routes, confirmed to exit). routeAsyncErrors(app) patches the app's own Express 4 Layer once so the rejection reaches next(err) and the service's error handler answers, as a synchronous throw always did; error handlers too; a no-op on Express 5. instrument() calls it, so every service is covered by a pin bump. npm test 40/40.OpenVibers · 28 Sept 2026
cded2bc -
Shared 1.26.0: async gauges. A gauge's collect() may return a promise (a database read, now that services are on PostgreSQL, ADR-035). The /metrics handler awaits every async collect together through the new registry.metricsAsync({ timeoutMs = 2000 }); one that rejects or runs past its budget is left out of that scrape, never reported stale, as a throwing one already was. The synchronous registry.metrics() is unchanged and leaves an async gauge out. The handler is an async function; its callers need no change. npm test 39/39.OpenVibers · 28 Sept 2026
49ce9d6 -
Shared 1.25.0: openvibe-shared/test-runner, no fake green in npm test (roadmap WS-Q task 7). Every service carried its own test/run.js, and each counted a test file that exited 0 as passed, including one that printed "…: skipped (no ffmpeg)" and checked nothing, so "150/150 test files passed" could hide skipped work. The runner is now one module, main({ dir, timeoutMs, pad, hide, env }) (run() returns the results): the copies' behaviour (each *.test.js in its own process, a few at a time, NODE_ENV=test, a timeout per file, name filters, the last 40 lines of a failure minus hide lines), plus skips: a test prints "<label>: skipped (<why>)" for what it could not run (the line OpenVibe.Host's acceptance runner already reads), and that file is listed with ○ and its reasons and not counted as passed; the summary reads "148/150 test files passed, 2 skipped (…)", and only a run with nothing skipped says N/N. Skips alone exit 0; --strict or OV_TEST_STRICT=1 makes them fail. Exported as ./test-runner; this package's test/run.js uses it; test/test-runner.test.js covers pass, skip, partial skip, failure, hidden lines, filters and strict. README and CHANGELOG describe it. npm test (Node 22) 39/39.OpenVibers · 28 Sept 2026
919c108 -
Shared 1.24.0: no fake green in readiness (roadmap WS-Q task 7). ready.js knew only ok and fail, so a check whose feature was not configured had to claim ok (Network's Discord bot, Media's events outbox and News's source pull did, as production's /api/ready shows) or fail and turn the service yellow for a setting. A check now returns skip(reason, detail?) (exported) or { skipped: reason }: it reports status skipped with the reason, never ok, and is listed in the body's new skipped array. A skipped optional check leaves a service whose other checks passed ready; a skipped required check is also degraded (yellow, still HTTP 200: nothing failed); and a service is ready only when at least one check really passed, so one with no checks or every check skipped is degraded (before: ready). test/ready.test.js covers each case; README and CHANGELOG describe it. npm test (Node 22) 38/38.OpenVibers · 28 Sept 2026
48b7443 -
README and STATUS.json are current (roadmap WS-U task 3): the Charter's bold labels are now sections (Purpose, Owns, Does not own, Depends on, Capabilities, Acceptance), updated to the code (one package by ADR 0001, the Frame, web runtime and server helpers; jsonwebtoken the only runtime dependency; contracts v0.61.0 for tests), and the README gains Security (SECURITY.md, browser bundles, egress, trace, analytics, loopback metrics, immutable tags) and Deploy (a tag Network serves at /shared/* and sites pin) sections. The status line names v1.23.1 instead of v1.4.0 with an untagged 1.5.0 and drops the stale per-consumer pin list and CI note. STATUS.json gains deployed false, contracts and features and is updated 2026-09-28.OpenVibers · 28 Sept 2026
b5a9bd7