You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(ui): group turn process activity like the Astryx chat template #5796
Part of #5793. Supersedes #4773. Relates to #4863. Scope reviewed against upstream main 7c90bac2d on 2026-10-04; completed behavior is listed separately below.
Problem
A reader who opens a finished turn sees its process region as a log table rather than as a conversation.
Tool calls are split into many single-call cards. Tool merging in materialize.ts currently combines adjacent tool entries only, so intermediate commentary or reasoning splits the group; foldTimeline preserves that sequence in the process region. Each group then holds one call and renders as its own ChatToolCalls.
Each single-call card is 800px wide. Its chevron sits at the right edge, about 400px from its content, so a turn shows a column of chevrons.
Three text styles alternate in one column: 12px muted process rows, 14px commentary, and the 12px status row with a full-width divider above the process body.
Astryx already provides the grouping this needs. ChatToolCalls renders one call inline and renders several calls under a collapsible summary, collapsed by default for multi-call groups in the current Astryx 0.6.3 implementation. The official ai-chat template passes each step's calls to one ChatToolCalls, and shows commentary as ghost bubble text around it.
The process region follows the template's composition:
A settled turn shows one compact summary line for its process region. Running turns stay expanded and cannot be collapsed, as today.
Inside the region, commentary renders as ghost bubble text. The tool calls of each step render as one ChatToolCalls group. Reasoning no longer splits a tool group.
Keep row details closed until the reader opens them.
Keep running and failed states visible without hover.
While a group streams, follow new rows only while the reader stays at the list tail.
Constraints
A running process region stays open. A reader's open or closed choice on a settled region survives appended events.
Entry keys stay semantic, so inserting an entry mid-timeline does not remount disclosures.
Order inside a step stays chronological. Do not regroup calls by tool type. Define how a shared tool group retains intervening reasoning/commentary before implementation; do not silently reorder content. Keep steering boundaries explicit and use a conservative fallback for legacy entries without stepId.
ChatReasoning (astryx-chat-reasoning.tsx) stays a Maka component. Astryx has no reasoning primitive, and the template shows none.
Implement step grouping and aggregate failure signals first, then long-group height/inner-scroll/tail-follow behavior. A0 (#5794 / #5847) is available. Coordinate scrolling changes with #5942 and use dynamic scrolling checks in addition to frozen pixel captures. Base turn layout on #5911 and coordinate shared files with open PR #5928.
Acceptance criteria
timeline-fold.test.ts covers the new grouping, including reasoning between tool calls, steering messages, and identity reconciliation.
Stories show a settled multi-step turn, a running turn, a turn with a failed tool, and a 45-call group. Each has a // Real path: comment.
Before and after captures in light and dark, produced by the A0 loop, are attached to the PR.
The CSS for .maka-processing-* and the tool activity card shrinks, and the PR reports the net change.
English
Part of #5793. Supersedes #4773. Relates to #4863. Scope reviewed against upstream main
7c90bac2don 2026-10-04; completed behavior is listed separately below.Problem
A reader who opens a finished turn sees its process region as a log table rather than as a conversation.
materialize.tscurrently combines adjacent tool entries only, so intermediate commentary or reasoning splits the group;foldTimelinepreserves that sequence in the process region. Each group then holds one call and renders as its ownChatToolCalls.Astryx already provides the grouping this needs.
ChatToolCallsrenders one call inline and renders several calls under a collapsible summary, collapsed by default for multi-call groups in the current Astryx 0.6.3 implementation. The officialai-chattemplate passes each step's calls to oneChatToolCalls, and shows commentary as ghost bubble text around it.Already available on upstream
Desired outcome
The process region follows the template's composition:
ChatToolCallsgroup. Reasoning no longer splits a tool group.Constraints
stepId.ChatReasoning(astryx-chat-reasoning.tsx) stays a Maka component. Astryx has no reasoning primitive, and the template shows none.Implement step grouping and aggregate failure signals first, then long-group height/inner-scroll/tail-follow behavior. A0 (#5794 / #5847) is available. Coordinate scrolling changes with #5942 and use dynamic scrolling checks in addition to frozen pixel captures. Base turn layout on #5911 and coordinate shared files with open PR #5928.
Acceptance criteria
timeline-fold.test.tscovers the new grouping, including reasoning between tool calls, steering messages, and identity reconciliation.// Real path:comment..maka-processing-*and the tool activity card shrinks, and the PR reports the net change.Open questions
中文
属于 #5793。取代 #4773。与 #4863 相关。2026-10-04 已按 upstream main
7c90bac2d核对范围;已有行为在下方单独列出。问题
读者打开一轮已结束的对话时,过程区看起来像一张日志表,而不像对话。
materialize.ts当前只合并相邻的工具条目,因此中间说明或思考会切断工具组;foldTimeline在过程区保留这一顺序。每组于是只剩一个调用,各自渲染成一个ChatToolCalls。Astryx 已经提供了所需的分组能力。
ChatToolCalls在只有一个调用时单行显示,有多个调用时显示在可折叠的摘要下,当前 Astryx 0.6.3 实现中多调用组默认折叠。官方ai-chat模板把每一步的调用传给同一个ChatToolCalls,并在其前后用 ghost 气泡文字显示说明。上游已具备
期望结果
过程区采用模板的组合方式:
ChatToolCalls组,思考不再切断工具组。约束
stepId的旧条目采用保守回退。ChatReasoning(astryx-chat-reasoning.tsx)继续作为 Maka 自己的组件。Astryx 没有思考过程原语,模板里也没有展示。先实现步骤分组和聚合失败信号,再实现长组限高、内部滚动及停留末尾时跟随新内容。A0(#5794 / #5847)已可用。滚动变更与 #5942 协调,除冻结像素截图外还需动态滚动检查。轮次布局基于 #5911,并与开放中的 PR #5928 协调共享文件。
验收标准
timeline-fold.test.ts覆盖新的分组方式,包括工具调用之间的思考、插入的引导消息和身份复用。// Real path:注释。.maka-processing-*和工具活动卡片的 CSS 减少,PR 报告净变化行数。待定问题