Skip to content

fix(rendering): Prevent fragment state from affecting final output

Sign in for the full log view
GitHub Actions / warden: find-bugs completed May 6, 2026 in 12m 35s

1 issue

find-bugs: Found 1 issue (1 high)

High

renderTranscript produces empty output for 'cli-text' strategy - `src/rendering/render.ts:167`

The refactored renderTranscript calls createRenderHooks(strategy, ...).finalize(input) directly. For the 'cli-text' strategy, the returned finalize hook ignores its input parameter and only invokes renderer.finalize() on a freshly created renderer that never received any fragments, structured output, or next steps. As a result, renderTranscript(input, 'cli-text') (and renderFragments(..., 'cli-text')) always returns an empty string regardless of input, silently dropping all transcript content for any caller using the cli-text strategy.

Also found at:

  • src/rendering/render.ts:166-168

Duration: 12m 30s · Tokens: 1.7M in / 12.9k out · Cost: $4.79 (+merge: $0.00)

Annotations

Check failure on line 167 in src/rendering/render.ts

See this annotation in the file changed.

@github-actions github-actions / warden: find-bugs

renderTranscript produces empty output for 'cli-text' strategy

The refactored `renderTranscript` calls `createRenderHooks(strategy, ...).finalize(input)` directly. For the `'cli-text'` strategy, the returned `finalize` hook ignores its `input` parameter and only invokes `renderer.finalize()` on a freshly created renderer that never received any fragments, structured output, or next steps. As a result, `renderTranscript(input, 'cli-text')` (and `renderFragments(..., 'cli-text')`) always returns an empty string regardless of input, silently dropping all transcript content for any caller using the cli-text strategy.

Check failure on line 168 in src/rendering/render.ts

See this annotation in the file changed.

@github-actions github-actions / warden: find-bugs

[46P-FRU] renderTranscript produces empty output for 'cli-text' strategy (additional location)

The refactored `renderTranscript` calls `createRenderHooks(strategy, ...).finalize(input)` directly. For the `'cli-text'` strategy, the returned `finalize` hook ignores its `input` parameter and only invokes `renderer.finalize()` on a freshly created renderer that never received any fragments, structured output, or next steps. As a result, `renderTranscript(input, 'cli-text')` (and `renderFragments(..., 'cli-text')`) always returns an empty string regardless of input, silently dropping all transcript content for any caller using the cli-text strategy.