Skip to content

Unsupported --reasoning-effort silently resolves to off instead of erroring or clamping #4

Description

@Roderick-Clemente

Summary

Passing a --reasoning-effort value the target model does not support resolves silently to off (the weakest setting) instead of erroring or clamping to the nearest supported value. Exit code is 0 and nothing is printed. A caller requesting maximum reasoning gets none, silently, indefinitely.

Environment

  • droid 0.186.0, macOS (darwin 24.6.0), droid exec mode

Reproduction

claude-haiku-4-5-20251001 advertises reasoning efforts [off, low, medium, high]. xhigh is not in its list.

# requested xhigh -> resolves to off, exit 0, silent
droid exec --model claude-haiku-4-5-20251001 -r xhigh -o json '...'
# resolved: claude-haiku-4-5-20251001 / off

# control: one flag value different, resolves exactly as asked
droid exec --model claude-haiku-4-5-20251001 -r high -o json '...'
# resolved: claude-haiku-4-5-20251001 / high

Resolved effort read from message.reasoningEffort in the session transcript (~/.factory/sessions/), since the result envelope does not carry it.

Expected

An unsupported --reasoning-effort either errors (like an invalid --model does — that fails closed at exit 1 with the valid list) or clamps to the nearest supported value (high).

Actual

Resolves to off, the weakest value — inverting the intent of the flag — at exit 0 with no output. A validator pinned at -r xhigh against a model lacking it runs with reasoning disabled and no signal.

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