Skip to content

Commit 472650c

Browse files
committed
multi: stream live chat feedback
Add live model-stream observers so chat can render assistant and reasoning deltas as soon as the provider emits them. The core also reports grouped tool batches and coarse model/tool timing without coupling terminal rendering into the turn runner. Update the chat renderer with an animated working line, grouped multi-tool summaries, streamed dot blocks, richer turn footers, and less aggressive diff truncation. Mutation diffs now keep context readable while still coloring additions and removals. Extend status reporting with tool batch counts and approximate timing from JSONL event gaps. Refresh README and architecture notes to document the observer boundary and terminal behavior.
1 parent 3d6b291 commit 472650c

17 files changed

Lines changed: 2280 additions & 89 deletions

‎README.md‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,9 @@ Harness currently has:
4646
- external process hooks for session, turn, prompt, context, tool, and
4747
compaction events
4848
- explicit config-based stdio plugin tools over a small JSONL protocol
49-
- human-readable tool call and tool result rendering, including colored live
50-
diffs for file edits and replacements
49+
- streaming terminal feedback with an animated working line, grouped tool-call
50+
batches, compact tool output, and colored live diffs for file edits and
51+
replacements
5152

5253
The compiled default provider is an offline echo model, so the CLI can run
5354
without network access. Project config can change that default. Use the
@@ -257,10 +258,11 @@ Inside chat, use slash commands for local session and context operations:
257258
layers, active summaries, raw replay size, and approximate token counts.
258259

259260
`/status` reports what has already happened in the session: age, turns, model
260-
calls, tool calls, compactions, message bytes, and provider-reported token usage.
261-
When providers report usage, Harness appends `model.usage` events to the JSONL
262-
log and sums them for `/status`, including input, cached input, output,
263-
reasoning output, and total tokens when available.
261+
calls, tool calls, tool batches, compactions, message bytes, approximate timing
262+
from JSONL event gaps, and provider-reported token usage. When providers report
263+
usage, Harness appends `model.usage` events to the JSONL log and sums them for
264+
`/status`, including input, cached input, output, reasoning output, and total
265+
tokens when available.
264266

265267
## Built-In Tools
266268

0 commit comments

Comments
 (0)