Fix dagger call hanging in mise tasks on interactive terminals #256

Merged
eblume merged 1 commit from fix-dagger-tty-hang into main 2026-02-23 14:15:59 -08:00
Owner

Summary

  • Add --progress=plain to all dagger call invocations in mise tasks to prevent SIGTTOU hangs

Root cause

Mise runs task scripts in a child process group that is not the terminal's foreground group. When dagger call detects a TTY (inherited from the interactive shell), it tries to render its TUI progress display, which requires terminal ioctls. Since the process is not in the foreground group, the kernel sends SIGTTOU, stopping the process indefinitely.

This only manifests when running from an interactive terminal (e.g. pre-commit run --all-files in fish/wezterm). CI and piped contexts are unaffected since there's no TTY.

Changes

  • mise-tasks/validate-workflows — add --progress=plain
  • mise-tasks/frigate-export-model — add --progress=plain
  • mise-tasks/provision-ringtail — add --progress=plain

Test plan

  • pre-commit run --all-files completes without hanging
  • Verify in interactive fish/wezterm terminal

🤖 Generated with Claude Code

## Summary - Add `--progress=plain` to all `dagger call` invocations in mise tasks to prevent SIGTTOU hangs ## Root cause Mise runs task scripts in a child process group that is not the terminal's foreground group. When `dagger call` detects a TTY (inherited from the interactive shell), it tries to render its TUI progress display, which requires terminal ioctls. Since the process is not in the foreground group, the kernel sends SIGTTOU, stopping the process indefinitely. This only manifests when running from an interactive terminal (e.g. `pre-commit run --all-files` in fish/wezterm). CI and piped contexts are unaffected since there's no TTY. ## Changes - `mise-tasks/validate-workflows` — add `--progress=plain` - `mise-tasks/frigate-export-model` — add `--progress=plain` - `mise-tasks/provision-ringtail` — add `--progress=plain` ## Test plan - [x] `pre-commit run --all-files` completes without hanging - [ ] Verify in interactive fish/wezterm terminal 🤖 Generated with [Claude Code](https://claude.com/claude-code)
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 <noreply@anthropic.com>
eblume merged commit 260b7ca520 into main 2026-02-23 14:15:59 -08:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
eblume/blumeops!256
No description provided.