Skip to content

Commit 4c99e27

Browse files
committed
fix(devin): always return exec args; document plain-text stdout
Addresses third Copilot review comment on PR #2364. Returning None from build_exec_args() when output_json=True incorrectly used the codebase's IDE-only sentinel: workflow CommandStep checks 'impl.build_exec_args("test") is None' to detect non-dispatchable integrations (test_workflows.py exercises this with WindsurfIntegration). The previous implementation made Devin appear non-dispatchable to all command steps even though it runs fine via 'devin -p'. Always return the args list. When output_json is requested, Devin is still dispatched and returns plain-text stdout instead of structured JSON; the docstring documents this explicitly.
1 parent 0b64174 commit 4c99e27

1 file changed

Lines changed: 4 additions & 7 deletions

File tree

src/specify_cli/integrations/devin/__init__.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,11 @@ def build_exec_args(
4343
4444
Devin supports ``devin -p <prompt>`` for single-turn execution
4545
and ``--model`` for model selection, but its CLI has no flag
46-
for structured JSON output. Return ``None`` when JSON output
47-
is requested so the dispatcher cleanly raises
48-
``NotImplementedError`` instead of invoking Devin with an
49-
unsupported ``--output-format`` flag. ``requires_cli=True``
50-
is kept on the integration for tool detection.
46+
for structured JSON output. When ``output_json`` is requested,
47+
Devin is still dispatched normally and returns plain-text
48+
stdout instead of structured JSON. ``requires_cli=True`` is
49+
kept on the integration for tool detection.
5150
"""
52-
if output_json:
53-
return None
5451
args = [self.key, "-p", prompt]
5552
if model:
5653
args.extend(["--model", model])

0 commit comments

Comments
 (0)