Commits
-
v0.34.0: CHANGELOG, README (147 schemas, 117 event payloads, 31 service manifests, 191 capabilities; realtime retired; the 29 listed events still without a payload contract; a Staff capability map section), STATUS.json date, version 0.34.0 in package.json and package-lock.json; the Deals manifest notes say OpenVibe.Network consumes deals.watch.matched (server/notifications/events-consumer.js), not that the consumer is unbuiltOpenVibers · 24 Sept 2026
449de0c6 -
v0.34.0: staff capability map (roadmap W1 D7, D05; ADR-022). New contract policy.staff-role-map@1 (owner network) and the map in force, manifests/policy/staff-roles.json: roles user < streamer < global_mod < admin < owner (owner is never a stored role: role admin plus the is_owner claim), 32 staff.<area>.<action> capabilities with the lowest role holding each (12 global_mod: console, moderation of chat, calls, channels, bans, IP lookups, logs, filter bypass, pastes and discussions, private-content view and content hide; 15 admin: site view and configure, users, non-admin roles, VPN queue, log purge, limit exemption, channel enforcement, ending and managing others' streams, hardware, bulk content tools, assets, AI, cosmetic grants; 5 owner: making admins, secrets, money freeze, cashouts, loyalty grants), each with the file:line gates it replaces in Live (210 role-check sites inventoried), Chat, Community, Network and Billing; channel and self powers that stay local (live.channel.owner|moderator, live.stream.owner, live.call.creator, community.content.author); the claims Network issues (role, is_owner, staff_caps); and the rules a capability alone does not express (rank and owner protection, no staff power in service/app/mod tokens or delegation, vouching only with the moderate capability, roles change only in Network, every action reported to the moderation log). contracts.staff (lib/staff.js): roles, effectiveRole, atLeast, capabilitiesOf, can (issued staff_caps win; family grants stay inside one area; no staff.* wildcard). Fixtures and tests: the map validates, higher roles hold everything below, user and streamer hold nothing, money/secrets/loyalty/admin-making are owner-only. Adoption in Network (claims), Live, Chat and Community comes laterOpenVibers · 24 Sept 2026
03b81aaf -
v0.34.0: capability catalog gaps from roadmap §30.2, 15 capabilities checked against each service's routes and production. Active (public reads production serves to anyone today): live.channel.read (/api/streams/channel/:username…, /api/auth/user/:username), live.stream.read (/api/streams, /:id, /recent, slot resolve, /api/live-events), live.discovery.read (/api/home/*, recently-online, recent-vods, content feed and moments), community.space.read, community.thread.read (API, pages, RSS), community.pulse.read, search.query.run (the public index query, suggest and document read, served at search.openvibe.network; service tokens keep search.query.delegate). Planned, each naming its routes and the id that guards them today: live.owner.resolve (no public route; the internal live.lineage.resolve answers lineage.resolution@1), media.upload.create (v2 single and multipart upload, guarded by media.object.upload), media.derivative.create (v2 jobs: split, remux, thumbnail), media.derivative.read (no route lists derivatives yet), media.lifecycle.read (guarded by media.object.read), media.lifecycle.transition (restore, holds, tier moves), community.space.manage (only the members-only gate exists), community.vote.set (value 0 removes, so no vote.remove; covered today by community.post.create and community.comment.write). New publishing library manifest (openvibe-publishing v0.2.1, ADR-019) registering no publishing.* capability: a package has no grant boundary, and the product capabilities (wiki.*, blog.*, news.*) already cover those routes. test/run.js checks statuses, owners, public GETs for the active reads, the planned ones naming their current guard, and publishing having no capabilitiesOpenVibers · 24 Sept 2026
c556985b -
v0.34.0: 51 event payload contracts, each read from its producer's emitter and all active (every one is emitted by code today): news 11 (source.ingested|failed, cluster.updated, story.created|flagged|published|updated|unpublished|retracted, index_document.upserted|deleted), reviews 9 (entity.merged|split, signal.added|removed, summary.published|updated|unpublished, index_document.*), coupons 8 (coupon.created|updated|expired|disabled, report.created, confidence.changed, index_document.*), deals 6 (offer.created|updated|expired, vote.changed, index_document.*), trade 5 (observation.created, source.stale|recovered, index_document.*), games 10 (player.joined|left, skill.leveled, blueprint.unlocked, world.saved, mod.installed|enabled|disabled|grants_changed|revoked) and media.object.deleted / media.object.visibility_changed (OpenVibe.Media 039dc48: trigger-staged, outbox in the changing transaction, identity and state only), which the media manifest now lists. News, Reviews and Deals payloads were checked against envelopes captured from their own code (185, 43 and the test suites); Trade against its one production outbox row. Valid and invalid fixtures for each (268 files). test/run.js: every news/reviews/coupons/deals/trade/games event has a contract owned by its producer, every *.index_document.upserted is a search.index-document@1 with its owner fixed and every .deleted a { type, id, revision } tombstone, Media's object events leak no title, owner, storage or size and never repeat a visibilityOpenVibers · 24 Sept 2026
f551ca67 -
v0.34.0: mods.mod-manifest@1 1.0.0 -> 1.1.0 (roadmap §28.3 m6, ADR-013 amendment): optional permissions.readGrants and writeGrants split module and Media namespace access into read-only and read-write ({ modules?, mediaNamespaces? }, same patterns as the older lists, which still mean read and write); optional billingHooks [{ kind entitlement|checkout, key, description? }] declare the entitlement checks and platform checkouts a mod uses, with keys in the entitlement-key form Search and VIP use and never a price; optional dependencies [{ id mod_…, version range, optional? }]. Every 1.0.0 manifest stays valid. Fixtures: a manifest with every new field; invalid empty grants, capabilities inside writeGrants, a price hook kind, a hook carrying an amount, a dependency that is not a mod id or has no range. test/run.js checks the fields are optional, the split uses the same namespace patterns, hook keys match acl.entitlements and ADR-013 names signing and review as open owner decisionsOpenVibers · 24 Sept 2026
2240b395 -
v0.34.0: realtime is retired, not a placeholder (ADR-005 closed it on 2026-09-22: browser realtime is the SSE delivery plane inside OpenVibe.Events). Its notes say the repository holds only the charter and the closure note, and how it could be reopened. test/run.js: a retired manifest offers no domain, capability, event, namespace, origin or health path, and realtime cites ADR-005OpenVibers · 24 Sept 2026
c7e05fc0 -
v0.34.0: ADR amendments dated 2026-09-24 (roadmap §28.3, W22): ADR-003 delegated authorization (who may name the acting person, intersection of app grants, approved scopes and the person's own rights, staff power and money never delegated, 5-minute unrefreshable tokens, audit names app and person) and the approval UX in force (PKCE, no prompt=none for apps, registered name and redirect host, narrow-only exchange) plus what Network still owes (capability list on the chooser, stored authorizations, connected apps with revoke); ADR-006 four placement classes (canonical, hot cache, asset origin, local scratch) mapped to today's providers, local as the first-class dev provider, infrequent-access tier deferred with the measured 2,839 objects / 481 GB; ADR-007 PgBouncer transaction pooling, read replicas only for lag-tolerant reads, SERIALIZABLE plus ordered row locks and 40001 retries on money paths, Redis never authoritative; ADR-012 roadmap ledger names mapped to Billing types and legs (platform fee, creator earning, payout hold/release, reversals), OpenCoins stays in Network (supersedes W8 "OpenCoins wallet becomes a Billing client"), payouts/refunds/plans substituted by cashouts, reversal transactions and VIP plans; ADR-013 package signing and review named open owner decisions, mod monetization only through Billing and VIP primitives, manifest 1.1.0 fields; ADR-021 extraction decided from measured volume (Live 1.78M raw events / 30 days, 58k a day, 502 MB): no analytics service, analytics stays per service through openvibe-shared/analytics, the schema stays in Shared, revisit triggers; ADR-022 Wave 12 revisit: the decision stands, next trigger namedOpenVibers · 24 Sept 2026
1534e51d -
gitleaks config: default rules plus one allowlist entry, the sample Idempotency-Key in the chained-job-file tools.run-request fixture (generic-api-key took it for a key; CI's secrets job has been red since v0.33.0)OpenVibers · 24 Sept 2026
93dec450 -
v0.33.1: CHANGELOG, README, ADR-027 status (tools.tool.read active; the run API still planned) and version 0.33.1OpenVibers · 23 Sept 2026
238c0ea2 -
v0.33.1: tools.tool.read is active (Tools serves GET /api/v1/tools[/:id[/schema]] on the gateway and every satellite; tools.tool.run and tools.net.probe stay planned); tools.tool@1 1.1.0 adds optional keywords (what ?q= matches) and examples ({ title?, input, files? }), which contracts.tools.checkDescriptor checks against an embedded input schema, limits.maxInputBytes and files; a tool without an API has no examples; the descriptions say output.schema describes result.data for job tools too, $defs.input is false when api is false, and there is no planned status (planned and mirror ids are 404 tools.tool.not_found); Tools problem codes listed with their routes: 400 tools.query.invalid, 404 tools.tool.not_found, 413 tools.pdf.too_many_pages, 422 tools.pdf.wrong_password, 503 tools.unavailable, and with Retry-After 429 tools.quota.exceeded and 503 tools.busy; tools manifest 0.4.1; tools.tool and tools.tool-list fixtures are checked with checkDescriptor and checkListOpenVibers · 23 Sept 2026
61ebc731 -
v0.33.0: ADR-027 Tools platform API; CHANGELOG, README and version 0.33.0OpenVibers · 23 Sept 2026
18175b1a -
v0.33.0: Tools platform API contracts: tools.tool@1 descriptor, tools.tool-list@1, tools.run-request@1, tools.run@1, tools.job@1, tools.job-request@1; capabilities tools.tool.read|run and tools.net.probe; tools.job.* routes and schemas; tools manifest 0.4.0OpenVibers · 23 Sept 2026
7e0964c0 -
v0.32.0: media.job.*@1 payloads are an event projection of the job, not the jobs API answer: id, app_id, object_id, type, status, attempts, max_attempts, error_code, cancel_requested, has_result and ISO 8601 UTC times (run_after, decided_at, created_at, updated_at, started_at, finished_at)OpenVibers · 23 Sept 2026
e67de9d6 -
v0.32.0: payload contracts for tips.interaction.moderated|erased, media.job.*, live.stream.started|ended, live.release.deployed and network.module.updated; capability tips.interaction.moderate; chat.preferences owned by chat; Host takedown and Wiki import/review routesOpenVibers · 23 Sept 2026
ccfecb7d -
v0.32.0: lineage.resolve-request@1 and lineage.resolution@1, the canonical channel/owner resolver (roadmap §15.10, D20); capability live.lineage.resolveOpenVibers · 23 Sept 2026
70fd5a04 -
v0.31.0: registry.release-manifest 1.1.0 (ADR-016, Track R): optional components, assets, schema_generation, schema_compatible_from, contract_ranges and metrics_urlOpenVibers · 23 Sept 2026
3a2f68c4 -
v0.30.2: live.follower.read; chat.message.send owned by chat; Live and Media declare their eventsOpenVibers · 23 Sept 2026
6874873f -
CI: run the shared security workflow (gitleaks secret scan + dependency audit, Track Q)OpenVibers · 23 Sept 2026
7b2fc0e7 -
v0.30.1: cashout events carry the payout method's type only, never its addressOpenVibers · 23 Sept 2026
ddaed687 -
v0.30.0: event payload contracts and producer redaction (ADR-026)OpenVibers · 23 Sept 2026
face7e96 -
Docs: STATUS.json and README match production (2026-09-23)OpenVibers · 23 Sept 2026
dda505a6 -
Event delivery signatures: document v2 (X-OpenVibe-Timestamp, X-OpenVibe-Signature-V2 = HMAC of "<t>.<raw body>"), the ±300 s replay window, no v1 fallback when v2 is present, and the rollout (Events sends both, consumers move to openvibe-sdk 0.4.0 then set requireV2, v1 dropped last); ADR-004 note. Docs only, no version changeOpenVibers · 23 Sept 2026
02575700 -
ADR-015: OpenVibe.AI owns workflows, runs, providers and quotas; products own publication and human reviewOpenVibers · 23 Sept 2026
44c56e8c -
v0.29.0: OpenVibe.AI is alpha — ai.run.create, ai.run.read, ai.workflow.manage, ai.provider.manage, ai.usage.readOpenVibers · 23 Sept 2026
d8b43bc0 -
README: v0.27.0 and v0.28.0 name the same content (tagging note)OpenVibers · 23 Sept 2026
16d231b4 -
v0.27.0: OpenVibe.Codes is alpha — codes.app-manifest@1, codes.release.manage|readOpenVibers · 23 Sept 2026
742db689 -
v0.28.0: developer-app events (ADR-014) — public capabilities events.app.publish, events.app.read, events.app.subscribe (project-scoped; app.<project_key>.* types, source app-<lowercased ULID>, envelope unchanged); Events manifest 0.2.0OpenVibers · 23 Sept 2026
b31c8fa7 -
v0.26.0: developer projects (ADR-014) — app token claims project_id/env/on_behalf_of (identity.service-token-claims 1.2.0), sandbox tokens refused unless acceptSandbox, prj id prefix, partner capability visibility, network.project.read|manage (planned), Network eventsProducedOpenVibers · 23 Sept 2026
fba77042 -
v0.25.0: OpenVibe.Coupons is alpha (coupons.* capabilities)OpenVibers · 23 Sept 2026
1818bfbd -
v0.24.0: OpenVibe.Host Stage B (host.site.manage, host.deploy.create, host.domain.manage)OpenVibers · 23 Sept 2026
f41f2a90