feat: live progress indicator for the evsieve build - #123
Merged
Conversation
…ait) The evsieve install builds in a distrobox with all output sent to /dev/null, so the multi-minute `cargo build --release` looks hung with zero feedback. - utilities.sh: new run_with_spinner(label, cmd...) — animates an elapsed-time spinner on stderr while a long quiet command runs; on a non-TTY (piped/CI install) it prints one start line and runs inline so logs stay clean. Returns the command's own exit status (fail-open handling in install_evsieve unchanged). - evsieve_management.sh: wrap the box-create and cargo-build steps with it. - tests/test_utilities.sh (6/6) — exit-status + stdout passthrough, label never leaks to stdout (non-TTY path, deterministic); CI baseline +6. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Hm7DmagTa2EttH8aHxGji2
…TTIN stop A backgrounded command that reads the controlling TTY gets SIGTTIN-stopped (T state) and wedges — the failure the evsieve build hit on a hidden sudo prompt. NOT yet validated through a real install (per the hardware+real-process rule); PR held as draft until then. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Hm7DmagTa2EttH8aHxGji2
aradanmn
marked this pull request as draft
July 21, 2026 23:50
Root cause: _evsieve_ensure_box returned right after `distrobox create` without entering the box, so the container's first-run init — which configures the box user's passwordless (NOPASSWD) sudo — had not run when _evsieve_build_in_box issued its first `sudo apt-get`. sudo then prompted for a password; stdin was still on the TTY, so the backgrounded podman/distrobox session was SIGTTIN-stopped (T state) and the whole install wedged until the 15-min build timeout. - ensure_box: always `distrobox enter -- true </dev/null` after create (both the fresh-create and the heal paths) so the box is initialized before the build. - build_in_box: `sudo -n` (fail fast, fail-open, never prompt) and detach stdin `< /dev/null` so a prompt can never SIGTTIN-stop the build. NOT yet validated through a real install (per the hardware+real-process rule) — that's next on the Deck. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Hm7DmagTa2EttH8aHxGji2
…s a dep) evsieve_management.sh now wraps its box-create/build steps with run_with_spinner (utilities.sh); the runtime sources utilities.sh first, but this suite doesn't, so T11 hit 'run_with_spinner: command not found'. Transparent stub restores 11/11. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Hm7DmagTa2EttH8aHxGji2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The evsieve build runs
cargo build --releasein a distrobox with output to /dev/null — the multi-minute build looks hung. Addsrun_with_spinner(utilities.sh): animated elapsed-time spinner on a TTY, one-line inline on a pipe; returns the command's exit status. Wraps the box-create + cargo-build steps. Tests 6/6; CI baseline +6.🤖 Generated with Claude Code
https://claude.ai/code/session_01Hm7DmagTa2EttH8aHxGji2