Refuse a zero concurrency limit instead of reading it as the default

FLOW_MAX_WORKERS, FLOW_MAX_CASCADES and FLOW_MAX_RUNS are all pool sizes,
so 0 says neither "none" nor "unlimited" — it is a pool that cannot be
built. They are PositiveInt now, so a 0 fails at startup naming the
setting rather than being swallowed by `max_cascades or MAX_CASCADES`.
The consuming fallbacks take only None as "nobody said": explicit
`is None` in the executor, and no clamp on RunService.parallel.
This commit is contained in:
2026-08-28 20:00:08 +02:00
parent b5ce0ae1c3
commit 7ac61d2f4e
4 changed files with 22 additions and 7 deletions
+3 -1
View File
@@ -135,7 +135,9 @@ warning into a refusal to start.
The three concurrency limits are also flags on `fluksio serve` — `--max-workers`,
`--max-cascades`, `--max-runs` — which outrank the file, and the engine says
which numbers it started with in its first lines.
which numbers it started with in its first lines. Each is a pool size, so each
must be at least 1: a `0` is refused at startup by name rather than read as the
default. Leave one empty (or unset) to get the default.
An artifact is referred to by a run that recorded it or by a message currently
holding it; anything else is what a camera published four hours ago, and the