审批 / 消息 / 纪要 / 汇报补上助理栏 —— 那不是空态,是整栏没渲染

`.workspace` 是**三列**网格(侧栏 · 工作区 · 助理栏 440px)。这四个模块只渲染了
两栏,右边就空出一条 **234px 的白带** —— 里面什么都没有,不是「空态没写好」,
是这一栏根本没画。实测四面皆然。

那一栏该摆什么,按 OS 4.1 定:「对话流 / 视图区」是**工作台-任务**的交互结构、
是回环输入的唯一入口。这四个要素各有自己的形态 —— 审批是通过/驳回附依据、
消息是就地答(MessageDesk 自己那条 NoteBand 早写着「不开放任务对话流」)、
纪要靠人记、汇报是确认即提交 —— 都不经对话流。

所以**不摆能打字的输入框**:那是在许诺聊得起来。只如实说这一栏是什么、
这一面该怎么用、想说话该去哪儿。共用件 `AssistantAside`,色调 `muted`
(通路不在这儿,灰着就不许诺),章也不打彩色渐变 —— 亮着像在待命。
四句文案各说各的事,不是同一句复制四遍:

  审批 拍板不用先商量 —— 看依据就够了,想先问一句就去那一单的任务里说
  消息 这儿不用聊     —— 就地答完即可,作答只及卡面,不用跑进别人的任务
  纪要 会得你自己开   —— 你写下来最准,写完登记起单责任才落到人
  汇报 不用你写一个字 —— 按任务日志自动聚合,要数字好看得回任务里干活

顺带治了题头被截:一行摆四件(章 · 任务助理 · Agent · 说明句),对话区压到
212px 时说明句只剩 29px,被省略号截成「汇…」,一个字都读不出来。改为按**本栏宽度**
容器查询,挤了就让说明句换到第二行拿整行说完。任务面的「盯着这单推进 · 有事随时说」
以前也是截的,这下一并读全了。容器上下文落在 `.jc-tch` 不是 `.session-chat` ——
后者带拖拽调宽的负偏移柄,不给它加 containment。

补 3 个缺失图标(gavel / pencil-line / chart-column)—— 不补就是空 SVG,这坑踩过。

typecheck ✓ lint ✓ depcruise 374 模块 ✓ api:check ✓ 490 测试 ✓

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
2026-07-28 11:27:52 +08:00
co-authored by Claude Opus 5
parent 22aa44c775
commit 9802550ae8
7 changed files with 99 additions and 4 deletions
+44
View File
@@ -229,3 +229,47 @@ export function EmptyState({
</div>
);
}
/**
* 助理栏 —— 审批 / 消息 / 纪要 / 汇报四面右侧那一栏。
*
* `.workspace` 是**三列**网格(侧栏 · 工作区 · 助理栏)。这四个模块原来只渲染两栏,
* 右边就空出一条 234px 的白带 —— 不是空态,是**什么都没有**,看着像坏了。
*
* 那一栏摆什么?按 OS 4.1,「对话流」是**工作台-任务**的交互结构、是回环输入的唯一入口;
* 这四个要素各有自己的形态:审批是通过/驳回附依据、消息是就地答、纪要靠人记、
* 汇报是确认即提交 —— 都不经对话流。所以这里不摆一个能打字的输入框(那是许诺聊得起来),
* 只如实说明这一栏是什么、这一面该怎么用、想说话该去哪儿。
*
* 色调用 `muted`:通路不在这儿,灰着就不许诺。
*/
export function AssistantAside({
ico,
title,
desc,
note,
}: {
ico: string;
title: string;
desc: string;
/** 题头右侧那半句 —— 一句话说清这一栏在本面的角色 */
note: string;
}) {
return (
<section className="session-chat">
<div className="jc-tch">
<header className="jc-tch-head">
<span className="jc-tch-mark t-idle">
<Ico name="bot" s={15} />
</span>
<b className="jc-tch-name">任务助理</b>
<em className="jc-tch-tag">Agent</em>
<span className="jc-tch-desc">{note}</span>
</header>
<div className="jc-tch-scroll">
<EmptyState ico={ico} tone="muted" title={title} desc={desc} />
</div>
</div>
</section>
);
}