From f3534749e564421036ac445f536fc766b038208f Mon Sep 17 00:00:00 2001 From: xin zhuang <65798732+1052326311@users.noreply.github.com> Date: Wed, 14 Oct 2026 10:54:50 +0800 Subject: [PATCH] docs(process): clarify terminal progress message fields (#3086) Clarify that final capture progress carries disposition and cleanup states as key=value text inside message, with an illustrative wire-format example. Fixes #3052. Co-authored-by: 1052326311 <65798732+1052326311@users.noreply.github.com> Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com> Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> --- docs/process-capture.md | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/docs/process-capture.md b/docs/process-capture.md index 5b2bbbeeb..3482dc18d 100644 --- a/docs/process-capture.md +++ b/docs/process-capture.md @@ -159,14 +159,30 @@ line. Stdout stays the final Evidence document: `cleanup`. `completed` counts collected terminal frames, process samples, and interaction events. `total` stays null; REA does not invent a unit total or a percentage. `message` reports elapsed time and those counts. The final line uses -`phase` `cleanup`, sets `terminal` to true, and adds `disposition` (`exited`, -`timeout`, `idle_timeout`, `cancelled`, or `failed`) plus the owned-process, -renderer, and temporary-root cleanup states. Updates use the shared progress -boundary and are limited to one intermediate line per 100 ms; the terminal line -is always emitted. If a receiver is slow, intermediate observations are merged -into the latest status, and stale live observations are discarded before final -cleanup status. Progress never copies child output. Child output remains in the -capture Evidence on stdout. +`phase` `cleanup` and sets `terminal` to true. Its `message` also contains +`disposition=` (`exited`, `timeout`, `idle_timeout`, `cancelled`, or `failed`) +and the `owned_process_group`, `terminal_renderer`, and `temporary_root` cleanup +states as `key=value` text. These values are not separate JSON fields. For +example, a completed capture can end with: + +```json +{ + "rea_progress": { + "phase": "cleanup", + "completed": 0, + "total": null, + "message": "elapsed_ms=2180 frames=0 samples=0 interactions=0 disposition=exited owned_process_group=cleaned terminal_renderer=cleaned temporary_root=cleaned", + "terminal": true, + "sequence": 13 + } +} +``` + +Updates use the shared progress boundary and are limited to one intermediate line +per 100 ms; the terminal line is always emitted. If a receiver is slow, +intermediate observations are merged into the latest status, and stale live +observations are discarded before final cleanup status. Progress never copies +child output. Child output remains in the capture Evidence on stdout. ### Scenario with interactions