mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 08:52:43 +00:00
2.5 KiB
2.5 KiB
ACP Meta Event Dedupe Plan (2026-03-01)
Goal
Keep ACP thread output readable by default while preserving full raw ACP logs.
Scope
- In scope:
- ACP projection behavior in OpenClaw.
- ACP stream config keys for visibility + repeat suppression.
- ACP projector tests.
- Out of scope:
- ACPX raw stream persistence format.
- ACP protocol changes.
Configuration Shape
Use only these ACP stream controls for this behavior:
acp.stream.repeatSuppression?: booleanacp.stream.tagVisibility?: Partial<Record<AcpSessionUpdateTag, boolean>>- Existing delivery/size guards stay unchanged:
deliveryModemaxTurnCharsmaxToolSummaryCharsmaxStatusChars
Removed from plan/config:
showUsagemetaMode
Default Behavior (Minimal)
Default should be minimal-noise out of the box:
repeatSuppression: truetagVisibilitydefaults:agent_message_chunk: truetool_call: truetool_call_update: trueusage_update: falseavailable_commands_update: falsecurrent_mode_update: falseconfig_option_update: falsesession_info_update: falseplan: falseagent_thought_chunk: false
Projection Rules
- Apply
tagVisibilityfirst. - For visible tags:
repeatSuppression=true:- suppress identical repeated status lines.
- suppress identical repeated usage tuples.
- suppress duplicate tool lifecycle snapshots for the same
toolCallId.
repeatSuppression=false:- forward repeated status/tool updates as they arrive.
- Keep existing text streaming path and existing guardrails (
maxTurnChars, meta caps).- In
deliveryMode=final_only, defer all projected ACP output (text + meta/tool) until terminal turn events.
- In
- Keep canonical formatting:
- system lines via
prefixSystemMessage(...) - tool lines via shared tool formatter path.
- system lines via
Tests
Projector tests must cover:
- default usage hidden by
tagVisibility. - enabling
usage_updateviatagVisibilityworks. - repeated usage/status/tool updates are suppressed when
repeatSuppression=true. - repeated usage/status/tool updates are allowed when
repeatSuppression=false. available_commands_updatehidden by default.- text streaming and truncation behavior unchanged.
Acceptance Criteria
- No
showUsageormetaModein ACP stream config/types/schema/help/labels. repeatSuppressionis the only repeat/dedupe toggle.tagVisibilitydefaults are minimal-noise.- ACP projector behavior matches tests.
- Raw ACP logs remain unchanged/lossless.