v1.0.7
以下是 v1.0.6 → v1.0.7 的完整更新日志:
凌霄剑域 v1.0.7 更新日志
★ 新功能
1. 剑阁可交互 Canvas 系统
全新的「成品 ↔ 源码」双向映射系统,用户可直接在 Canvas 上选区改写产物源码:
- Canvas 契约层 (
src/contracts/types/Canvas.ts):定义SourceProvenance(spec / script 双层锚点)、CanvasSourceMap、CanvasVersion(版本栈)、SelectionIntent、CanvasComment五大数据结构 - 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)
- 问题:
OCRTool和local_vision_fallback各自用脆弱逻辑解析 tessdata 目录,嵌套布局落空后 tesseract.js 退回 CDN 下载,隔离/弱网环境 15s 超时 - 修复:
tesseractResolver.ts统一解析——多级向上查找 + 环境变量覆盖 +require.resolve精确定位本地 wasm/worker,彻底切断 CDN 下载路径,支持完全离线
3. 工具 Schema 校验失败(P1)
- 问题:zod v4 的
toJSONSchema把带.default()的字段算进required,导致structured_patch的replace_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_task和update_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 钩子调用restoreTerminalStateFileRead.ts:集成 Canvas 预览路由
变更统计:56 文件变更,+5,533 行 / -5,111 行