Skip to content

Releases

v1.0.4

Choose a tag to compare

@EIGHTfs EIGHTfs released this 21 Sep 14:43

1.0.4 — 内容级缺陷扫描与修复 + 代码质量优化

新增:会话内容级缺陷扫描与修复

对照 dsh-session-migration-repair(zzdhsxk, MIT)补齐内容级能力,与既有「投放」链路互补:

  • engine/repair.js:检测并修复五类导致迁移链拒绝的缺陷
    • tool-call-chunks 分片行空 id/name(旧版只在首行写 id)→ v0→v1 拒绝
    • assistant/message 与 tool/call 空 name
    • block-end tool-call 块空 id/name → v2→v3 拒绝
    • tool/call arguments 与消息声明不一致(以不含 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 共用新抽 readSessionText
  • validate.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

Choose a tag to compare

@EIGHTfs EIGHTfs released this 19 Sep 19:59

1.0.3 — 全量审计清理

  • 全量审计清理(独立 CLI git-sluice 口径):warning 121 → 19(加入 .auditignore 后 10),评分 77.5 → 83.5 → 86.3/A
  • 引擎与 HTTP 侧 I/O 隐患清除:
    • follow.js token 探测改「readdirSync 一次性收进内存集合、循环内零 I/O」;WebSocket 连接拆 bindSocketLifecycle/attachSocketEvents;快照等待拆 waitForSnapshot;静默收尾统一 endQuietly/destroyQuietly/closeQuietly
    • routes.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.mjs 12 项断言全绿、CLI 冒烟(check/import 转码/覆盖备份/list/预览服务器 200/404)通过

1.0.2

Choose a tag to compare

@EIGHTfs EIGHTfs released this 19 Sep 18:27

dsh-session-migrate 1.0.2

转换内置全工作区去重:同一会话 id 已存在于其它工作区(不同 cwd 目录)时,提示并把旧份整体移出到 session-backups/(可恢复,非物理删除),再转换到本次目标工作区,杜绝「一个会话两次恢复到不同工作区」的重复副本。CLI import 与 /convert 均生效,前端转换提示同步。

  • 修复 zip 导出包导入后不可列/不可转(导入时即解包成标准目录形式)
  • 转换跨工作区去重(同 id 已存在其它工作区 → 旧份移出备份后重新转换)
  • npm 打包资产:dsh-session-migrate-1.0.2.tgz