Repository navigation
Releases
Releases · EIGHTfs/dsh-session-migrate
v1.0.4
1.0.4 — 内容级缺陷扫描与修复 + 代码质量优化
新增:会话内容级缺陷扫描与修复
对照 dsh-session-migration-repair(zzdhsxk, MIT)补齐内容级能力,与既有「投放」链路互补:
engine/repair.js:检测并修复五类导致迁移链拒绝的缺陷tool-call-chunks分片行空 id/name(旧版只在首行写 id)→ v0→v1 拒绝assistant/message与tool/call空 nameblock-endtool-call 块空 id/name → v2→v3 拒绝tool/callarguments 与消息声明不一致(以不含 U+FFFD 的一侧对齐)- 从
tool-call-delta流索引取回真实 id/name;缺 delta 参考的行进 skipped 不硬改;只重写变化行(最小差异)
engine/validate.js:用目标实例自带 format catalog 离线跑完整 v0→v1→v2→v3 迁移链(优先 monorepo 源码形态路径,回退 node_modules)engine/zstd.js:新增decodeFull(多帧全量解码)与textToZstd(内存明文重编码,首行单独一帧)- CLI 新增
scan/validate/repair子命令(退出码 0/1/2/3,3=scan 发现阻塞缺陷) - HTTP 新增
GET /scan与POST /repair(备份到<同目录>.repair-bak-<时间戳>/,迁移链预校验失败拒绝落盘,textToZstd 临时文件 + rename 原子写) - 工具注册
session_migrate_repair,check附带内容缺陷段 - 测试
test/test-repair.mjs:扫描/修复/zstd 往返 23 项 - 真实 v0 会话端到端实测:注入空 id/name 缺陷 → 迁移链拒绝 → 修复 1 行 → 迁移链通过(18138 个 v3 事件,与原一致,零漂移)
代码质量优化(审计评分 77.2 → 81,warning 66 → 35)
repair.js:indexLog/scanLog/planRepair 按行类型拆小处理器(圈复杂度 27→各≤10、嵌套 7→≤3、事件类型与 U+FFFD 提命名常量)cli.mjs:cmdRepair(74 行/复杂度 23)拆 printRepairPlan/renderChainResult/reportDryRun/rejectIfValidationFails/writeRepair 五个子步骤routes.js:handleRepair 拆 runChainValidate/buildRepairResponse/writeRepairedFile,handleScan/handleRepair 共用新抽 readSessionTextvalidate.js:loadCatalog 空 catch 补说明注释test/:新增.test豁免标记(测试 fixture 魔数不入审)- 回归:test-repair.mjs 23 项 + test-client.mjs 全过
安装与使用
node cli.mjs scan <会话文件> # 只读扫描阻塞缺陷
node cli.mjs validate <会话文件> --home … # 离线迁移链实测
node cli.mjs repair <会话文件> --yes # 备份 → 修复 → 校验 → 落盘
tgz 资产:dsh-session-migrate-1.0.4.tgz(pnpm pack,17 文件,含 engine/repair.js、engine/validate.js、engine/zstd.js)
v1.0.3
1.0.3 — 全量审计清理
- 全量审计清理(独立 CLI git-sluice 口径):warning 121 → 19(加入
.auditignore后 10),评分 77.5 → 83.5 → 86.3/A - 引擎与 HTTP 侧 I/O 隐患清除:
follow.jstoken 探测改「readdirSync 一次性收进内存集合、循环内零 I/O」;WebSocket 连接拆bindSocketLifecycle/attachSocketEvents;快照等待拆waitForSnapshot;静默收尾统一endQuietly/destroyQuietly/closeQuietlyroutes.js请求体读取改for await异步迭代(IncomingMessage 原生可迭代)- 预览静态服务器
serve.mjs改fs/promises(stat + readFile),请求处理拆handleRequest client.js设置分区注册拆injectSection、CSS 行高/字重提为CSS_LINE_HEIGHT/CSS_TITLE_WEIGHT常量index.js工具注册拆registerTools、列表格式化拆formatSessionList- 预览生成器 CSS 字号/白色通道提
PREVIEW_LINE_HEIGHT/CSS_WHITE_CHANNEL常量
lib/client.js加入.auditignore(单文件入口架构的固有行数/嵌套不入审)- 功能回归:语法全过、
test-client.mjs12 项断言全绿、CLI 冒烟(check/import 转码/覆盖备份/list/预览服务器 200/404)通过
1.0.2
dsh-session-migrate 1.0.2
转换内置全工作区去重:同一会话 id 已存在于其它工作区(不同 cwd 目录)时,提示并把旧份整体移出到 session-backups/(可恢复,非物理删除),再转换到本次目标工作区,杜绝「一个会话两次恢复到不同工作区」的重复副本。CLI import 与 /convert 均生效,前端转换提示同步。
- 修复 zip 导出包导入后不可列/不可转(导入时即解包成标准目录形式)
- 转换跨工作区去重(同 id 已存在其它工作区 → 旧份移出备份后重新转换)
- npm 打包资产:dsh-session-migrate-1.0.2.tgz