openvibers/openvibe.watch Commits

README: a webhook action can post into an OpenVibe.Chat workspace room through the room's hook (#96)

OP OpenVibers committed 19 days ago · 7d13b8f3d2 · 1 file, +5 −0

Changes

ddiff --git a/README.md b/README.md
iindex 00437f0..f0659f1 100644
---- a/README.md
++++ b/README.md
@@@ -256,6 +256,11 @@ A fired condition queues the watch's actions in the same transaction as the chec
| `run-job` | one OpenVibe.Run job for the owner in the watch's project ([server/run-jobs.js](server/run-jobs.js)): the action's `run.job-create-request@1` fields (`class`, `artifact`, `args`, `limits`, `egress`, `ttl_ms`), with the firing (watch, check run, value, previous value, time) under `args[firing_arg]` when the action names one. Watch submits as itself with the owner in `X-OV-Subject` and the project in `X-OV-Project` (project delegation, ADR-003 amendment 2026-10-12): Run bills the project, checks the owner is still an admin or owner of it, makes the owner the requester and records Watch as `via`. Key `watch.<check run>.<action index>`, so a retry is the same job. Created is `sent` with the job id; Run's final refusals (400, 403, 404, 409, 413, 422) are `failed` at once; anything else retries on the backoff. `WATCH_RUN_URL` is Run's internal address (default `http://127.0.0.1:4920`). |
| `codes-run` | a coding task on OpenVibe.Codes for the owner, run on the owner's own machine ([server/codes-tasks.js](server/codes-tasks.js), Contracts 0.162 `codes.task.start`): the action's `brief` with the firing as context (at most 8000 characters), in the `repo` it names. Watch starts it as itself with the owner in `X-OV-Subject`; Codes runs it in the project of the owner's latest openvibe.codes/run task and lists it on their /run page. Key `watch.<check run>.<action index>`, so a retry is the same task. Created is `sent` with the task's page; a refusal a retry cannot change (400, 403, 404, 409 — `codes.no_project` when the owner has never started a task on /run — 413, 422) is `failed` at once; anything else retries on the backoff. A person must own the watch: otherwise `skipped`. The create and edit forms offer it ("Start a coding task on my own machine"). `WATCH_CODES_URL` is Codes' internal address (default `http://127.0.0.1:4900`). |
++**Into a team room.** An OpenVibe.Chat workspace room's hook (room settings → "Alerts into this room") takes a
++`webhook` action as it is: its address is the action's `url`, and its `whsec_` secret, saved as a project secret granted
++to `watch`, is the action's `secret_ref`. Each firing then arrives in the room as a message from Vibe, with the watch's
++link, and can queue a task for the hook's maker.
++
A watch with a `run-job` action names a **project** (`project_id` on `watch.watch-request@1`, required for it:
`422 watch.project_required`). Only a person names one, and only a project OpenVibe.Network says they are an admin or
owner of and that is not archived (`GET /internal/projects/:project/members/:subject`, `network.project.member.read`),