stacklok / stacklok/mecatl

feat(mecatui): surface live LLM stream progress

Open
#833 0 comments 1 reaction 1 assignee View on GitHub

@jbeda is already working on this.

Since Aug 28, 2026.

tui
Dominant language
Go
Stars
152
Forks
16
Avg merge
14h 48m
Merged PRs (30d)
536

Description

Problem

During a long LLM call, mecatui can appear stalled even while the server is receiving meaningful stream output. The LLM idle watchdog is reset by adapter-level chunks, but the UI should make that progress visible rather than leaving users with only an indeterminate wait.

Desired behaviour

While a turn is in progress, render observable progress for every meaningful provider chunk that reaches the client:

  • streamed assistant text/tokens;
  • reasoning/thinking updates; and
  • tool-call progress, including the completed tool call when it becomes available.

The presentation should update incrementally without duplicating final transcript/tool-card content, preserve scrollback usability, and work for both embedded mecatui and mecatui connect sessions.

Acceptance criteria

  1. A streamed text chunk produces visible incremental assistant progress before turn completion.
  2. A reasoning/thinking chunk produces visible progress while reasoning is streaming.
  3. Tool-call progress is visibly represented when the server emits it, without duplicating the final tool card.
  4. Progress is cleared, finalized, or folded into the normal transcript at terminal turn completion; it must not leave stale in-progress UI behind.
  5. Add focused UI/client tests covering text, reasoning, tool-call, and terminal cleanup behavior.

Context

The server-side idle watchdog resets when provider adapters yield port.Chunks, not on SSE keepalives. Text and reasoning deltas yield chunks; raw lifecycle events, keepalives, and partial tool-argument fragments may not. Showing the chunks that do arrive gives users evidence of active model progress during long calls.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.