dsh-log-slicer 0.1.7 → 0.1.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/CHANGELOG.md CHANGED
@@ -1,24 +1,44 @@
1
- # 鍙樻洿璁板綍
1
+ # 变更记录
2
+
3
+ ## 0.1.8
4
+
5
+ 只改文档:0.1.7 的 `CHANGELOG.md` 落盘时被一次编码错误弄成乱码(正文还是好的,只有这份记录不能看),这一版把它换回正常文字,代码与 0.1.7 相同。
6
+
7
+ (0.1.4、0.1.5 是中途几次失败尝试留下的号,最后也放出去了,内容与 0.1.7 几乎相同;0.1.6 是废的暂存件,从未上线。装的话认 0.1.8 及以上。)
2
8
 
3
9
  ## 0.1.7
4
10
 
5
- 锛?.1.4 琚竴娆″崐閫?PUT 鍗犱簡鍙凤紱0.1.5 琚?staged 涔嬪悗鍙堟挙鍥烇紝registry 鐣欎簡澧撶锛屼袱涓彿閮藉彂涓嶅嚭鍘汇€傚唴瀹瑰師鏍峰苟鍏ユ湰鐗堛€傦級
11
+ 改版起因:2026-11-03 决定不升 DSH,只把插件改成认表,让宿主换日志格式时先报错、别静默切空。
12
+
13
+ 这一版防的不是"宿主换个界面",是"宿主换套日志"。不加新功能,只把最容易断的几处改成认表;宿主真改了格式,第一眼能看见报错,而不是切出一节空文。
14
+
15
+ - **加宽**:日志文件名认 `session[.v<N>].jsonl.zstd` 与 `.zst`,不再写死 `session.v4`;`--list` 与两个工具的输出都带上认到的 schema 号。
16
+ - **加宽**:事件名认一张表(`user/message`、`message/user`、`assistant/message`、`message/assistant`、`user`、`assistant`、`model/message`、`message/model`);正文位置认 `data.content`、`data.message.content`、`data.message`、`content`、`message`、`text`、`data.text`,以及 `{content:[…]}`/`{parts:[…]}` 两种包装;文本块认 `{text}`、`{text:{value}}`、`input_text`、`output_text`。
17
+ - **改成大声失败**:一条轮次都认不出来时报 `LogSchemaError`,消息里带"读了多少事件、见过的事件类型各几条"——宿主升级之后,这一句就是诊断书。
18
+ - **加宽**:注册口先认 `ctx.tools.register`,认不到试 `ctx.tool()`,都没有才抛;`apply` 照旧吞异常,不带崩应用。
19
+ - **修**:`dsh.plugin.json` 的版本号一直停在 0.1.0,补到与包一致。
6
20
 
