Skip to content

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

Merged
Jaro-c merged 1 commit into
developfrom
fix/issue-1347-close-orphaned-board-rows
Aug 7, 2026
Merged

fix(cli): close live board rows on every exit path (#1347)#1350
Jaro-c merged 1 commit into
developfrom
fix/issue-1347-close-orphaned-board-rows

Conversation

@Jaro-c

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

Copy link
Copy Markdown
Member

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

@Jaro-c Jaro-c added area:cli Subsystem: cli prio:P2 Medium priority type:bug A defect to fix effort:M Medium labels Aug 7, 2026
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 force-pushed the fix/issue-1347-close-orphaned-board-rows branch from 9aff2e8 to df9fc56 Compare August 7, 2026 01:16
@Jaro-c
Jaro-c merged commit be4a393 into develop Aug 7, 2026
17 checks passed
@Jaro-c
Jaro-c deleted the fix/issue-1347-close-orphaned-board-rows branch August 7, 2026 01:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:cli Subsystem: cli effort:M Medium prio:P2 Medium priority type:bug A defect to fix

Development

Successfully merging this pull request may close these issues.

1 participant