dsh-retrace 0.4.12 → 0.4.13

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.
@@ -457,7 +457,9 @@ var recallMarkerDefinition = {
457
457
  // the action-row suppression check (useShadowed) but empty for legacy
458
458
  // so no row is hidden and no action row is suppressed for legacy
459
459
  // markers (rename must never make visible content disappear).
460
- shadowedSeqs: legacy ? [] : Array.isArray(event.sourceEventSeqs) ? event.sourceEventSeqs.slice() : [],
460
+ // 2026-09-01:优先读 data.shadowedSeqs(host 冗余写入),fallback 顶层
461
+ // sourceEventSeqs——部分客户端事件管道剥离顶层字段导致隐藏失效。
462
+ shadowedSeqs: legacy ? [] : Array.isArray(event.data?.shadowedSeqs) ? event.data.shadowedSeqs.slice() : Array.isArray(event.sourceEventSeqs) ? event.sourceEventSeqs.slice() : [],
461
463
  targetSeq: event.data?.editor?.targetSeq,
462
464
  text: event.data?.editor?.text
463
465
  };
package/lib/client.js CHANGED
@@ -508,7 +508,9 @@ const recallMarkerDefinition = {
508
508
  // the action-row suppression check (useShadowed) but empty for legacy
509
509
  // so no row is hidden and no action row is suppressed for legacy
510
510
  // markers (rename must never make visible content disappear).
511
- shadowedSeqs: legacy ? [] : (Array.isArray(event.sourceEventSeqs) ? event.sourceEventSeqs.slice() : []),
511
+ // 2026-09-01:优先读 data.shadowedSeqs(host 冗余写入),fallback 顶层
512
+ // sourceEventSeqs——部分客户端事件管道剥离顶层字段导致隐藏失效。
513
+ shadowedSeqs: legacy ? [] : (Array.isArray(event.data?.shadowedSeqs) ? event.data.shadowedSeqs.slice() : (Array.isArray(event.sourceEventSeqs) ? event.sourceEventSeqs.slice() : [])),
512
514
  targetSeq: event.data?.editor?.targetSeq,
513
515
  text: event.data?.editor?.text,
514
516
  }
@@ -463,7 +463,9 @@ return {
463
463
  // the action-row suppression check (useShadowed) but empty for legacy
464
464
  // so no row is hidden and no action row is suppressed for legacy
465
465
  // markers (rename must never make visible content disappear).
466
- shadowedSeqs: legacy ? [] : Array.isArray(event.sourceEventSeqs) ? event.sourceEventSeqs.slice() : [],
466
+ // 2026-09-01:优先读 data.shadowedSeqs(host 冗余写入),fallback 顶层
467
+ // sourceEventSeqs——部分客户端事件管道剥离顶层字段导致隐藏失效。
468
+ shadowedSeqs: legacy ? [] : Array.isArray(event.data?.shadowedSeqs) ? event.data.shadowedSeqs.slice() : Array.isArray(event.sourceEventSeqs) ? event.sourceEventSeqs.slice() : [],
467
469
  targetSeq: event.data?.editor?.targetSeq,
468
470
  text: event.data?.editor?.text
469
471
  };
@@ -142,6 +142,10 @@ return {
142
142
  }
143
143
  const surfaceOp = { op: 'replace', start: span.start, end: span.end }
144
144
  const sourceEventSeqs = span.shadowedSeqs.slice()
145
+ // 2026-09-01:把遮蔽 seq 冗余进 data.shadowedSeqs——部分客户端事件管道会剥离
146
+ // event 顶层 sourceEventSeqs(0.4.12 实测:撤回/编辑后消息不隐藏 = client 拿不到
147
+ // shadowedSeqs)。data 里的字段随事件体持久化,client 读 data 更稳(fallback 顶层)。
148
+ data.shadowedSeqs = sourceEventSeqs
145
149
  if (typeof validate === 'function') {
146
150
  const result = await validate(session, { type: 'assistant/message', data, surfaceOp, sourceEventSeqs })
147
151
  if (result && result.t1Ok === false) {
package/lib/host-core.js CHANGED
@@ -133,6 +133,10 @@ export async function appendEditorMarker(session, span, op, targetSeq, originalT
133
133
  }
134
134
  const surfaceOp = { op: 'replace', start: span.start, end: span.end }
135
135
  const sourceEventSeqs = span.shadowedSeqs.slice()
136
+ // 2026-09-01:把遮蔽 seq 冗余进 data.shadowedSeqs——部分客户端事件管道会剥离
137
+ // event 顶层 sourceEventSeqs(0.4.12 实测:撤回/编辑后消息不隐藏 = client 拿不到
138
+ // shadowedSeqs)。data 里的字段随事件体持久化,client 读 data 更稳(fallback 顶层)。
139
+ data.shadowedSeqs = sourceEventSeqs
136
140
  if (typeof validate === 'function') {
137
141
  const result = await validate(session, { type: 'assistant/message', data, surfaceOp, sourceEventSeqs })
138
142
  if (result && result.t1Ok === false) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dsh-retrace",
3
3
  "description": "Retrace · 回溯 — Recall, edit-and-resend, regenerate, and conversation/artifact versioning (timeline, rollback, fork map) for DeepSeek Harness — Web and Desktop",
4
- "version": "0.4.12",
4
+ "version": "0.4.13",
5
5
  "packageManager": "pnpm@11.7.0",
6
6
  "type": "module",
7
7
  "main": "lib/index.js",
@@ -85,7 +85,7 @@
85
85
  "react": "^18.2.0"
86
86
  },
87
87
  "dependencies": {
88
- "dsh-log-contract": "^0.3.0",
88
+ "dsh-log-contract": "^0.3.7",
89
89
  "zod": "^4.4.3"
90
90
  },
91
91
  "repository": {