Releases: AliceJump/ok-script-toolkit
Releases · AliceJump/ok-script-toolkit
Release list
v1.11.0
What's Changed
- fix(thumbnails): 重启不再清空缩略图缓存,worker 命中磁盘缓存 by @AliceJump in #3
- feat: refactor enum config UI and save-to-assets logic by @AliceJump in #2
- chore: 补齐忽略规则(git/打包两侧),补齐 VS Code 任务与调试配置 by @AliceJump in #4
Full Changelog: v1.10.0...v1.11.0
v1.10.0
v1.9.0
v1.8.0
下载 / Downloads
| 平台 | 文件 |
|---|---|
| VS Code | ok-script-toolkit-1.8.0.vsix |
| JetBrains | ok-script-toolkit-jetbrains-1.8.0.zip |
🧩 JetBrains 插件 / JetBrains Plugin
修复 / Fixes
- 配置沙箱失效,执行器会直接写目标项目的
configs/—— 打包脚本解压到临时目录后复用了旧副本(版本戳取自 JAR 资源的lastModified,实测恒为 0),导致插件升级后仍跑旧脚本。实测:执行器运行期间目标项目configs/被写入,沙箱目录纹丝不动。现在每次调用都覆盖解压。 - 新建任务只显示类名、没有参数表单,且刷新无法恢复 —— schema 缓存命中时直接
return,跳过了全量采集,新任务只能拿到一个"只有类名"的桩。必须手删缓存才能恢复。现在无条件后台采集。 - 同步技能完全无法编辑 —— 原来"同步技能一律禁止更新"且"编辑按钮只对自定义技能显示",同一个技能在 VS Code 可调、在 JetBrains 连入口都没有。现在只锁 5 个标识字段,数值与效果照常可改,编辑入口无条件开放(与 VS Code 对齐)。
- 显式 JSON
null被读成字符串"null"—— Jackson 的NullNode.asText()返回字面量字符串;技能element等字段会把null显示成 "null"。读取与写入路径现已统一处理。 - 技能 ID 改名静默无效 —— 编辑对话框的 ID 输入框改了不生效;现在支持改名并做重名检查。
- 项目根解析不一致 —— 插件里原有三份实现,其中服务层那份忽略
okScriptProjectPath设置,导致"界面按设置判定找到项目、脚本却去工作区根找config.py"。 - 配置持久化的读-改-写竞态 —— 并发保存会静默丢失用户勾选;顺带补齐参数白名单(原先全量投递)。
- 原子写备份留在项目目录里 —— 改为系统临时目录,且每次使用独占文件名。
改进 / Improvements
- 任务侧边栏:任务名不再显示类型图标(那个图标看着能点、实际不能点);左列按任务类型给出真正可点的控件 —— 触发任务是复选框、一次性任务是运行按钮;并删除了与「启动执行器」使用同一图标的冗余工具栏按钮。
🎨 VS Code 扩展 / VS Code Extension
修复 / Fixes
- Webview 安全加固 —— 收敛 nonce / 转义边界,修复 CSP 弱随机数。
- 本地化 —— 修正 Python 生成时的转义问题,清理死键,并加入多语言键对等校验。
npm run release完全失效 —— 它指向一个从未存在的文件,一执行就MODULE_NOT_FOUND;同时修复 Git Bash 下的路径错误。- 打包产物 —— 测试脚本移出
python/,不再打进 VSIX。
🔧 执行器(两端共用)/ Executor (shared)
- 现在会加载目标项目自带的启动补丁(
src/patches/startup_patches.py)。
此前执行器从不调用这个入口,于是同一份项目代码"自己跑没事、用插件跑就崩"。
典型症状:ok 库win32_gdi在 import 时污染全局user32.GetCursorPos.argtypes,
任务在Mouse.py抛ctypes.ArgumentError: expected LP_POINT instance instead of pointer to POINT
并中断 —— 项目的win32_gdi_point_patch正是修它的。现在执行器会按项目main.py
的顺序把同一套补丁装上。 - 不再替框架处理游戏启动参数(
windows.args),交给需要它的项目自己的补丁。 - 删除已无调用方的
run_task.py(它同时缺少配置沙箱保护)。
🧪 内部 / Internal
- 子仓测试:测试文件 15 → 25 个,用例 131 → 170 条(全绿、零编译警告)。
- 按仓库约定新增若干"看起来像 UI、其实是数据约定"的纯对象并配单测:
SyncedSkillPolicy、TaskConfigMerge、TaskParamWhitelist、TaskSchemaMerge、
ProjectDirResolution、JsonNodeExt、ThumbGridPolicy、TaskActionRenderer。 - CI:钉住 runner 版本、升级 action、堵住打包泄漏。
Full Changelog: v1.7.1...v1.8.0