@morlay/ui-conversation-manager 0.0.2-alpha.6 → 0.0.2-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -12
- package/dist/client.d.cts +4 -1
- package/dist/client.d.mts +4 -1
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +17 -15
- package/src/client/controller.ts +4 -1
package/README.md
CHANGED
|
@@ -28,16 +28,16 @@ ui-plugin-manager 同一种注册方式)。页面分两层 Tabs(官方 `Pill
|
|
|
28
28
|
**默认排除已归档**(给上游 UI 用),归档集的管理动作要完整集合,两条路不混(决策见
|
|
29
29
|
[session-rdb 的 ADR](../session-rdb/.agents/adrs/20260922-会话列表两条路.md)):
|
|
30
30
|
|
|
31
|
-
| 动作 | 接缝
|
|
32
|
-
| ------------ |
|
|
31
|
+
| 动作 | 接缝 |
|
|
32
|
+
| ------------ | -------------------------------------------------------------------------------------------------------------------------------- |
|
|
33
33
|
| 列表与标题 | `POST /api/session.rows`(`@morlay/session-rdb`:完整语料 + 标题 + 最后活动时间 + 工作区归属;搜索 / 子代理过滤 / 分页都在后端) |
|
|
34
|
-
| 归档 | `ctx.uiWorkspace.archiveSession`(上游 ui-workspace,未归档行提供)
|
|
35
|
-
| 取消归档 | `ctx.uiWorkspace.unarchiveSession`(上游 ui-workspace,已归档行提供)
|
|
36
|
-
| 导出 | `POST /api/session.export`(`@morlay/session-rdb`,直接下载 zip)
|
|
37
|
-
| 删除 | `POST /api/session.delete`(`@morlay/session-rdb`,仅已归档行可用)
|
|
38
|
-
| 导入为新会话 | `POST /api/session.import`(`@morlay/session-rdb`,不带 `sessionId` = 新建会话)
|
|
39
|
-
| 清理孤儿数据 | `POST /api/session.gc`(停 agent → 回收孤儿 subagent 会话 → 回收孤儿事件行 → VACUUM;执行期间阻塞界面)
|
|
40
|
-
| 用量统计 | `POST /api/session.usage`(`@morlay/session-rdb` 读专用用量表聚合;进入统计视图时拉一次,维度切换本地折叠)
|
|
34
|
+
| 归档 | `ctx.uiWorkspace.archiveSession`(上游 ui-workspace,未归档行提供) |
|
|
35
|
+
| 取消归档 | `ctx.uiWorkspace.unarchiveSession`(上游 ui-workspace,已归档行提供) |
|
|
36
|
+
| 导出 | `POST /api/session.export`(`@morlay/session-rdb`,直接下载 zip) |
|
|
37
|
+
| 删除 | `POST /api/session.delete`(`@morlay/session-rdb`,仅已归档行可用) |
|
|
38
|
+
| 导入为新会话 | `POST /api/session.import`(`@morlay/session-rdb`,不带 `sessionId` = 新建会话) |
|
|
39
|
+
| 清理孤儿数据 | `POST /api/session.gc`(停 agent → 回收孤儿 subagent 会话 → 回收孤儿事件行 → VACUUM;执行期间阻塞界面) |
|
|
40
|
+
| 用量统计 | `POST /api/session.usage`(`@morlay/session-rdb` 读专用用量表聚合;进入统计视图时拉一次,维度切换本地折叠) |
|
|
41
41
|
|
|
42
42
|
归档 / 取消归档 / 删除 / 导入 / GC 成功后重拉会话行;host 拒绝(未归档 / 正在使用 / 不存在)
|
|
43
43
|
时按错误码给出可读文案。列表每页 20 条,搜索框复用官方 `Input`(连同官方图标与焦点样式)。
|
|
@@ -54,8 +54,9 @@ GC 是唯一会**停止所有运行中 agent** 的动作:确认后进入不可
|
|
|
54
54
|
|
|
55
55
|
时间范围的按钮与维度 tab 共用**同一套官方 tab 条视觉**(文字 13/16 wt500、选中态品牌蓝 + 2px 下划线,
|
|
56
56
|
取自会话头部的 `ConversationRoot.module.css`),只在其语义上用 `radiogroup`(单选筛选)区别于维度的 `tab`;
|
|
57
|
-
**不用 `Pill`**——官方 `ui-primitives` README
|
|
58
|
-
|
|
57
|
+
**不用 `Pill`**——官方 `ui-primitives` README 里 `Pill` 是「视图切换与筛选用法的可选中胶囊」(只读 capsule 是
|
|
58
|
+
`Tag`),官方那件互斥择一的选择件是 `SegmentedControl`(受控 tab 形态 `SegmentedTabs`);我们这里是**单选筛选**:
|
|
59
|
+
视觉取 tab 条、语义用 `radiogroup`。
|
|
59
60
|
|
|
60
61
|
统计的每一行(总览与列表)是同一形态:行 label + 横向排布的单项,所以读法一致——
|
|
61
62
|
「`data-usage-key=2026-09-14` 行里 `data-usage-cell=input` 的 `data-usage-value`」。
|
|
@@ -81,7 +82,7 @@ GC 是唯一会**停止所有运行中 agent** 的动作:确认后进入不可
|
|
|
81
82
|
- 列表是全量会话:未归档行提供**归档**、已归档行提供**取消归档**(同一位置二选一,互斥);
|
|
82
83
|
**删除只对已归档会话开放**(未归档行按钮禁用;host 侧仍返回 409),沿用
|
|
83
84
|
[ADR-会话删除仅限已归档且硬删](../session-rdb/.agents/adrs/20260917-会话删除仅限已归档且硬删.md)。
|
|
84
|
-
-
|
|
85
|
+
- 只有「最近活动在前」一种排序,没有分组与批量操作;分页在后端(每次只取当前页 20 条,翻页与搜索都重新请求)。
|
|
85
86
|
- 子代理派生会话默认不列(`origin: 'subagent'`):勾选「显示子代理会话」后出现并带「子代理」标记,
|
|
86
87
|
但这些行不可删除(它们未归档);归档 / 取消归档仍可用。
|
|
87
88
|
- 没有 summary 的成员(例如已从 host 消失的归档 id)不产生行。
|
package/dist/client.d.cts
CHANGED
|
@@ -3182,7 +3182,10 @@ interface SessionRowsPage {
|
|
|
3182
3182
|
page: number;
|
|
3183
3183
|
pageSize: number;
|
|
3184
3184
|
}
|
|
3185
|
-
/**
|
|
3185
|
+
/**
|
|
3186
|
+
* 时间范围的语义键(与 session-rdb `./usage` 的 `UsageRangeKey` 镜像):`day` / `week` 是本地自然日 /
|
|
3187
|
+
* 自然周,`7d` / `30d` / `90d` 是最近 N 个自然日(含今天)——边界由 host 按本地时区算,客户端只传语义。
|
|
3188
|
+
*/
|
|
3186
3189
|
type UsageRangeKey = "all" | "day" | "week" | "7d" | "30d" | "90d";
|
|
3187
3190
|
/** 活动计数(与 session-rdb `./usage` 的回报结构镜像):轮次 / 步骤 / 用户输入 / 工具调用。 */
|
|
3188
3191
|
interface UsageActivityTotals {
|
package/dist/client.d.mts
CHANGED
|
@@ -3182,7 +3182,10 @@ interface SessionRowsPage {
|
|
|
3182
3182
|
page: number;
|
|
3183
3183
|
pageSize: number;
|
|
3184
3184
|
}
|
|
3185
|
-
/**
|
|
3185
|
+
/**
|
|
3186
|
+
* 时间范围的语义键(与 session-rdb `./usage` 的 `UsageRangeKey` 镜像):`day` / `week` 是本地自然日 /
|
|
3187
|
+
* 自然周,`7d` / `30d` / `90d` 是最近 N 个自然日(含今天)——边界由 host 按本地时区算,客户端只传语义。
|
|
3188
|
+
*/
|
|
3186
3189
|
type UsageRangeKey = "all" | "day" | "week" | "7d" | "30d" | "90d";
|
|
3187
3190
|
/** 活动计数(与 session-rdb `./usage` 的回报结构镜像):轮次 / 步骤 / 用户输入 / 工具调用。 */
|
|
3188
3191
|
interface UsageActivityTotals {
|
package/locale/en.json
ADDED
package/locale/zh.json
ADDED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morlay/ui-conversation-manager",
|
|
3
|
-
"version": "0.0.2-alpha.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.0.2-alpha.8",
|
|
4
|
+
"description": "「对话管理」全局面板页(浏览器半):会话(含已归档)的搜索、取消归档、删除,以及导入为新会话。",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"archived-sessions",
|
|
7
7
|
"conversation-manager",
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"url": "https://github.com/morlay/dsh-plugin.git"
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
|
+
"locale/*.json",
|
|
19
20
|
"dist",
|
|
20
21
|
"src",
|
|
21
22
|
"!**/__tests__"
|
|
@@ -27,7 +28,8 @@
|
|
|
27
28
|
"./client": {
|
|
28
29
|
"types": "./dist/client.d.cts",
|
|
29
30
|
"default": "./dist/client.cjs"
|
|
30
|
-
}
|
|
31
|
+
},
|
|
32
|
+
"./locale/*.json": "./locale/*.json"
|
|
31
33
|
},
|
|
32
34
|
"devDependencies": {
|
|
33
35
|
"@testing-library/react": "^16.1.0",
|
|
@@ -37,18 +39,18 @@
|
|
|
37
39
|
"react-dom": "^18.2.0"
|
|
38
40
|
},
|
|
39
41
|
"peerDependencies": {
|
|
40
|
-
"@deepseek-ai/cordis": "4.0.
|
|
41
|
-
"@deepseek-ai/dsh-api-session-controller": "0.1.7-
|
|
42
|
-
"@deepseek-ai/dsh-client-locale": "0.1.7-
|
|
43
|
-
"@deepseek-ai/dsh-client-ui-layout": "0.1.7-
|
|
44
|
-
"@deepseek-ai/dsh-client-ui-primitives": "0.1.7-
|
|
45
|
-
"@deepseek-ai/dsh-client-ui-renderer": "0.1.7-
|
|
46
|
-
"@deepseek-ai/dsh-client-ui-session": "0.1.7-
|
|
47
|
-
"@deepseek-ai/dsh-client-ui-sidebar": "0.1.7-
|
|
48
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.1.7-
|
|
49
|
-
"@deepseek-ai/dsh-client-ui-workspace": "0.1.7-
|
|
50
|
-
"@deepseek-ai/dsh-session": "0.1.7-
|
|
51
|
-
"@morlay/dsh-client-ui-primitives": "0.0.2-alpha.
|
|
42
|
+
"@deepseek-ai/cordis": "4.0.4",
|
|
43
|
+
"@deepseek-ai/dsh-api-session-controller": "0.1.7-rc.1",
|
|
44
|
+
"@deepseek-ai/dsh-client-locale": "0.1.7-rc.1",
|
|
45
|
+
"@deepseek-ai/dsh-client-ui-layout": "0.1.7-rc.1",
|
|
46
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.1",
|
|
47
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.1",
|
|
48
|
+
"@deepseek-ai/dsh-client-ui-session": "0.1.7-rc.1",
|
|
49
|
+
"@deepseek-ai/dsh-client-ui-sidebar": "0.1.7-rc.1",
|
|
50
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.1",
|
|
51
|
+
"@deepseek-ai/dsh-client-ui-workspace": "0.1.7-rc.1",
|
|
52
|
+
"@deepseek-ai/dsh-session": "0.1.7-rc.1",
|
|
53
|
+
"@morlay/dsh-client-ui-primitives": "0.0.2-alpha.8"
|
|
52
54
|
},
|
|
53
55
|
"dsh": {
|
|
54
56
|
"client": {
|
package/src/client/controller.ts
CHANGED
|
@@ -41,7 +41,10 @@ export interface SessionRowsPage {
|
|
|
41
41
|
pageSize: number;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* 时间范围的语义键(与 session-rdb `./usage` 的 `UsageRangeKey` 镜像):`day` / `week` 是本地自然日 /
|
|
46
|
+
* 自然周,`7d` / `30d` / `90d` 是最近 N 个自然日(含今天)——边界由 host 按本地时区算,客户端只传语义。
|
|
47
|
+
*/
|
|
45
48
|
export type UsageRangeKey = "all" | "day" | "week" | "7d" | "30d" | "90d";
|
|
46
49
|
|
|
47
50
|
/** 活动计数(与 session-rdb `./usage` 的回报结构镜像):轮次 / 步骤 / 用户输入 / 工具调用。 */
|