LiveReleaseDeployedPayload live.release.deployed@1
Generated at from
openvibe-contracts v0.33.0 and
openvibe-sdk v0.5.0.
- Version
- 1.0.0
- Owner
- live
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Decision
- ADR-004
- Schema
https://openvibe.network/contracts/events/payloads/live.release.deployed.v1.json
live.release.deployed v1 (OpenVibe.Live server/events/release-events.js envelopeFor, called by server/chat/deploy-notice.js announce). The first boot that runs commits never announced before: queued in the transaction that records them as announced (site setting deploy_last_announced), so a restart without new code emits nothing and a crash before that commit announces again on the next boot with the same subject. A consumer keys on subject.id (the head commit) to fold repeats. The commit subjects are public already (Live chat and /updates); the consumer decides what is shown. Envelope: subject { type: release, id: <head commit, 40 hex> }, visibility internal, priority low, actor service:live.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
service | const | yes |
| |
release | string | yes | The head commit's short sha as git abbreviated it (its first 12 characters when the head is not in the list). |
|
commit | string | yes | The head commit (the envelope subject id). |
|
previous | string | null | yes | The head announced before this one; null on the first announcement. |
|
commit_count | integer | yes | How many new commits were found (git log previous..head, at most 40; only the head on a first run or after history was rewritten). |
|
commits | array of object | yes | The new commits, newest first. |
|
commits[].hash | string | yes |
| |
commits[].short | string | yes |
| |
commits[].subject | string | yes | The commit subject, cut to 200 characters. |
|
commits[].date | string | null | yes | Author date (git %aI, with the author's UTC offset). |
|
deployed_at | string | yes | When this boot announced it (UTC). |
|
notes_url | const | yes |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: first-announcement
{
"service": "live",
"release": "4c70332",
"commit": "4c703326b23d8bc16c857117707e0a5f96eb587c",
"previous": null,
"commit_count": 1,
"commits": [
{
"hash": "4c703326b23d8bc16c857117707e0a5f96eb587c",
"short": "4c70332",
"subject": "Channel links carry the @",
"date": "2026-09-23T14:12:56-07:00"
}
],
"deployed_at": "2026-09-23T21:20:05.114Z",
"notes_url": "https://openvibe.live/updates"
}Valid: two-commits
{
"service": "live",
"release": "4c70332",
"commit": "4c703326b23d8bc16c857117707e0a5f96eb587c",
"previous": "62261cae3b1f0d7c9e2a4b5d6f708192a3b4c5d6",
"commit_count": 2,
"commits": [
{
"hash": "4c703326b23d8bc16c857117707e0a5f96eb587c",
"short": "4c70332",
"subject": "Channel links carry the @",
"date": "2026-09-23T14:12:56-07:00"
},
{
"hash": "49fe04f1a2b3c4d5e6f708192a3b4c5d6e7f8091",
"short": "49fe04f",
"subject": "Chat settings also live in the OpenVibe.Network user module",
"date": "2026-09-23T13:40:02-07:00"
}
],
"deployed_at": "2026-09-23T21:20:05.114Z",
"notes_url": "https://openvibe.live/updates"
}Rejected: no-commits
{
"service": "live",
"release": "4c70332",
"commit": "4c703326b23d8bc16c857117707e0a5f96eb587c",
"previous": "62261cae3b1f0d7c9e2a4b5d6f708192a3b4c5d6",
"commit_count": 0,
"commits": [],
"deployed_at": "2026-09-23T21:20:05.114Z",
"notes_url": "https://openvibe.live/updates"
}Rejected: other-service
{
"service": "chat",
"release": "4c70332",
"commit": "4c703326b23d8bc16c857117707e0a5f96eb587c",
"previous": "62261cae3b1f0d7c9e2a4b5d6f708192a3b4c5d6",
"commit_count": 2,
"commits": [
{
"hash": "4c703326b23d8bc16c857117707e0a5f96eb587c",
"short": "4c70332",
"subject": "Channel links carry the @",
"date": "2026-09-23T14:12:56-07:00"
},
{
"hash": "49fe04f1a2b3c4d5e6f708192a3b4c5d6e7f8091",
"short": "49fe04f",
"subject": "Chat settings also live in the OpenVibe.Network user module",
"date": "2026-09-23T13:40:02-07:00"
}
],
"deployed_at": "2026-09-23T21:20:05.114Z",
"notes_url": "https://openvibe.live/updates"
}Rejected: short-head
{
"service": "live",
"release": "4c70332",
"commit": "4c70332",
"previous": "62261cae3b1f0d7c9e2a4b5d6f708192a3b4c5d6",
"commit_count": 2,
"commits": [
{
"hash": "4c703326b23d8bc16c857117707e0a5f96eb587c",
"short": "4c70332",
"subject": "Channel links carry the @",
"date": "2026-09-23T14:12:56-07:00"
},
{
"hash": "49fe04f1a2b3c4d5e6f708192a3b4c5d6e7f8091",
"short": "49fe04f",
"subject": "Chat settings also live in the OpenVibe.Network user module",
"date": "2026-09-23T13:40:02-07:00"
}
],
"deployed_at": "2026-09-23T21:20:05.114Z",
"notes_url": "https://openvibe.live/updates"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('live.release.deployed@1', value); // { valid, errors: [{ path, message }] }