yangzexuan 12f9674976 feat: workspace file tree 增强 — 隐藏文件控制、文件监听、公式/PlantUML 渲染
解决了以下问题:

1. 文件树不展示隐藏文件:新增"显示隐藏文件"按钮,默认仅隐藏 .git 目
   录,开启 toggle 后显示全部文件。通过 query 参数 showHidden 从
   前端 store 贯穿到后端 readTree,过滤逻辑改为可切换而非硬编码。

2. 文件树不自动同步文件变化:在 WebSocket 连接建立后对 workDir 启
   动 fs.watch 递归监听,200ms 防抖后通过新增的 file_changed
   ServerMessage 推送到前端。前端 handleFileChanged 收到后自动刷新
   变化文件的父目录树和已打开的预览标签,保持展开状态不变。

3. 手动刷新文件树后展开节点内容丢失:修复 handleRefresh 逻辑,去掉
   invalidateExpandedTreeCache 的破坏性清除,改为先清缓存再并行加
   载所有展开路径,避免展开节点数据被删除后未重新加载。

4. Mermaid 流程图节点文本不显示:DOMPurify 的 svg profile 默认
   过滤 foreignObject 元素(Mermaid 用其渲染节点文本),添加
   ADD_TAGS: ["foreignObject"] 允许通过。

5. 新增 KaTeX 公式渲染:支持行内公式 $...$ 和块级公式 $$...$$,
   在 marked 解析前预处理避免特殊字符被转义。

6. 新增 PlantUML 图表渲染:服务端 POST /api/settings/plantuml/render
   通过本地 plantuml.jar 渲染 SVG,前端设置页面支持配置 jar 路径。
   未配置时回退为语法高亮代码块。

7. 文件预览 Tab 新增刷新按钮:只刷新当前文件内容,不影响文件树。

8. 浏览器模式开发支持:vite.config.ts 添加 proxy 将 /health、/api、
   /ws 代理到后端 127.0.0.1:3456。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 00:51:41 +08:00
..

Claude Code Haha Desktop

基于 Tauri 2 + React 的桌面客户端。

开发

bun install
bun run tauri dev

构建

# macOS (Apple Silicon)
./scripts/build-macos-arm64.sh

# Windows (x64, MSI only)
.\scripts\build-windows-x64.ps1

构建产物位于 build-artifacts/ 目录,文件名会显式包含平台、架构和包类型。

常见问题

macOS 提示"已损坏,无法打开"

xattr -cr /Applications/Claude\ Code\ Haha.app