Skip to content

fix(cli): close live board rows on every exit path (#1347) - #1349

Closed
Jaro-c wants to merge 1 commit into
mainfrom
fix/issue-1347-close-orphaned-board-rows
Closed

fix(cli): close live board rows on every exit path (#1347)#1349
Jaro-c wants to merge 1 commit into
mainfrom
fix/issue-1347-close-orphaned-board-rows

Conversation

@Jaro-c

@Jaro-c Jaro-c commented Aug 7, 2026

Copy link
Copy Markdown
Member

Re-opened to retrigger CI workflows that were stuck in runner queue.

Original PR: #1348
Branch: fix/issue-1347-close-orphaned-board-rows
Signed-off-by: Jaro-c 75870284+Jaro-c@users.noreply.github.com

Six call sites across `up` and `down` opened a board row with
`progress::start` and never closed it on a code path that returned or
fell through, so the row stayed on the working spinner forever even
though the operation was over. The plain sink emitted nothing and the
live board painted a frozen `Creating`/`Removing`/`Pulling` spinner.

The container-create side of `up` already does this right — it closes
with `"Exists"`, `"Running"` or `"Created"` before returning. The
six sites missing the close are:

| Command | File                  | Verb before | Verb after  |
|---------|-----------------------|-------------|-------------|
| up      | network/mod.rs        | (stuck)     | "Exists"   |
| up      | volume/mod.rs         | (stuck)     | "Exists"   |
| up      | build/pull.rs         | (stuck)     | "Failed"   |
| down    | lifecycle/mod.rs      | (stuck)     | "Absent" / "Failed" |
| down    | lifecycle/mod.rs      | (stuck)     | "Absent" / "Failed" |
| down    | lifecycle/parallel.rs | (stuck)     | "Absent" / "Failed" |

Closing with an honest verb makes the failure arms in `down` visible:
the genuine removal failure used to print as a tracing::warn and exit
with the error, but the board kept painting `Removing` with a spinner,
hiding which resource failed.

The verb-banding now paints "Failed" red instead of green, and the
row marker carries a red ✘ for verb = "Failed" (case-insensitive,
failsafe to ✘ so a future caller using "failed" or "Failing" does
not silently regress to the green ✔ of a successful row).

The per-site fix is what the issue calls out; the structural fix
(a guard returned by `start()` that force-closes on drop) is a
separate concern worth its own issue — leaving the per-site pattern
unchanged matches the existing `Exists`/`Running` precedent and
fixes every observable from the bug report.

Signed-off-by: Jaro-c <75870284+Jaro-c@users.noreply.github.com>
@Jaro-c Jaro-c closed this Aug 7, 2026
Jaro-c added a commit that referenced this pull request Aug 7, 2026
Closes #1347

Targets develop per repo policy. Original PRs: #1348, #1349 (closed,
both targeted main).

Branch: fix/issue-1347-close-orphaned-board-rows
Signed-off-by: Jaro-c <75870284+Jaro-c@users.noreply.github.com>

Signed-off-by: Jaro-c <75870284+Jaro-c@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant