Skip to content

Infinite Redraw Loop in Interactive Mode on macOS (All Terminals) #615

@bierlingm

Description

@bierlingm

Title: Infinite Redraw Loop in Interactive Mode on macOS (All Terminals)

Environment

  • Droid Version: 0.55.1 (freshly installed from https://app.factory.ai/cli)
  • OS: macOS 26.3 (build 25D5101c)
  • Architecture: arm64 (Apple Silicon)
  • Terminals Affected: WezTerm 20240203-110809-5046fc22, Ghostty, iTerm2
  • Shell: zsh

Description

Running droid without arguments (interactive mode) triggers an infinite redraw loop across all tested terminal emulators. The TUI repeatedly clears and redraws the same screen indefinitely, making interactive mode unusable.

Symptoms

  • droid command launches and displays the welcome screen once
  • Immediately enters an infinite loop, redrawing the same UI repeatedly
  • The screen flickers with escape sequences: [2J[3J[H (clear screen) repeated
  • Happens in WezTerm, Ghostty, and iTerm2 (not terminal-specific)
  • Workaround exists: droid exec "prompt" works perfectly (non-interactive mode)

Steps to Reproduce

  1. Fresh install: curl -fsSL https://app.factory.ai/cli | sh
  2. Open any terminal (tested: WezTerm, Ghostty, iTerm2)
  3. Run: droid
  4. Observe infinite screen redraw loop

Expected Behavior

Interactive prompt should display and wait for user input, allowing normal CLI interaction.

Actual Behavior

Screen clears and redraws endlessly. Process consumes CPU but cannot accept input.

Related Error (from background execution)

ERROR Raw mode is not supported on the current process.stdin, which Ink uses
       as input stream by default.
       Read about how to prevent this error on
       https://github.com/vadimdemedes/ink/#israwmodesupported

This suggests an Ink (React TUI framework) compatibility issue with the terminal/OS combination.

Workaround

Use non-interactive mode:

droid exec "your prompt here"

Additional Notes

  • Fresh binary reinstall doesn't resolve the issue (v0.55.1 is the only version available)
  • Not a configuration issue (same behavior across multiple terminal emulators)
  • Not environment-specific (happens with clean shell profile)
  • Binary dependencies are available and correct (otool -L shows no missing dylibs)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions