Repository navigation
Releases
Releases · Ezerruier/dsh-matlab-feedback
v0.2.0 — 可选执行:代码暂存(写入命令框,手动回车)
新增“可选执行”通道:把单行 MATLAB 代码写入已打开的命令窗口,但是否执行由你按 Enter 决定。
新功能
matlab_stage_code工具:将一行 MATLAB 代码写入已打开的 Command Window 输入行,从不自动执行;你在 MATLAB 中检查后按 Enter 执行,或按 Esc 丢弃。- 安全校验:拒绝空串、多行、NUL、超过 8000 字符(多行粘贴可能被执行);从不发送 Enter/Return;写入前通过 UI Automation 校验焦点确在命令窗口,写入后读回校验;命令窗口已有未执行文本或无法聚焦时拒绝写入。
- 通道说明:Windows COM(
MATLAB.Application)在本机未注册,且 COM 无法连接已打开的桌面会话、Execute()是立即执行,因此不采用 COM;实际采用“Ctrl+0 聚焦 + 剪贴板 Ctrl+V”的键盘级写入,全程不回车。 - 配套脚本
scripts/matlab-stage-code.ps1(PowerShell 5.1,ASCII-only),输出机器可读 JSON 状态。
变更
- 版本 0.2.0;
files同时包含捕获与暂存两个 PowerShell 脚本。 - README / docs/DESIGN 增加“代码暂存(可选执行)”章节与示意图说明。
- Host 单元测试 27 → 35 条(新增暂存参数校验、argv、JSON 状态解析、错误映射、渲染断言)。
验证
- 真实 Windows 11 + MATLAB R2026a + DPARSF/SPM QC 会话:
matlab_stage_code成功写入disp('...'),命令窗口可见、未执行;随后 Ctrl+Z 撤回恢复空提示符;多行输入被明确拒绝。 - GitHub Actions CI:Node 22 与 Node 24 全部通过。
已知限制
- 暂存会把 MATLAB 窗口切到前台;命令窗口已有未执行输入时会拒绝(避免混入你的文本)。
- 暂存依赖 MATLAB 桌面 Ctrl+0 快捷键与 CEF UI Automation;窗口/快捷键异常时以
focus-failed拒绝,不会盲目粘贴。 - 执行与结果判断由用户完成;Agent 只能在你确认后用只读工具读取输出。
MIT License。详见 README 与 docs/DESIGN.md。
v0.1.0 — MATLAB 实时反馈(首个公开版本)
把 MATLAB 正在显示的 QC 界面(窗口截图)与命令行窗口文本带进 DeepSeek Harness 对话。
功能
matlab_snapshot:抓取所有可见 MATLAB 窗口,截图作为内嵌图片返回,同时给出窗口清单、命令行窗口文本尾部与 warnings/错误摘要。matlab_console:只读命令行窗口文本(lines10–400),不截图、更快。- 输入框左侧「MATLAB 快照」按钮:向输入框插入预置提示词,补充问题后发送。
- 只读捕获:不点击、不键入、不抢焦点、不修改 MATLAB/SPM/DPABI 数据;不需要官方 MATLAB MCP,不支持联网,零第三方依赖。
安装
- 克隆本仓库;
- 在 DeepSeek Harness 中把仓库目录作为 bundle 安装(插件管理器
install_bundle,target 指向本目录); - 工具
matlab_snapshot/matlab_console与输入框按钮即时生效,无需重启。
环境要求
- Windows 10/11,Windows PowerShell 5.1(系统自带);
- MATLAB R2025a 及以上(CEF 桌面才能读取文本;更老版本仅截图);
- DeepSeek Harness 0.2.1-rc 系列(验证版本:0.2.1-rc.3)。
质量验证
- GitHub Actions CI:Node 22/24 语法检查、JSON 校验、27/27 单元测试;
- 真实环境端到端验证:Windows 11 + MATLAB R2026a + DPARSF/SPM QC,只读捕获到窗口截图、QC 控件文本与选中值、命令行日志与 warnings。
已知限制
- 仅 Windows;最小化窗口不截图(仍读取文本);MATLAB 自身会对超长行截断;
- 截图像素包含屏幕内容(可能含研究数据/受试者编号/本地路径),分享前请自行脱敏;
- 单次捕获通常 <1 秒,MATLAB 繁忙时可能数秒,工具超时 30 秒。
MIT License。详见 README 与 docs/DESIGN.md。