openvibers/openvibe.report CHANGELOG.md

CHANGELOG.md

main 3.0 KB · 34 lines · markdown

1# Changelog
2
3What changed in OpenVibe.Report, newest first. Each site also publishes its patch notes at /updates on
4openvibe.network.
5
6## Unreleased
7
8- **The AI section (2026-11-08): OpenVibe.Bench's pages moved here.** `/ai` is the overview: every published benchmark with its leader, runs and last run, every task kind with quality, price and speed, and a fold for the jobs still waiting. `/ai/<benchmark>` has verified rankings, score against cost in SVG and the latest runs; `/ai/<kind>` keeps the Elo/Pareto/cost boards and adds the verified runs on the kind's benchmarks. `/ai/models/<model>` has runs over time, best and worst tasks, cost and recent runs; `/ai/compare` puts two or three models side by side; `/ai/method` says how a score is made and how runs are judged. `/ai/feed.xml` and `GET /api/v1/ai/results` publish new runs. Every number is Bench's, read through its public API with its 60-second cache and last-good copy; Bench's old HTML pages 301 here.
9## 0.1.0 — 2026-10-28
10
11The service skeleton: a stateless front for the network's open numbers, The Rundown and every stream's after-show
12report.
13
14- **Two read clients** (`server/data/network.js`, `server/data/live.js`): OpenVibe.Network's open stats and
15 OpenVibe.Live's Rundown and recap APIs, with injectable fetch, 8 s timeouts, an in-memory cache (1000 entries,
16 oldest out; 2 to 10 minutes per answer) and one short log line on failure. A failure is null, never a throw.
17 Slugs, stream ids and usernames are validated before a source request; a bad parameter is a 404 without one.
18- **Pages** (`server/http/pages.js`, `server/views/index.js`): `/`, `/stats`, `/rundown`, `/rundown/t/:slug`,
19 `/rundown/e/:streamId`, `/rundown/s/:username`, `/after-show/:streamId` and `/c/:username`. The views are plain
20 placeholders with every dynamic value escaped; the main session designs the real pages. A missing source answer
21 is the 404 view.
22- **JSON API** (`server/http/api.js`): `/api/v1/stats`, `/api/v1/rundown`, `/api/v1/rundown/topics`,
23 `/api/v1/rundown/t/:slug`, `/api/v1/after-show/:streamId` and `/api/v1/c/:username` answer the source's document
24 as it came, CORS-open and public for two minutes; 120 requests a minute per address; problem+json 404s.
25- **Plumbing**: helmet with the same CSP as OpenVibe.Help, `/api/health`, `/api/ready` (Network and Live are
26 optional, so a dead source is degraded and still 200), `/release.json`, `/release-metrics`, `/metrics` on
27 loopback, `/shared/*`, `/css` and `/js` (immutable only with the matching `?v=`), `robots.txt`, `sitemap.xml`
28 (the home, `/stats`, `/rundown` and every topic), `llms.txt`, and the SDK's graceful stop.
29- **Deploy**: `deploy/systemd/openvibe-report.service` on 127.0.0.1:5080 and
30 `deploy/nginx/openvibe.report.conf` (www → apex, Let's Encrypt certs, GET-only `/api/`), plus `STATUS.json`,
31 `.env.example` and the shared CI workflow.
32- **Tests** (`test/`): the clients' cache, expiry, failure and parameter rules; every page and its 404s; the API
33 shapes, CORS, cache and rate limit; robots/sitemap/llms; health, readiness and the static cache.
34