Skip to content

fix(kiro): map GPT-5.6 reasoning effort fields#2707

Open
SemonCat wants to merge 2 commits into
decolua:masterfrom
SemonCat:fix/kiro-gpt-reasoning-effort-v2
Open

fix(kiro): map GPT-5.6 reasoning effort fields#2707
SemonCat wants to merge 2 commits into
decolua:masterfrom
SemonCat:fix/kiro-gpt-reasoning-effort-v2

Conversation

@SemonCat

@SemonCat SemonCat commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Summary

  • follow up fix(kiro): map GPT reasoning effort fields #2701's GPT-5.6 reasoning.effort mapping through the complete Responses-to-Kiro flow
  • preserve Responses API reasoning.effort through the OpenAI intermediate
  • retain Claude thinking plus output_config.effort behavior and legacy-model guards
  • avoid GPT legacy thinking prompt tags when a supported native effort is emitted
  • keep legacy fallback for unsupported effort values and explicit disable semantics

Why

Kiro's effort path is model-schema-specific: GPT models use reasoning.effort, while Claude models use output_config.effort.

This is a follow-up to #2701, which established the core GPT-5.6 structured effort mapping and was confirmed merged by the maintainer. This PR carries that flow through the actual Hermes codex_responses path and tightens the remaining edge cases.

The remaining gap after #2701 is end-to-end transport: the standard Responses API reasoning.effort is removed during Responses-to-OpenAI conversion unless it is copied into the OpenAI intermediate first. The base flow can also emit legacy thinking tags alongside the native GPT field and normalize xhigh/max too aggressively. This follow-up addresses those cases while preserving the older fallback behavior for unsupported values.

Official Kiro effort documentation: https://kiro.dev/docs/cli/chat/effort/

Resulting behavior

  • GPT-5.6 low, medium, high, and xhigh use the native reasoning.effort field.
  • max maps to GPT wire value xhigh.
  • Supported native GPT efforts do not also receive legacy thinking tags.
  • Unsupported auto, minimal, and ultra retain the legacy thinking fallback.
  • none, off, and disabled remain intentionally disabled.
  • Claude adaptive effort continues to use thinking plus output_config.effort.

Verification

  • focused Vitest: 65 passed, 2 expected-fail baseline cases
  • ESLint on all seven touched source and test files
  • production npm run build
  • git diff --check
  • direct live image evidence: Responses-to-Kiro traffic reports THINK:high / THINK:medium with the fix(kiro): map GPT-5.6 reasoning effort fields #2707 patch stack
  • structured code review: no actionable findings

Repository-wide lint and the broad translator snapshot suite contain unrelated upstream baseline failures; the focused suite covers the changed request paths and fallback semantics.

Preserve Responses API effort through the OpenAI bridge and emit Kiro's schema-specific GPT reasoning fields without legacy prompt tags. Keep Claude adaptive effort behavior and legacy-model guards intact.
Use the native GPT effort parser to decide whether legacy thinking tags should be suppressed, while keeping explicit disable sentinels off.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant