dsh-plugin-workbench 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,71 @@
4
4
  格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),
5
5
  版本号遵循 [Semantic Versioning](https://semver.org/lang/zh-CN/)。
6
6
 
7
+ ## [0.0.6] - 2026-08-19
8
+
9
+ ### Added
10
+
11
+ - **在资源管理器打开**:右键菜单新增「在资源管理器打开」
12
+ (`menu.revealInExplorer`,同 VS Code 的 Reveal in File Explorer),经
13
+ loopback RPC 的 `reveal` 端点把文件/文件夹定位到系统文件管理器——
14
+ 文件在所在文件夹中被选中(Windows `explorer /select,`、macOS `open -R`),
15
+ 文件夹直接打开(`explorer <dir>` / `open <dir>`);WSL 先经 `wslpath -w`
16
+ 转译再交给 Windows 桌面,桌面 Linux 用 `xdg-open`(文件 → 父目录);
17
+ 路径仍先经 `ctx.fs.resolve → stat`(沙箱一致的路径解析)再执行
18
+ - **Markdown 渲染预览**:打开 `.md` 文件默认渲染(markdown-it,`html: false`
19
+ 转义原始 HTML,代码块复用已注册的 highlight.js 语言高亮),标签栏按钮
20
+ 一键切换回可编辑源码视图,再次点击切回渲染;相对路径图片自动重写到同源
21
+ 字节路由 `/dsh-plugin-files/raw/<path>`,README 插图可直接显示;
22
+ 超过 256KB 的 md 默认进源码视图并提示
23
+ - **打开文件磁盘变更检测**:宿主按标签集合对每个文件所在目录做 `fs.watch`
24
+ (父目录监听可存活编辑器原子重命名),事件按路径去抖后经同源 SSE 路由
25
+ `/dsh-plugin-files/events` 推送;干净的标签页自动重读同步,带未保存编辑的
26
+ 标签页保留草稿并在标签上显示「⟳」徽标(点击重新加载、放弃未保存编辑);
27
+ 插件自身保存会在短窗口内抑制回波,避免保存被当成外部变更
28
+ - **批量删除**:多选(Ctrl/⌘+点击、Ctrl+A)后,右键菜单显示「删除选中的
29
+ N 项」,Delete 键同样生效;先删子项再删父项,已删除文件夹下的项自动跳过
30
+ - **拖拽移动**:把文件/文件夹(含整个多选)拖到任意目录行上松手即移动;
31
+ 拖到树空白区域 = 移入当前目录;目标目录高亮描边,文件夹拖进自身或自己
32
+ 子目录自动忽略,拖到所在目录本身为无操作
33
+ - **操作可撤销**:右上角「↩」按钮或 Ctrl+Z 撤销最近的操作(每个工作区
34
+ 独立、上限 30 条),覆盖:复制(撤销删除副本)、剪切/拖拽移动(撤销移回
35
+ 原位并重定向已打开标签)、重命名(撤销改名)、新建(撤销移除)、删除。
36
+ 删除改为「可撤销删除」:把项目瞬移(重命名)进其旁的隐藏 `.dsh-trash`
37
+ 文件夹(不复制字节),撤销即移回原位;撤销栈溢出时自动清空被挤出条目的
38
+ 回收站内容,回收站文件夹在树中隐藏显示
39
+
40
+ ## [0.0.5] - 2026-08-17
41
+
42
+ ### Added
43
+
44
+ - **图片预览**:打开 png/jpg/jpeg/gif/webp/avif/bmp/ico/svg 直接在预览栏渲染,
45
+ 不再显示「二进制文件」提示。字节经同源路由 `/dsh-plugin-files/raw/<path>`
46
+ 提供:宿主先经 `ctx.fs.resolve → stat`(沙箱一致的路径解析)再读字节,
47
+ 仅限图片扩展名、20MB 上限;加载失败显示内联提示,切换标签自动复位
48
+ - **编辑器行号栏**:左侧逻辑行号(VS Code 风格,软换行下仍按源行编号),
49
+ 与编辑区滚动逐帧锁定对齐;纯文本模式(md/txt/大文件)同样生效
50
+ - **右键菜单(VS Code 风格)**:
51
+ - 文件:打开预览 / 复制路径 / 在系统中打开 / 重命名 / 删除
52
+ - 文件夹:新建文件 / 新建文件夹 / 复制路径 / 在系统中打开 / 刷新 /
53
+ 重命名 / 删除(递归删除带确认)
54
+ - 空白区域:新建文件 / 新建文件夹 / 复制路径 / 刷新
55
+ - 菜单自动夹紧视口;点击外部 / Esc / 窗口失焦自动关闭;操作失败在
56
+ 对应目录行内联红色提示;重命名/删除自动维护已打开的标签页
57
+
58
+ ### Changed
59
+
60
+ - 宿主 RPC 通道新增 `createFile` / `createDir` / `rename` / `delete` 四个
61
+ 端点(node:fs 实现,经 `ctx.fs.resolve` 统一解析;rename 拒绝覆盖已存在
62
+ 目标,delete 按 stat 决定递归);`rpc.handle` 注册改为 effect 包裹,
63
+ HMR/停用循环不再泄漏路由
64
+
65
+ ### Fixed
66
+
67
+ - **右键菜单文字看不清**:maid-atelier 皮肤对 `[role='menu']` 有全局规则,
68
+ 会把菜单文字色劫持为「页面主题」色,而菜单背景跟随「workbench 主题」,
69
+ 两者不一致时文字与背景同色系。菜单颜色现已锁定到 workbench 主题变量
70
+ (`!important`),任何皮肤组合下文字都与背景保持对比
71
+
7
72
  ## [0.0.4] - 2026-08-17
8
73
 
9
74
  ### Fixed
@@ -24,8 +89,6 @@
24
89
  只重渲染受影响的单行(此前每次点击都重渲染整棵文件树);切换工作区时
25
90
  恢复已展开目录改为分批加载
26
91
 
27
- ## [Unreleased]
28
-
29
92
  ## [0.0.3] - 2026-08-16
30
93
 
31
94
  ### Added
package/README.md CHANGED
@@ -1,23 +1,42 @@
1
1
  # dsh-plugin-workbench
2
2
 
3
+ ![npm version](https://img.shields.io/npm/v/dsh-plugin-workbench)
3
4
  ![License](https://img.shields.io/github/license/Pasumao/dsh-plugin-workbench)
4
5
  ![CI](https://img.shields.io/github/actions/workflow/status/Pasumao/dsh-plugin-workbench/ci.yml?branch=main)
5
- ![Node](https://img.shields.io/badge/node-%3E%3D18-339933)
6
6
  ![Stars](https://img.shields.io/github/stars/Pasumao/dsh-plugin-workbench?style=social)
7
- ![AI Assisted](https://img.shields.io/badge/AI-Assisted-8A2BE2)
8
7
 
9
- DSH Web GUI 的 VS Code 风格文件浏览器插件:文件树 + 可编辑代码预览
10
- (语法高亮、标签页),每个工作区独立保存状态。**需要布局补丁**(见下)。
8
+ **能直接改文件的 VS Code 风格工作台**——不是只读预览:文件树 + 可编辑代码预览
9
+ (语法高亮、标签页、行号栏)+ 右键文件操作(新建 / 重命名 / 删除 / 在系统中打开 /
10
+ 在资源管理器打开)+ 图片内联预览,每个工作区独立保存状态。装上之后,DSH 网页就是一个轻量代码编辑器。
11
+
12
+ > ⚠️ 安装后需打一个布局补丁(见下方安装节)。
11
13
 
12
14
  ## 功能
13
15
 
14
16
  - 文件树:懒加载、2 秒自动刷新、每工作区独立展开状态
15
17
  - 文件图标:常见格式显示着色徽章(代码)/ emoji(图片、音视频、压缩包等),目录展开/收起区分
16
18
  - 可编辑预览:透明 textarea 叠加语法高亮,`Ctrl+S`/`Cmd+S` 保存;
17
- md/.txt 等散文格式与超大代码文件自动降级为纯文本编辑,加载快、不卡界面
19
+ md 默认渲染预览(源码/渲染一键切换),.txt 等散文格式与超大代码文件
20
+ 自动降级为纯文本编辑,加载快、不卡界面
21
+ - **磁盘变更同步**:打开的文件被外部修改(如 agent 或其它编辑器保存)时,
22
+ 干净标签页自动重读,带未保存编辑的标签页显示「⟳」徽标(点击重新加载)
23
+ - **行号栏**:编辑器左侧逻辑行号,与文本滚动锁定对齐(纯文本/高亮模式均生效)
24
+ - **图片预览**:png/jpg/gif/webp/avif/svg 等直接内联渲染(同源字节路由,20MB 上限)
25
+ - **右键菜单**(VS Code 风格):文件/文件夹/空白区域均可右键——
26
+ 新建文件、新建文件夹、重命名、删除(递归带确认)、复制路径、刷新、在系统中打开、
27
+ 在资源管理器打开(文件在所在文件夹中被选中,文件夹直接打开;
28
+ Windows `explorer` / macOS `open`,WSL 自动转译)
29
+ - **在资源管理器打开**:右键菜单项(同 VS Code 的 Reveal in File Explorer),
30
+ 把文件/文件夹定位到系统文件管理器(Windows 资源管理器、macOS Finder 等),
31
+ 经 loopback RPC 的 `reveal` 端点执行
18
32
  - 自动换行:标签栏一键切换软换行(仅显示层换行,不改动文件内容)或长行横向滚动,偏好持久化
19
33
  - 标签页:多文件、拖拽排序、收起/弹出;亮暗主题一键切换
20
- - 语法高亮:highlight.js(JS/TS、Python、JSON、HTML、CSS、Shell 等;Markdown 以纯文本显示)
34
+ - 语法高亮:highlight.js(JS/TS、Python、JSON、HTML、CSS、Shell 等;
35
+ Markdown 默认渲染预览,可切源码)
36
+ - Markdown 渲染:markdown-it(原始 HTML 一律转义不执行),相对路径图片经
37
+ 同源路由 `/dsh-plugin-files/raw/<path>` 内联显示
38
+ - 磁盘变更:宿主对打开文件做 `fs.watch`(监听父目录,可存活原子重命名),
39
+ 变更经 SSE `/dsh-plugin-files/events` 推送,干净标签自动同步
21
40
 
22
41
  ## 安装
23
42
 
@@ -54,7 +73,10 @@ dsh plugin --profile web remove dsh-plugin-workbench
54
73
 
55
74
  ## 说明
56
75
 
57
- - `/dsh-plugin-files` RPC 通道仅限 loopback;写操作显式以 `danger-full-access` 执行
76
+ - `/dsh-plugin-files` RPC 通道仅限 loopback;写操作显式以 `danger-full-access` 执行;
77
+ 右键菜单的新建/重命名/删除同样经该通道(loopback 信任,与编辑器保存一致)
78
+ - 图片预览走同源路由 `/dsh-plugin-files/raw/<path>`:仅响应图片扩展名,
79
+ 先经 `ctx.fs.resolve → stat`(沙箱一致的路径解析)再读取字节,20MB 上限
58
80
  - DSH 升级会覆盖布局 bundle,需重新运行补丁脚本;锚点失效时更新 `scripts/patch-layout.mjs`
59
81
  - 本仓库不包含 DSH 编译产物
60
82