Skip to content

v1.0.7

Choose a tag to compare

@github-actions github-actions released this 27 Jun 15:36

以下是 v1.0.6 → v1.0.7 的完整更新日志:


凌霄剑域 v1.0.7 更新日志

★ 新功能

1. 剑阁可交互 Canvas 系统

全新的「成品 ↔ 源码」双向映射系统,用户可直接在 Canvas 上选区改写产物源码:

  • Canvas 契约层 (src/contracts/types/Canvas.ts):定义 SourceProvenance(spec / script 双层锚点)、CanvasSourceMapCanvasVersion(版本栈)、SelectionIntentCanvasComment 五大数据结构
  • CanvasStore 持久化 (src/core/canvas/CanvasStore.ts):纯磁盘 store,每份产物在 .lingxiao/canvas/<artifactId>/ 下持久化 sourcemap / versions / comments,原子写入 + 版本快照
  • Canvas REST API (src/web-server/CanvasRoutes.ts):提交选区意图回注 Leader、获取版本栈、推送批注
  • 前端工作台 (JiangeCanvas.tsx):取代旧 WorkbenchSidePanel 的 10-tab 体系,整个剑阁就是一个 Canvas——左栏文件树 + 右栏 Canvas 舞台
  • 前端组件CanvasCommentList(批注列表)、CanvasHtmlPreview(HTML 预览)、CanvasIntentPopup(选区意图弹窗)、CanvasVersionStack(版本栈回溯)
  • SSE 事件canvas:version_pushed 实时通知前端版本入栈

2. Office PDF 渲染器

  • OfficePdfRenderer (OfficePdfRenderer.ts):用 LibreOffice headless 将 PPTX/DOCX/XLSX 转 PDF,供预览器复用现有 PDF iframe 做真实版式渲染
  • 基于源文件路径+mtime+size 的磁盘缓存,并发请求去重
  • LibreOffice 不可用时优雅回退到结构预览

3. HTML 溯源标记注入

  • provenance.ts (office/html/provenance.ts):HTML 装配时给每个可交互单元注入 data-node-id / data-anchor / data-spec-path,实现选区到源码的精确反查

4. 磁盘清理命令

  • lingxiao clean (src/commands/cleanupDisk.ts):一键清理 ~/.lingxiao 下 checkpoint 残留的 tmp_pack_* 死文件(每个可达 10GB+)和 shadow git 仓库
  • 默认 dry-run 只扫描报告,--apply 真正删除,--all 连 checkpoint 历史一起回收

5. Worker 内存温控

  • Worker 进程自报 RSS(通过 heartbeat),Leader 据此做内存温控
  • WORKER_MAX_RSS_MB(默认 2048MB)时 kill 并走可恢复重派,防止内存泄漏拖垮系统

6. Office 模式审美升级

  • 新增意图澄清前置:模糊需求(只说"做个PPT"未说场景/受众/风格)强制先 ask_user 澄清 6 个维度
  • 新增内部反思激活:动手前先从 A-J 风格光谱选定主风格 + 字体决策 + 密度决策 + 廉价信号预检
  • 新增 HTML 顶级渲染路线:HTML/CSS 设计 → Playwright 渲染高清 PNG → 嵌入 PPTX/PDF,突破 pptxgenjs 审美上限
  • 字体按场景区分:庄重/学术→衬线,商业路演→无衬线,活力/教学→灵动字体

✦ Bug 修复

1. 终端状态残留(P0)

  • 问题:TUI 启用 mouse tracking + bracketed paste + 隐藏光标后,异常退出(crash/SIGINT/强退)不还原,导致用户终端鼠标动作打出 ^[[<65;70;25M 这类 SGR 序列
  • 修复terminalRestore.ts 收敛为单一幂等函数,挂到所有退出路径(process.on('exit')),best-effort 绝不抛错

2. OCR 初始化超时(P1)

  • 问题OCRToollocal_vision_fallback 各自用脆弱逻辑解析 tessdata 目录,嵌套布局落空后 tesseract.js 退回 CDN 下载,隔离/弱网环境 15s 超时
  • 修复tesseractResolver.ts 统一解析——多级向上查找 + 环境变量覆盖 + require.resolve 精确定位本地 wasm/worker,彻底切断 CDN 下载路径,支持完全离线

3. 工具 Schema 校验失败(P1)

  • 问题:zod v4 的 toJSONSchema 把带 .default() 的字段算进 required,导致 structured_patchreplace_all 等可选字段被误标 required,LLM 不带该字段时报 Invalid input
  • 修复SchemaUtils.ts 递归遍历 schema 树,stripDefaultedFromRequired 把 default 字段从 required 中剔除;Registry.ts 同步修复 Zod union 错误展开为可读描述

4. 任务 ID 依赖解析容错

  • 问题:LLM 传入 blocked_by 时可能产生 ["[\"T-17\"]"] 这类字符串化 JSON 嵌套,导致依赖解析失败
  • 修复normalizeTaskIdList 递归展开嵌套数组/JSON 字符串/标量,create_taskupdate_task 共用

◇ 更新

NTELLECT-3、Gemma 4 31B IT、Qwen3 235B TEE、Mistral Nemo TEE、Llama-3.3-70B、gpt-oss-120b 等

前端重构

  • 删除:WorkbenchSidePanel(1914 行)、BrowserDock(515 行)、BrowserScreencastCanvas(251 行)、FileCanvasCompact(251 行)、OfficeCanvas(711 行)
  • 新增:JiangeCanvas 统一工作台 + canvasArtifactStore 状态管理
  • ArtifactView 支持 canvasMode,内置版本栈 + 批注

其他

  • server.ts:注册 CanvasRoutes + submitIntentToLeader 回调(选区意图自动转 prompt 注入 Leader)
  • EventEmitter:新增 canvas:version_pushed 事件类型
  • RuntimeGuards:exit 钩子调用 restoreTerminalState
  • FileRead.ts:集成 Canvas 预览路由

变更统计:56 文件变更,+5,533 行 / -5,111 行