@morlay/ui-conversation-message-actions 0.0.14-alpha.4 → 0.0.15

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 CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  `rewind / retry / fork` 的**编排层**:在 `@morlay/session-branch` 的 provider
4
4
  抽象之上组装完整功能(产品语义对齐 [dsh-message-edit](https://github.com/Moeblack/dsh-message-edit)),
5
- 并提供**浏览器半**(client bundle):替换 `conversation.chat.node` 渲染,
6
- user 消息行内直接挂编辑 / 重试入口。
5
+ 并提供**浏览器半**(client bundle):替换 `conversation.chat.node`
6
+ `user` / `steering` 渲染,在 user 消息行内直接挂编辑 / 重试入口。
7
7
 
8
8
  ## 服务面(`ctx.sessionEditor`)
9
9
 
@@ -28,8 +28,8 @@
28
28
  点不开的空项与轮号空洞;manualTurn 的轮号同样按保留前缀收敛(正常会话
29
29
  等于目标轮号)。版本效果仍记录**原**目标轮号(操作历史);
30
30
  - **只有 `fork` 创建新 id**(`ForkOperation` / `forkFrom`,纯 append 派生);
31
- - 版本效果事件(`session-branch/version`)携带 `ignorable: true`:live log 可见、
32
- **不落 canonical log**(rdb 持久化时过滤并稠密化剩余事件);
31
+ - 版本效果事件(`session-branch/version`)携带 `ignorable: true`:**原样落库**
32
+ (rdb 不按信封过滤,与 JSONL 一致),非 branch 读者凭信封跳过;
33
33
  - 重放输入经 agent 驱动(见下)排队到原会话,agent 基于截断后历史回复。
34
34
 
35
35
  ## agent 驱动(重放排队输入)
@@ -39,7 +39,7 @@
39
39
 
40
40
  - **live agent**(会话驻留 / 已恢复):直接 `followup` 排队,不重建、不换 id;
41
41
  编辑前只等 agent 停下(`whenIdle`),残留排队输入由 rewind 在截断后强制
42
- durable 取消(session-rdb 的 `LiveSessionHooks.inbox.clear`);
42
+ durable 取消(session-rdb 的 live 会话钩子 `inbox.clear`);
43
43
  - **cold 会话**:`resume` 已持久化会话(`create` 对已持久化日志必失败),
44
44
  resume 后 agent 驻留(不 dispose,避免 session 被移出 store 破坏客户端窗口);
45
45
  - 模型 provider/model 在 **rewind 之前**从 `request/header` 解析(就地编辑
@@ -47,12 +47,11 @@
47
47
 
48
48
  ## 浏览器半(client bundle)
49
49
 
50
- `lib/client.js` 经 `__ModuleLoader__.load` 手递,替换整个 `conversation.chat.node`:
50
+ `dist/client.js` 经 `__ModuleLoader__.load` 手递,替换 `conversation.chat.node`
51
+ 的 `user` / `steering` 渲染:
51
52
 
52
- - **shadow 注册**:12 个 key(user / steering / context / assistant-step /
53
- command / manual-compaction / compaction / model-retry / turn-error /
54
- turn-max-tokens / turn-tail / unknown)全部以 `priority: -1` 重新注册,
55
- 最低优先级渲染,shadow 上游渲染器;
53
+ - **shadow 注册**:`user` / `steering` 两个 key `priority: -1` 重新注册
54
+ (最低优先级渲染,shadow 上游默认注册);其余 key 沿用上游渲染器;
56
55
  - **编辑 / 重试按钮只挂在 user 消息**(`UserMessageNodeView`):编辑弹窗复用
57
56
  dsh settings 同款 `Modal` + `Button`,输入框复用 composer-card 视觉与自动
58
57
  增长;重试先弹确认;未闭合轮次不显示重试;
@@ -63,14 +62,14 @@
63
62
  前的高 seq 旧值,截断后的正确值 seq 更小,永远覆盖不上(轮次导航残留已
64
63
  删除的轮次);不可用时回退 `location.reload()`;
65
64
  - **构建约束**:client bundle 必须是**单文件**(client-modules 只服务/加载
66
- `client.js`)——`noExternal` 全内联第三方 + `inlineDynamicImports` 合并
67
- 动态 import,`@deepseek-ai/*` 一律 external(平台 seed 词或独立插件,
68
- 内联会把别的插件的 `__ModuleLoader__.load` 嵌进来导致 duplicate factory);
69
- CSS Modules 经 lightningcss 内联 + `<style data-plugin>` 注入。
65
+ `client.js`)——`deps.neverBundle` 保持 react `@deepseek-ai/*` external
66
+ (平台 seed 词或独立插件,内联会把别的插件的 `__ModuleLoader__.load` 嵌进来
67
+ 导致 duplicate factory),其余依赖全部内联,`inlineDynamicImports` 合并动态
68
+ import;CSS Modules 经 lightningcss 内联 + `<style data-plugin>` 注入。
70
69
 
71
70
  ## 分层边界
72
71
 
73
- - 数据层(`forkFrom` / `rewind` / `readBranchPrefix` / `syncLiveCursor`)来自
72
+ - 数据层(`forkFrom` / `rewind` / `readBranchPrefix`)来自
74
73
  `ctx.sessionBranch`(provider 实现,如 `@morlay/session-rdb`);
75
74
  - 本服务只做**编排**:闭合轮次扫描、版本效果事件构造、派生 seed 组装、
76
75
  rewind 命令透传、agent 驱动、HTTP 面(`POST /session-editor` 执行
@@ -81,12 +80,12 @@
81
80
  ```yaml
82
81
  # cordis.patch.yml
83
82
  - insert:
84
- - id: session-editor
83
+ - id: ui-conversation-message-actions
85
84
  name: "@morlay/ui-conversation-message-actions"
86
85
  ```
87
86
 
88
- 依赖 `ctx.sessionBranch`(需先装配 `@morlay/session-rdb`
89
- provider 实现)与 `ctx.sessions`(dsh-session);`agents` 可选。
87
+ 依赖 `ctx.sessionBranch` / `ctx.sessionPersistence`(需先装配
88
+ `@morlay/session-rdb` 等 provider 实现)与 `ctx.sessions`;`agents` 可选。
90
89
 
91
90
  端到端装配真实 rdb 后端,验证 retry / rewind / fork / timeline 闭环,
92
- 以及 live 会话的 rewind(内存 log / coordinator cursor 同步)与 agent 重放。
91
+ 以及 live 会话的 rewind(内存 log 截断 / handle cursor 对齐)与 agent 重放。
package/dist/client.js CHANGED
@@ -362,10 +362,10 @@ window.__ModuleLoader__.load({
362
362
  }
363
363
  var MessageIconActions_module_css_default = {
364
364
  "runTimeDot": "lKOSUG_runTimeDot",
365
+ "actions": "lKOSUG_actions",
366
+ "timeStart": "lKOSUG_timeStart",
365
367
  "timeEnd": "lKOSUG_timeEnd",
366
368
  "action": "lKOSUG_action",
367
- "timeStart": "lKOSUG_timeStart",
368
- "actions": "lKOSUG_actions",
369
369
  "visuallyHidden": "lKOSUG_visuallyHidden"
370
370
  };
371
371
  //#endregion
@@ -580,34 +580,34 @@ window.__ModuleLoader__.load({
580
580
  document.head.appendChild(tag);
581
581
  }
582
582
  var MessageItem_module_css_default = {
583
- "retryRow": "okW0Ua_retryRow",
584
- "turnErrorRow": "okW0Ua_turnErrorRow",
585
- "bubble": "okW0Ua_bubble",
586
- "confirmActions": "okW0Ua_confirmActions",
587
583
  "userRow": "okW0Ua_userRow",
588
- "compactionLeading": "okW0Ua_compactionLeading",
589
- "compactionButton": "okW0Ua_compactionButton",
584
+ "turnErrorMessage": "okW0Ua_turnErrorMessage",
585
+ "refChip": "okW0Ua_refChip",
586
+ "compactionSep": "okW0Ua_compactionSep",
590
587
  "retry-shimmer": "okW0Ua_retry-shimmer",
591
- "compactionContextIcon": "okW0Ua_compactionContextIcon",
592
- "turnErrorDot": "okW0Ua_turnErrorDot",
593
- "compactionSummary": "okW0Ua_compactionSummary",
588
+ "compactionButton": "okW0Ua_compactionButton",
594
589
  "compactionBody": "okW0Ua_compactionBody",
595
- "turnErrorCopy": "okW0Ua_turnErrorCopy",
590
+ "confirmActions": "okW0Ua_confirmActions",
591
+ "compactionSummary": "okW0Ua_compactionSummary",
592
+ "bubble": "okW0Ua_bubble",
593
+ "contextRow": "okW0Ua_contextRow",
594
+ "retryDetails": "okW0Ua_retryDetails",
596
595
  "userStack": "okW0Ua_userStack",
597
- "turnErrorTitle": "okW0Ua_turnErrorTitle",
598
- "turnErrorMessage": "okW0Ua_turnErrorMessage",
596
+ "compactionContextIcon": "okW0Ua_compactionContextIcon",
597
+ "compactionDisclosureIcon": "okW0Ua_compactionDisclosureIcon",
599
598
  "retrySummary": "okW0Ua_retrySummary",
599
+ "turnErrorDot": "okW0Ua_turnErrorDot",
600
+ "retryText": "okW0Ua_retryText",
600
601
  "retryDetailLabel": "okW0Ua_retryDetailLabel",
602
+ "turnErrorTitle": "okW0Ua_turnErrorTitle",
603
+ "turnErrorCopy": "okW0Ua_turnErrorCopy",
604
+ "retryRow": "okW0Ua_retryRow",
601
605
  "maxTokensTitle": "okW0Ua_maxTokensTitle",
602
- "compactionDisclosureIcon": "okW0Ua_compactionDisclosureIcon",
603
- "retryText": "okW0Ua_retryText",
604
- "refChip": "okW0Ua_refChip",
605
606
  "turnErrorCode": "okW0Ua_turnErrorCode",
606
- "compactionRow": "okW0Ua_compactionRow",
607
- "retryDetails": "okW0Ua_retryDetails",
608
- "contextRow": "okW0Ua_contextRow",
609
607
  "compactionTitle": "okW0Ua_compactionTitle",
610
- "compactionSep": "okW0Ua_compactionSep"
608
+ "compactionRow": "okW0Ua_compactionRow",
609
+ "turnErrorRow": "okW0Ua_turnErrorRow",
610
+ "compactionLeading": "okW0Ua_compactionLeading"
611
611
  };
612
612
  //#endregion
613
613
  //#region src/client/chat-node/MessageItem.tsx