feat(progress): report uncounted status through the sink

A run blocked on the cache-entry flock was silent: the wait went to
the log sink, which renders nowhere by default, so the CLI read as
a hang. The Progress trait gains message() - a status line outside
the counted-operation protocol, defaulting to a no-op so existing
sinks keep compiling - and the flock wait reports what it is
waiting for. The CLI renders messages on the active bar and spins
one up when no operation is active.
This commit is contained in:
vhaudiquet committed 2026-10-30 01:04:20 +01:00
1 parent 89a1028d46
commit c2e8d82cd3
5 files changed
+42 -7

No files matched your search

+3 -2
View File
@@ -18,8 +18,9 @@ propagates exit codes. The split is enforced by the dependency edges:
the library links no clap and no rendering crate. It never writes to
the terminal: diagnostics go through the `log` facade, filtered by
`RunOptions::log_level` (an engine-owned enum, not UI booleans), long
operations report through the `Progress` sink, all output is the
CLI's. In-process failures come back as typed errors; the one
operations report through the `Progress` sink (sequential
`begin`/`advance`/`finish` operations plus uncounted `message`
status lines), all output is the CLI's. In-process failures come back as typed errors; the one
exception is the forked machine child's last-gasp diagnostics, which
land in the console file the parent streams. The CLI owns clap, the
indicatif rendering of progress events, the log sink, and exit codes.