7
- 鏀圭増璧峰洜锛?026-11-03 鍐冲畾涓嶅崌 DSH锛屽彧鎶婃彃浠舵敼鎴愯琛紝璁╁涓绘崲鏃ュ織鏍煎紡鏃跺厛鎶ラ敊銆佸埆闈欓粯鍒囩┖銆?
8
- 杩欎竴鐗堥槻鐨勪笉鏄?瀹夸富鎹釜鐣岄潰"锛屾槸"瀹夸富鎹㈠鏃ュ織"銆備笉鍔犳柊鍔熻兘锛屽彧鎶婃渶瀹规槗鏂殑鍑犲鏀规垚璁よ〃锛涘涓荤湡鏀逛簡鏍煎紡锛岀涓€鐪艰兘鐪嬭鎶ラ敊锛岃€屼笉鏄垏鍑轰竴鑺傜┖鏂囥€?
9
- - **鍔犲**锛氭棩蹇楁枃浠跺悕璁?`session[.v<N>].jsonl.zstd` 涓?`.zst`锛屼笉鍐嶅啓姝?`session.v4`锛沗--list` 涓庝袱涓伐鍏风殑杈撳嚭閮藉甫涓婅鍒扮殑 schema 鍙枫€?- **鍔犲**锛氫簨浠跺悕璁や竴寮犺〃锛坄user/message`銆乣message/user`銆乣assistant/message`銆乣message/assistant`銆乣user`銆乣assistant`銆乣model/message`銆乣message/model`锛夛紱姝f枃浣嶇疆璁?`data.content`銆乣data.message.content`銆乣data.message`銆乣content`銆乣message`銆乣text`銆乣data.text`锛屼互鍙?`{content:[鈥}`/`{parts:[鈥}` 涓ょ鍖呰锛涙枃鏈潡璁?`{text}`銆乣{text:{value}}`銆乣input_text`銆乣output_text`銆?- **鏀规垚澶у0澶辫触**锛氫竴鏉¤疆娆¢兘璁や笉鍑烘潵鏃舵姤 `LogSchemaError`锛屾秷鎭噷甯?璇讳簡澶氬皯浜嬩欢銆佽杩囩殑浜嬩欢绫诲瀷鍚勫嚑鏉?鈥斺€斿涓诲崌绾т箣鍚庯紝杩欎竴鍙ュ氨鏄瘖鏂功銆?- **鍔犲**锛氭敞鍐屽彛鍏堣 `ctx.tools.register`锛岃涓嶅埌璇?`ctx.tool()`锛岄兘娌℃湁鎵嶆姏锛沗apply` 鐓ф棫鍚炲紓甯革紝涓嶅甫宕╁簲鐢ㄣ€?- **淇?*锛歚dsh.plugin.json` 鐨勭増鏈彿涓€鐩村仠鍦?0.1.0锛岃ˉ鍒颁笌鍖呬竴鑷淬€?
10
21
  ## 0.1.3
11
22
 
12
- 0.1.2 瑁呰繘 profile 涔嬪悗锛岄噸鍚病鏈変换浣曞弽搴斺€斺€斾袱涓伐鍏烽兘娌″嚭鐜般€傛煡涓嬫潵涓ゅ锛?
13
- - **淇?*锛氭敞鍐岀殑 definition 灏戜簡 `output`銆傚涓?`register()` 鐨勭‖瑕佹眰鏄?`output = { schema, render }`锛宍render` 杩斿洖 ContentBlock[]锛涘彧鏈?`name/description/parameters/execute` 浼氳鐩存帴鎷掋€?- **淇?*锛歚@deepseek-ai/dsh-tools` 鍙槸 peerDependency锛岃杩?profile 鍚庢湭蹇呰В鏋愬緱鍒帮紙瀹炴祴 `ERR_MODULE_NOT_FOUND`锛夈€傚師鏉ヨВ鏋愪笉鍒板氨鎶涢敊锛岃€?`apply` 鍙堟妸寮傚父鍚炴帀浜嗭紝浜庢槸鏁翠釜鎻掍欢闈欓粯澶辨晥銆傜幇鍦ㄨВ鏋愪笉鍒板氨鑷繁鏋勯€犱竴浠藉悓褰㈢姸鐨?definition锛氬皯浜嗗弬鏁版牎楠岋紝娉ㄥ唽涓庤皟鐢ㄧ収甯搞€?
14
- 涓ゆ潯涓€璧疯В閲婁簡"CLI 鑳借窇銆佽鎴愭彃浠舵槸鍝戠殑"銆?
23
+ 0.1.2 装进 profile 之后,重启没有任何反应——两个工具都没出现。查下来两处:
24
+
25
+ - **修**:注册的 definition 少了 `output`。宿主 `register()` 的硬要求是 `output = { schema, render }`,`render` 返回 ContentBlock[];只有 `name/description/parameters/execute` 会被直接拒。
26
+ - **修**:`@deepseek-ai/dsh-tools` 只是 peerDependency,装进 profile 后未必解析得到(实测 `ERR_MODULE_NOT_FOUND`)。原来解析不到就抛错,而 `apply` 又把异常吞掉了,于是整个插件静默失效。现在解析不到就自己构造一份同形状的 definition:少了参数校验,注册与调用照常。
27
+
28
+ 两条一起解释了"CLI 能跑、装成插件是哑的"。
29
+
15
30
  ## 0.1.2
16
31
 
17
- - **淇?*锛歚package.json` 閲岃ˉ涓?`dsh.bundle.patch`锛屾寚鍚?`./cordis.patch.yml`銆傚皯浜嗚繖涓€琛岋紝瑁呮垚鎻掍欢鏃跺涓绘棦涓嶄細璇婚偅涓?patch锛屼篃灏变笉浼氭妸涓や釜宸ュ叿娉ㄥ唽杩涗細璇濃€斺€擟LI 鐓ф牱鑳界敤锛岃鎴愭彃浠跺嵈鏄搼鐨勩€傝繖鏄杩?profile 鏃舵墠鍙戠幇鐨勯棶棰樸€?
32
+ - **修**:`package.json` 里补上 `dsh.bundle.patch`,指向 `./cordis.patch.yml`。少了这一行,装成插件时宿主既不会读那个 patch,也就不会把两个工具注册进会话——CLI 照样能用,装成插件却是哑的。这是装进 profile 时才发现的问题。
33
+
18
34
  ## 0.1.1
19
35
 
20
- 涓夊閮芥槸绗竴娆$湡鐢紙鎷?2026-10-31 涓婂崍閭f鍘诲垏锛夋椂鏆撮湶鍑烘潵鐨勩€?
21
- - **淇?*锛歚--kind work` 鐨勪笁琛屽ご閲岋紝銆屽師浠躲€嶉粯璁ゅ€间粠 `宸茬Щ璧癭 鏀规垚 `锛堝緟濉級`銆傚伐鍏峰苟涓嶇煡閬撻偅浠藉師浠跺湪鍝効锛屾浛浜哄啓涓€涓柇瑷€鏄秺鐣屻€?- **淇?*锛氱洰褰曢噷濡傛灉鏌愪竴鍗风殑鍚嶅瓧姝eソ鏄€屽嵎銆嶏紝瀹冧細鎾炰笂琛ㄥご棣栨牸锛岃琚彃鍒拌〃澶翠笌鍒嗛殧琛屼腑闂达紝琛ㄦ牸灏卞潖浜嗐€傜幇鍦ㄨ〃澶翠笌鍒嗛殧琛屼笉鍙備笌"杩欐槸璇ュ嵎鐨勮"鐨勫垽鏂€?- **澧?*锛氭寚璺彞璇嗗埆銆傚舰濡傘€屾垜鏇存柊浜嗙涓€杞€嶃€屼綘鍙互鐪嬬湅閭d釜鏂囦欢銆嶃€岃繖鏂归潰鍐呭鎴戜滑灏辩粨鏉熶簡銆嶇殑鍙ュ瓙锛屾槸浠栧線鏂囦欢涓婃寚锛屼笉鏄粬鐨勮瘽銆俤ry-run 浼氭妸瀹冧滑鍒楀嚭鏉ワ紝骞舵彁绀哄幓鍘熶欢鎶勭湡娈佃惤锛涜嫢閭f灞炰笁绾э紝灏变笉鎶勶紝鍐欎竴鍙?鎸変笁绾т笉鎶勫湪杩欓噷"銆?
36
+ 三处都是第一次真用(拿 2026-10-31 上午那段去切)时暴露出来的。
37
+
38
+ - **修**:`--kind work` 的三行头里,「原件」默认值从 `已移走` 改成 `(待填)`。工具并不知道那份原件在哪儿,替人写一个断言是越界。
39
+ - **修**:目录里如果某一卷的名字正好是「卷」,它会撞上表头首格,行被插到表头与分隔行中间,表格就坏了。现在表头与分隔行不参与"这是该卷的行"的判断。
40
+ - **增**:指路句识别。形如「我更新了第一轮」「你可以看看那个文件」「这方面内容我们就结束了」的句子,是他往文件上指,不是他的话。dry-run 会把它们列出来,并提示去原件抄真段落;若那段属三级,就不抄,写一句"按三级不抄在这里"。
41
+
22
42
  ## 0.1.0
23
43
 
24
- 绗竴鐗堛€傚彇鏁?鈫?娓呮礂 鈫?鍒囩墖 鈫?娓叉煋 鈫?鐧昏锛孋LI 涓庢彃浠朵袱鏉″叆鍙e叡鐢?`src/pipeline.js`銆?
44
+ 第一版。取数 → 清洗 → 切片 → 渲染 → 登记,CLI 与插件两条入口共用 `src/pipeline.js`。
package/dsh.plugin.json CHANGED
@@ -1,7 +1,7 @@
1
- {
1
+ {
2
2
  "name": "dsh-log-slicer",
3
3
  "description": "Slice one section out of a DSH session log: verbatim turns, catalog row, backup and verification hash.",
4
- "version": "0.1.7",
4
+ "version": "0.1.8",
5
5
  "entry": {
6
6
  "name": "dsh-log-slicer",
7
7
  "inject": [
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
- {
1
+ {
2
2
  "name": "dsh-log-slicer",
3
- "version": "0.1.7",
4
- "description": "Slice one section out of a DeepSeek Harness session log: verbatim turns, images, catalog row, backups and a verification hash 鈥?one command, dry-run by default.",
3
+ "version": "0.1.8",
4
+ "description": "Slice one section out of a DeepSeek Harness session log: verbatim turns, images, catalog row, backups and a verification hash — one command, dry-run by default.",
5
5
  "keywords": [
6
6
  "dsh",
7
7
  "dsh-plugin",