CodesTaskSummary codes.task-summary@1

Generated at from openvibe-contracts v0.419.0 and openvibe-sdk v0.161.0.

Version
1.0.0
Owner
codes
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/codes/task-summary.v1.json

codes.task-summary@1: a coding task on OpenVibe.Codes as the Dock's Code tab lists it (GET /api/v1/me/tasks, newest and running first). STATUS is the task in the Dock's words: queued (waiting for one of the person's machines), running, needs-you (it waits on the person: an approval in its inbox), done, failed or stopped. MODE is where the request started: create (built on openvibe.space, no Codes task), openvibe (one of OpenVibe's own projects) or repo (the person's own repository). STEPS counts the attempts the task has run. URL is the task's page on openvibe.codes; PREVIEW_URL is its live preview when one exists (a Space build), else null; PR_URL is the pull request it opened, else null.

Fields

FieldTypeRequiredDescriptionConstraints
idstringyesThe Codes task id (tsk_ + ULID).
  • pattern ^tsk_[0-9A-HJKMNP-TV-Z]{26}$
titlestringyesThe task's first line: what was asked, in the person's own words.
  • minLength 1
  • maxLength 200
statusenumyesThe task in the Dock's words.
  • one of "queued", "running", "needs-you", "done", "failed", "stopped"
modeenumyesWhere the request started.
  • one of "create", "openvibe", "repo"
repostringyesThe repository the task works on.
  • maxLength 300
started_atstringyes
  • format date-time
updated_atstringyes
  • format date-time
stepsintegeryesHow many attempts the task has run.
  • minimum 0
urlstringyesThe task's page on openvibe.codes.
  • pattern ^https://
  • format uri
preview_urlstring | nullyesIts live preview when one exists, else null.
  • format uri
pr_urlstring | nullyesThe pull request it opened, else null.
  • format uri

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: needs-you
{
  "id": "tsk_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3",
  "title": "Make the home page faster on phones",
  "status": "needs-you",
  "mode": "openvibe",
  "repo": "https://github.com/OpenVibers/OpenVibe.Live",
  "started_at": "2026-11-10T09:00:00.000Z",
  "updated_at": "2026-11-10T09:30:00.000Z",
  "steps": 1,
  "url": "https://openvibe.codes/tasks/tsk_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3",
  "preview_url": null,
  "pr_url": "https://github.com/OpenVibers/OpenVibe.Live/pull/654"
}
Valid: running
{
  "id": "tsk_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3",
  "title": "Add a test for the date parser",
  "status": "running",
  "mode": "repo",
  "repo": "https://github.com/OpenVibers/OpenVibe.Codes",
  "started_at": "2026-11-10T10:00:00.000Z",
  "updated_at": "2026-11-10T10:04:00.000Z",
  "steps": 2,
  "url": "https://openvibe.codes/tasks/tsk_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3",
  "preview_url": null,
  "pr_url": null
}
Rejected: bad-status
{
  "id": "tsk_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3",
  "title": "Add a test for the date parser",
  "status": "flying",
  "mode": "repo",
  "repo": "https://github.com/OpenVibers/OpenVibe.Codes",
  "started_at": "2026-11-10T10:00:00.000Z",
  "updated_at": "2026-11-10T10:04:00.000Z",
  "steps": 2,
  "url": "https://openvibe.codes/tasks/tsk_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3",
  "preview_url": null,
  "pr_url": null
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('codes.task-summary@1', value);   // { valid, errors: [{ path, message }] }