Skip to content

fix(feishu): remove tool call status display to prevent streaming reset#313

Open
39499740 wants to merge 1 commit intodataelement:mainfrom
39499740:fix/feishu-remove-tool-status-display
Open

fix(feishu): remove tool call status display to prevent streaming reset#313
39499740 wants to merge 1 commit intodataelement:mainfrom
39499740:fix/feishu-remove-tool-status-display

Conversation

@39499740
Copy link
Copy Markdown
Contributor

@39499740 39499740 commented Apr 8, 2026

Summary

Remove tool call status display (⏳/✅ indicators) from the Feishu channel to prevent CardKit streaming output from being reset/flickering.

The tool call status display was originally added to work around Feishu card block rendering limitations. Now that CardKit streaming mode is used, injecting tool status text into the streaming element causes the output to be rewritten from scratch, creating visible resets and flickers.

Fixes #312

Changes

  • Remove _TOOL_STATUS_KEEP_LINES constant
  • Remove _tool_status_running / _tool_status_done state tracking variables
  • Remove _ws_on_tool_call callback function
  • Simplify _build_card() — remove tool_status_lines parameter and rendering logic
  • Simplify _flush_stream() — CardKit path directly uses accumulated text; Patch path hash calculation simplified
  • Stop passing on_tool_call to _call_agent_llm() for the Feishu text streaming path

Impact

  • Only affects the Feishu channel message display
  • WebSocket (Web Chat) tool call display is unaffected
  • Trigger daemon tool call logging is unaffected
  • Image streaming path (_handle_feishu_file) is unaffected

Checklist

  • Tested locally
  • No unrelated changes included

The tool call status display (⏳/✅ indicators) was originally added to
work around Feishu card block rendering limitations. Now that CardKit
streaming mode is used, injecting tool status text into the streaming
element causes the output to be rewritten from scratch, creating visible
resets and flickers.

Changes:
- Remove _TOOL_STATUS_KEEP_LINES constant
- Remove _tool_status_running/_tool_status_done state tracking
- Remove _ws_on_tool_call callback function
- Simplify _build_card() (remove tool_status_lines parameter)
- Simplify _flush_stream() CardKit and Patch paths
- Stop passing on_tool_call to _call_agent_llm()

Closes: dataelement#312
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.

Feishu channel: tool call status display causes streaming output reset

1 participant