Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions src/specify_cli/integrations/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -386,15 +386,22 @@ def dispatch_command(
cwd = str(project_root) if project_root else None

if stream:
# No timeout when streaming — the user sees live output and
# can Ctrl+C at any time. The timeout parameter is only
# applied in the captured (non-streaming) branch below.
# Stream output directly to the terminal so the user sees live
# progress. Apply the same timeout as the captured branch to
# prevent indefinite hangs if the child process stalls.
try:
result = subprocess.run(
exec_args,
text=True,
cwd=cwd,
timeout=timeout,
)
except subprocess.TimeoutExpired:
return {
"exit_code": 124,
"stdout": "",
"stderr": f"Command timed out after {timeout}s",
}
except KeyboardInterrupt:
return {
"exit_code": 130,
Expand Down