fix(issue740): HWLAB v0.2 WEBUI session management improvements

1. 在 panel-title-row 增加"复制 session id"按钮,把当前会话
   conversation id 复制到剪贴板,便于在 HWLAB CLI 复现;
2. 侧边栏标签改为显示最近更新时间(相对时间),排序仍然按
   lastTimestampMs 倒序,新会话靠前;
3. messageCount 与 firstUserMessagePreview 由 backend 持久化,
   不再被 slice(-50) 窗口掩盖,CLI/Web 看到的条数一致;
4. 把 left-sidebar-resize 移到 session-sidebar 右侧,
   activity-rail 固定 92px,拖拽控制 session-sidebar 宽度;
5. 侧边栏标签默认显示用户摘要(首条 user message 截断),
   长文本用省略号收尾。

新增 `hwlab-cli client session inspect <conversationId>` 子命令
与 `GET /v1/agent/conversations/{id}` 端点对齐,便于在 CLI 复现
WEB 看到的 session 详情(包含 messageCount / trace / thread)。

Backend 改动:access-control.ts 的 normalizeConversationSnapshot
和 mergeAgentSessionOwnerEvidence 现在按 max 累加 messageCount,
并保留 firstUserMessagePreview;mergeTerminalConversationMessages
返回 { messages, messageCount, firstUserMessagePreview }。
This commit is contained in:
Codex
2026-06-03 11:41:02 +08:00
parent ae1866c6ba
commit 6dbc72deac
7 changed files with 346 additions and 91 deletions
+17 -15
View File
@@ -48,20 +48,6 @@
title="折叠左侧导航"
>收起</button>
</aside>
<div
class="resize-handle left-sidebar-resize"
id="left-sidebar-resize"
role="separator"
tabindex="0"
aria-label="拖拽调整左侧导航宽度"
aria-controls="activity-rail"
aria-orientation="vertical"
aria-valuemin="72"
aria-valuemax="180"
aria-valuenow="92"
title="拖拽调整左侧导航宽度;用左右方向键微调,Home/End 到最小或最大。"
></div>
<aside class="session-sidebar" id="session-sidebar" aria-label="Code Agent sessions">
<header class="session-sidebar-head">
<div>
@@ -76,6 +62,19 @@
<button class="session-delete-button" id="session-delete" type="button" disabled>删除当前</button>
</div>
</aside>
<div
class="resize-handle session-sidebar-resize"
id="session-sidebar-resize"
role="separator"
tabindex="0"
aria-label="拖拽调整 Session sidebar 宽度"
aria-controls="session-sidebar"
aria-orientation="vertical"
aria-valuemin="148"
aria-valuemax="320"
aria-valuenow="220"
title="拖拽调整 Session sidebar 宽度;用左右方向键微调,Home/End 到最小或最大。"
></div>
<section class="center-workspace">
<section class="view workbench-view" id="workspace" data-view="workspace" aria-labelledby="workspace-title">
@@ -86,7 +85,10 @@
<p class="eyebrow">Agent 工作区</p>
<h2 id="workspace-title">Agent 对话</h2>
</div>
<span class="state-tag tone-source" id="agent-chat-status">等待输入</span>
<div class="panel-title-actions">
<button class="icon-button" id="copy-session-id" type="button" hidden aria-label="复制 session id" title="复制 session id 到剪贴板,便于在 HWLAB CLI 复现。">复制 session id</button>
<span class="state-tag tone-source" id="agent-chat-status">等待输入</span>
</div>
</div>
<details class="code-agent-summary tone-border-pending" id="code-agent-summary">
<summary>