vinta-ai-workflows 0.7.0-alpha11 → 0.7.0-alpha12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/package.json +1 -1
- package/schemas/workflow.v1.schema.json +5 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,7 @@ the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
7
7
|
|
|
8
8
|
## [0.7.0] — YYYY-MM-DD
|
|
9
9
|
|
|
10
|
+
<!-- pre-release: 0.7.0-alpha12 on 2026-09-15 -->
|
|
10
11
|
<!-- pre-release: 0.7.0-alpha11 on 2026-09-15 -->
|
|
11
12
|
<!-- pre-release: 0.7.0-alpha10 on 2026-09-15 -->
|
|
12
13
|
<!-- pre-release: 0.7.0-alpha9 on 2026-09-14 -->
|
|
@@ -319,8 +320,44 @@ the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
319
320
|
`plan/{plan-id}/lane-{phase-id}` branches, merged `--no-ff` into the single plan
|
|
320
321
|
branch at each wave boundary, so the unit commits survive.
|
|
321
322
|
|
|
323
|
+
- **`project.prepare_cmd`, for the shared servers a run depends on.** A project
|
|
324
|
+
whose databases are `delivery: external` and whose services point at one Redis
|
|
325
|
+
has no long-lived containers of its own — the shape these fields recommend —
|
|
326
|
+
and that makes some *other* stack a hard dependency of every run. Nothing in
|
|
327
|
+
the package could bring it up. `setup_cmd` looks like the place and is not: it
|
|
328
|
+
runs per lane, long after the template database was created on a server that
|
|
329
|
+
had to be up for `createdb` to work at all.
|
|
330
|
+
|
|
331
|
+
It runs in the repository root **before anything else a run does** — before
|
|
332
|
+
the preflight, before the templates, before the first worktree — and again
|
|
333
|
+
before every lane recycle, so a server that dies mid-run is restored at the
|
|
334
|
+
next hand-off rather than failing every phase after it. Failure aborts with
|
|
335
|
+
the exit code and a bounded stderr tail, and says what the failure means
|
|
336
|
+
rather than only that a command exited. It must be idempotent, and `--wait`
|
|
337
|
+
is only as good as the `healthcheck` a service declares: without one, compose
|
|
338
|
+
returns as soon as the container starts and `createdb` races the server.
|
|
339
|
+
|
|
322
340
|
### Fixed
|
|
323
341
|
|
|
342
|
+
- **`doctor` checks that the shared servers answer.** It verified that binaries
|
|
343
|
+
existed and disk fitted, and never looked at a `server_url` — so a project
|
|
344
|
+
whose Postgres lives in another checkout's compose stack passed the preflight
|
|
345
|
+
with that stack down and died on the first `createdb`, before a worktree
|
|
346
|
+
existed. Each external database's server and each service URL is now probed
|
|
347
|
+
with a TCP connect, and a failure names the address that did not answer. A
|
|
348
|
+
compose-delivered database is deliberately not probed: the lane starts it.
|
|
349
|
+
|
|
350
|
+
The order matters as much as the check. `prepare_cmd` runs *before* the
|
|
351
|
+
preflight, so the check reports the world that hook just made rather than the
|
|
352
|
+
one in front of it.
|
|
353
|
+
|
|
354
|
+
- **A service's `create_cmd` runs with the lane's environment.** `reset_cmd`
|
|
355
|
+
always had it and `create_cmd` did not, so a `create_cmd` that reached for
|
|
356
|
+
`docker compose` ran against the lane's own compose file with no project name
|
|
357
|
+
and no override — booting a stack on the project's fixed host ports, which is
|
|
358
|
+
the collision the override exists to prevent, caused by the step that sets a
|
|
359
|
+
lane up.
|
|
360
|
+
|
|
324
361
|
- **`vinta-ai-maestro with` waits for the lock instead of giving up on it.** Its
|
|
325
362
|
usage said it blocked until the resource was granted, and it did — for about
|
|
326
363
|
five minutes, which is where Node's own `fetch` stops waiting for a response.
|
package/package.json
CHANGED
|
@@ -331,6 +331,11 @@
|
|
|
331
331
|
"additionalProperties": false,
|
|
332
332
|
"description": "How a lane’s compose stack is isolated past `COMPOSE_PROJECT_NAME`."
|
|
333
333
|
},
|
|
334
|
+
"prepare_cmd": {
|
|
335
|
+
"description": "Run in the repository root **before anything else a run does** — before the preflight, before the template databases, before the first worktree. Its job is to make the shared servers this project’s lanes connect to reachable: `docker compose up -d --wait db redis` for a stack in the root checkout, `brew services start postgresql` for a host install, nothing at all for a project whose lanes boot their own. `setup_cmd` cannot do this — it runs per lane, long after the template database has been created on a server that had to be up already. MUST be idempotent: it runs again before every lane recycle, which is what restores a server that died mid-run. Note that `--wait` only waits for services that declare a `healthcheck`; without one it returns as soon as the container is started, and `createdb` races the server.",
|
|
336
|
+
"type": "string",
|
|
337
|
+
"minLength": 1
|
|
338
|
+
},
|
|
334
339
|
"setup_cmd": {
|
|
335
340
|
"description": "The project’s own lane-setup command, run inside each freshly provisioned lane with that lane’s environment applied. The escape hatch for whatever a project needs that no field here describes. It MUST be idempotent: it runs again every time the lane is recycled for another phase.",
|
|
336
341
|
"type": "string",
|