Skip to content

fix(kiro): preserve opaque reasoning activity through stream translation - #16121

Merged
diegosouzapw merged 1 commit into
release/v3.8.52from
fix/15260-kiro-reasoning-liveness-1010
Oct 10, 2026
Merged

diegosouzapw merged 1 commit into
release/v3.8.52from
fix/15260-kiro-reasoning-liveness-1010

Conversation

@diegosouzapw

@diegosouzapw diegosouzapw commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Kiro can send native reasoningContentEvent frames containing an opaque signature before any text. The executor previously consumed those frames without forwarding a progress signal, so the downstream content-stall watchdog could abort an active reasoning stream.

Preserve that activity as an empty reasoning_content delta only for native reasoning events with a nonblank signature. The signature is never exposed or counted as generated content. Existing text extraction is moved to a small helper; metadata, empty/unknown signatures, timeout limits, cancellation, EOF policy and account health keep their existing behavior.

Validation:

  • Two RED runs reproduce a content stall at the 100 ms budget while the text control passes. The unchanged initial regression then passes with signature activity spanning more than three budgets before the final answer.
  • The expanded matrix passes 12/12, covering native and inline reasoning, fragmented frames, negative progress cases, stopped progress, active timeout and cancellation. The corrupt-frame case explicitly enables full CRC verification.
  • Across 83 related files, 576/583 cases passed initially. The seven failures belonged to two local-HTTP files blocked by the first test harness; rerunning those files with explicit loopback allowance passed 14/14 (seven overlapping passes). This gives 583 unique passing cases across the recorded runs, not a single all-green broad run.
  • Core/dashboard type checks, lint, both complexity gates, file-size, test discovery, formatting and docs checks pass. Independent code reviews found no blockers; normal commit hooks passed.
  • The changelog gate fails only on the inherited CodeBuddy fragment, fixed on the newer base by the concurrently merged fix(changelog): turn the codebuddy-intl fragment into a bullet line #16118. i18n has the same pre-existing 23 source, 132 target and 132 stale findings as the pure base. The new paragraph is translated in all 66 mirrors; only their target hashes/timestamps are updated, preserving historical source hashes. No native-speaker review is claimed.

The reproduction uses synthetic AWS frames through the real executor/readiness/pipe path with mocked fetch and isolated storage. It does not certify a live Kiro account, HTTP/chatCore/combo/cooldown, or native terminal proof. A separate configurable content-stall timeout remains an optional issue follow-up outside this patch.

Refs #15260. Keep the issue open for merge and the remaining scope disposition.

@github-actions

Copy link
Copy Markdown
Contributor

CI Coverage Report

  • Coverage job: skipped
  • PR test policy: success

Coverage artifact was not available for this run.

@diegosouzapw
diegosouzapw merged commit 6b996c5 into release/v3.8.52 Oct 10, 2026
27 of 85 checks passed
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