Document the dashboard, the artifacts command and what moved with them

Covers this round of CLI work: the serve dashboard and its keys, the refusal
to start a second engine for one installation, --plain, --gpus and the
declared-not-detected card count, `fluksio artifacts`, the age column,
`fluksio.logger` inside a node, the server extra, per-directory study module
names, and an export whose columns no longer move with the selection.
This commit is contained in:
2026-08-29 14:24:24 +02:00
parent 9a39a9aa33
commit 65b9bb8f84
4 changed files with 122 additions and 24 deletions
+15
View File
@@ -249,6 +249,11 @@ stops your own code from running.
- **The declaration is checked against the function.** A port with no matching
parameter, or a parameter that is neither port nor setting, is an error when
the module is imported — not when the node is first called.
- **The decorator hands the function back untouched.** `fit(dataset, lr=0.05)`
is an ordinary call, and the module is an ordinary script — so a
`if __name__ == "__main__":` check beside the nodes runs. Syncing one
defined in a script *run as* `__main__` is what cannot work, since the
generated body would have no name to import it by.
!!! note "Where a `yield` cannot reach"
@@ -294,6 +299,16 @@ nothing else is given that card while it runs.
string whose contents depend on the version you have installed, so writing it
for you would silently replace whatever you had put there.
The engine has to be told how many cards it has — `fluksio serve --gpus 1`, or
`FLOW_GPUS` — because detecting them would mean depending on a vendor's
tooling. Until it is, a node asking for one is quietly given zero and runs
alongside every other; the log says so the first time it happens.
Workers are kept warm on purpose, so a library that takes most of the card at
import would hold it after the run finished. The workers that ran on a card
are retired when the run ends, which gives the memory back; what it costs is
the next GPU run paying for its imports again.
Declaring nothing is the default and is right for most nodes — a poll, a
threshold, a message on its way somewhere. Those share the engine's worker pool
and are given a fair share of `FLOW_CPUS` as a thread cap, which is what stops