From 332f8d90691452154b20059d0c877970cf6b4425 Mon Sep 17 00:00:00 2001 From: Erich Blume Date: Mon, 23 Feb 2026 14:14:49 -0800 Subject: [PATCH] Fix dagger call hanging in mise tasks on interactive terminals Mise runs task scripts in a child process group that is not the terminal's foreground group. When dagger detects a TTY it tries to render its TUI, triggering SIGTTOU which stops the process. Adding --progress=plain to all dagger call sites avoids terminal ioctls. Co-Authored-By: Claude Opus 4.6 --- docs/changelog.d/fix-dagger-tty-hang.bugfix.md | 1 + mise-tasks/frigate-export-model | 2 +- mise-tasks/provision-ringtail | 2 +- mise-tasks/validate-workflows | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 docs/changelog.d/fix-dagger-tty-hang.bugfix.md diff --git a/docs/changelog.d/fix-dagger-tty-hang.bugfix.md b/docs/changelog.d/fix-dagger-tty-hang.bugfix.md new file mode 100644 index 0000000..9643210 --- /dev/null +++ b/docs/changelog.d/fix-dagger-tty-hang.bugfix.md @@ -0,0 +1 @@ +Fix Dagger pipelines hanging when called from mise tasks in interactive terminals. Added `--progress=plain` to all `dagger call` invocations to prevent SIGTTOU from stopping the process when mise's child process group is not the terminal foreground group. diff --git a/mise-tasks/frigate-export-model b/mise-tasks/frigate-export-model index f1cf828..09ad131 100755 --- a/mise-tasks/frigate-export-model +++ b/mise-tasks/frigate-export-model @@ -14,7 +14,7 @@ OUTPUT_FILE="yolov9-${MODEL_SIZE}-${INPUT_SIZE}.onnx" echo "Exporting YOLOv9-${MODEL_SIZE} (${INPUT_SIZE}x${INPUT_SIZE}) via Dagger..." echo "" -dagger call export-yolov-9 \ +dagger call --progress=plain export-yolov-9 \ --model-size="$MODEL_SIZE" \ --input-size="$INPUT_SIZE" \ export --path="$OUTPUT_FILE" diff --git a/mise-tasks/provision-ringtail b/mise-tasks/provision-ringtail index 81d55fd..7f35229 100755 --- a/mise-tasks/provision-ringtail +++ b/mise-tasks/provision-ringtail @@ -7,7 +7,7 @@ export MISE_TASK_OUTPUT=interleave # Update flake.lock via Dagger before deploying echo "Updating nixos/ringtail/flake.lock..." -dagger call flake-lock --src=. --flake-path=nixos/ringtail \ +dagger call --progress=plain flake-lock --src=. --flake-path=nixos/ringtail \ export --path=nixos/ringtail/flake.lock if ! git diff --quiet nixos/ringtail/flake.lock; then diff --git a/mise-tasks/validate-workflows b/mise-tasks/validate-workflows index e541870..0ab2c5d 100755 --- a/mise-tasks/validate-workflows +++ b/mise-tasks/validate-workflows @@ -3,4 +3,4 @@ set -euo pipefail -dagger call validate-workflows --src=. +dagger call --progress=plain validate-workflows --src=.