Repository navigation
Releases: sueccku/dsh-plugin-wps-office-next
Release list
v0.9.0
0.9.0(四个 Skill 重写为任务决策指南 · 批处理结构化状态 · 关闭丢内容等 P0 收口 · 嵌套参数校验)
建议升级。 本版不新增也不删除广告面工具(仍是 95 / 270),变化在「模型怎么用工具」和
「失败时是否如实」:四个 Skill 重写成任务决策指南 + 按需参考;wps_batch有了stopOnError与结构化
状态;未落盘文档的保存关闭不再静默丢内容(P0);租约不再被心跳误杀、孤儿回收先核对实例身份;
参数校验补上嵌套层(FIXES 115)。另有 D1 真机评测(12 场景 × 3 轮 × 两臂,正确率打平、无统计显著性)
与文档/门禁整理。逐条证据见 docs/FIXES.md 第 115、116 条。
补上的能力
- 四个 Skill 重写:
wps-office-next(共享执行协议:路由 / 目标 / 保存 / 验证 / 失败恢复,141 行)与
wps-excel/wps-word/wps-ppt(应用决策流程,107 / 111 / 120 行)改为任务决策指南;删掉手写的
广告状态、历史补丁叙述与工具清单,细节移到按需参考references/(6 份)+recipes/(5 份)。
reference.md改为「完整目录 + 任务分组索引」。生成器不再往SKILL.md注入工具清单,新增
gen-skill-tools --check只读门禁,spec/skill-tool-groups.json硬校验归类;新增
test/skill-quality.test.mjs(123 项)守住引用可达与示例参数。 wps_batch结构化:新增stopOnError;整体返回
{count, requested, succeeded, failed, status, stopOnError, stoppedAt, results[]}(status∈
completed / partial / failed),逐项带index,失败项错误不截断。整批success语义保持兼容
(只表示「批处理跑完了」)。- 目标身份可读回(仍无 documentId):Excel 增加
workbookPath;PPT 增加演示名称/路径与画布
slideWidth/slideHeight(磅)+slideWidthPx/HeightPx(像素),并写进工具输出 —— 桥有、handler 不打印
等于能力对模型不存在。 - schema 与真实接受类型对齐:
wps_excel_open_workbook补readOnly/updateLinks;
wps_excel_set_print_area补sheet;wps_word_set_font.range补"all";改正set_slide_size
描述里磅/像素混用。 - 客户端按字节收帧:MCP 客户端用
Utf8LineReader(StringDecoder)替代chunk.toString(),
chunk 边界切开中文不再出现 U+FFFD;换子进程时重置解码状态。 - 嵌套参数递归校验(FIXES 115):
calls[].tool缺失、range.start只给一半、data少一层数组、
range.unit未知键、range.start形状错位,都不再静默执行;错误路径按实参写法给出
(range.start/calls[0].tool)。仍只校验结构(形状 / 未知键 / 必填),枚举与跨参数规则由桥裁决。
用户可见的修复
- 未落盘文档的保存关闭会静默丢内容(P0,已修):
closeWorkbook/closeDocument/
closePresentation在「未落盘 + 有未保存改动 +save=true」时,原来把 save 降级成 false 照常关闭、
只回 warning 且success=true—— 内容被丢弃。现在保留文档打开并返回明确错误与下一步,内容不丢。 - 健康宿主不再被心跳误杀:租约身份核对通过后,不再因心跳停更(原阈值 >120s)把闲置宿主判过期、
被新会话杀掉;心跳只作为拒绝文案里的诊断信息。 - 孤儿回收先核对实例身份:归属记录升级到
version: 2,带类名 / 安装目录 / 窗口句柄 / 当时打开的文件
清单,回收前逐项核对,身份不符或出现记录外文件一律不回收;旧记录向后兼容。顺带修掉记录「UTF-8 写出、
ANSI 读回」导致中文文件名乱码、身份永不相等的问题。 - 横向页纸张读数不再误导:WPS 对横向页可能把
PaperSize读成未命名代码(如41),桥现在统一带解释
(「41(横向纸张代码)」),getPageSetup/setPageSetup共用,避免模型以为纸张被改坏、反复排查。 save_as缺目录的错误可直接行动:输出目录不存在时直接回「输出目录不存在:<路径> + 下一步」,
不再只回一句「文档保存失败」;不会替调用方创建目录。doctor.mjs误报:用 DSH 自带 Node 跑自检时不再误报「没找到自带运行时」。
工程与文档
- 门禁收成单一入口:
npm run gates:{docs,verify,code,bridge,package,release}(实现在
scripts/run-gates.mjs),CI 只调gates:ci;新增 Markdown 相对链接检查、版本号 / README 回退 tag
对账;docs/FIXES.md顶部加生成式索引;发布记录拆到 docs/release-records.md。 - 评测脚手架:
test/skilleval/提供 15 个固定场景的可执行脚手架(夹具生成 + 确定性断言 + dry-run)、
受控故障注入(默认完全惰性)、headless 探针(会话日志解码 + 真实 token 指标)。D1 扩到 12 场景 ×
3 轮 × 两臂,两臂正确率均 35/36、无统计显著性(不能据此声称新 Skill 更省 token,也不能据此删减
验证步骤)。 - 文档整理:删 21 份已完成/一次性文档与 10 个模板 README;场景卡归档;
tool-roadmap判据折叠进
HANDOFF;AGENTS §6 写清「不改历史」的边界(允许更正注 / 修悬空链接 / 补状态)。README 加
dsh-plugin.org 收录徽章。 - 发版前修掉一个新校验引出的回归(FIXES 116):嵌套未知键校验(FIXES 115)上线后,
wps_excel_set_cell_format的format.numberFormat因 schema 漏声明被判成未知参数、整组格式失效;
已补声明(广告面字节 55,346 → 55,510),单文件 25/25 与整轮复验均全绿。
发版前测试(AGENTS.md §2:用户选择「整轮」)
- 真机整轮:2026-10-18 跑满 64 个文件 / 1777 项,全绿(
TOTAL PASS=1777 FAIL=0 FILES=64 REAPED=343 ORPHANS_LEFT=0、ALL TEST FILES GREEN、BASELINE OK)。首轮唯一红文件
cell-format.test.mjs暴露了 FIXES 116,修复后单文件 25/25、整轮重跑全绿。 - 静态门禁:
npm run gates:release19 步全绿 —— tsc +mcp/dist对账、宿主与四个生成器重建对账、
lint(含 Markdown 链接检查)、verify --static23、参数契约 259 对 0 失效、spec 复现 16、
test:static17/17、verify:package11/11、文档数字对账 20 项。
v0.8.0(Word 分节族三件套 · 邮件合并从「假成功」重写 · 广告面 84 → 95)
建议升级,尤其是用 WPS 文字做分节排版、长文档与批量通知的场景。本版收口了三个「看着成功、其实没写进去」的 Word 缺陷,补齐分节族三件套与 WO-001 的四个 Word 缺口,并按六轮真机走查的调用数据把广告面从 84 个扩到 95 个。
安装:
dsh plugin --profile <profile> add dsh-plugin-wps-office-next # 从 npm 装
dsh plugin --profile <profile> add github:sueccku/dsh-plugin-wps-office-next#v0.8.0 # 从 GitHub 装补上的能力
- Word 分节族三件套(FIXES 113)
wps_word_set_page_setup新增section(只对第几节生效)与paperSizewps_word_insert_page_numbers新增numberStyle(阿拉伯 / 罗马 / 字母)与restartSection(本节从 1 重新开始 / 续前节)wps_word_set_table_format新增headerRepeat(第 1 行设为跨页重复的标题行)PageNumbers.StartingNumber在 WPS 里是只读的,「从第 N 页起」写不进去 —— 这类请求会如实报失败,不假装成功
- WO-001 的四个 Word 缺口(FIXES 109):新增
wps_word_get_page_setup、wps_word_get_header_footer;wps_word_insert_page_numbers {includeTotal:true}追加NUMPAGES域得到「第 X 页 / 共 Y 页」;wps_word_generate_toc {action:"insert"|"update"}可只刷新已有目录。wps_word_set_page_setup从隐藏面提到广告面(修掉「读得到、写要绕wps_call」的反向不对称) - 广告面 84 → 95(FIXES 112):按 S1/S4/S6 六轮真机走查轨迹取证(准入阈值 =「跨 ≥2 轮出现,或单轮被调用 ≥5 次」)。新上广告面 11 个工具:
wps_excel_clear_range/copy_range/delete_rows/evaluate_formula/freeze_panes/set_column_width/set_sheet_appearance/unmerge_cells、wps_word_get_page_setup/replace_range/set_page_setup。注册工具 268 → 270,桥 action 263 → 265
用户可见的修复
- 「整篇转横向」本来是坏的(静默,FIXES 113):
setPageSetup原来写$doc.PageSetup且方向先于纸张,这个顺序下设置纸张会把横向重置回纵向,接口却回success。现在先设纸张、再设方向 - 邮件合并整条链路此前是假成功(P0,FIXES 110):字段从不落到占位符、母版正文被字段码顶掉,却一路回 success;已重写为「按占位符替换 + 逐行渲染」,新增
splitDir/outputPath,并修掉fileNameField指向不参与替换的列时恒取空(P1) - Word 段落的字符缩进与行距倍数口径错误(FIXES 108)
- 工作表名不存在时不再抛裸 COM 错误(FIXES 111):改为中文诊断(哪本工作簿 / 缺哪张表 / 现有哪几张)
工程与文档
- 静态测试门禁改造:新增
npm run test:static,清单唯一来源scripts/lib/static-tests.mjs,CI 与本地整轮读同一份(此前手写在ci.yml里,新增文件不会自动进 CI) - 本次发版只跑了相关文件(按 AGENTS.md §2 由用户选择范围):
word-*9 文件 303 项、ppt-shape-position15 项、advertised-surface26 项全绿,0 孤儿残留;不需要 WPS 的静态管线 19 步全绿。真机整轮按 AGENTS.md §1 未跑 - 场景与规则入库:
docs/scenarios/的 S1–S7 场景卡与真机走查报告、docs/work-orders/WO-001、项目工作规则AGENTS.md - 死文件清理:删掉 4 个孤儿构建产物
mcp/dist/tools/ppt/data-viz.*、.tmp/与spec-diff.txt;test/.artifacts/只留scenario-s1…s7证据
逐条修复的原因与可复跑的验证方法见 docs/FIXES.md 第 108–113 条;S1–S7 真机走查报告见 docs/scenarios/。
v0.7.0(Excel 窗口不再隐藏 · 状态查询不再替你启动 WPS · 测试/开发环境回收重做)
0.7.0(Excel 窗口不再隐藏 · 状态查询不再替你启动 WPS · 测试/开发环境回收重做)
建议升级,尤其是用 WPS 表格的场景。 0.6.3 之后收到一份用户缺陷报告:插件拉起 WPS 表格后,实例的主窗口
全程Visible=False—— 写入、格式、另存为全都成功,桌面上却什么都看不到。根因是取用应用对象的代码把 Excel
单独排除在「设为可见」之外(Word / PPT 没有这条例外)。本版把它连同同源的「状态查询会替你启动 WPS」一并收口;
另外把测试/开发环境的 WPS 残留回收从「窗口标题」换成 PID 基线 —— 那个永远清不掉的遗留进程是 WPS 自己的云服务
wpscloudsvr,不是测试孤儿。
用户可见的修复
- WPS 表格窗口全程隐藏(严重):调用
wps_excel_create_workbook/wps_excel_open_workbook之后,插件确实创建了
表格实例,写入、格式、另存为也全部生效,但实例的主窗口Visible=False—— 桌面上什么都看不到,工具却一路回成功。
根因是应用对象的取用代码把 Excel 单独排除在「设为可见」之外(Word / PPT 没有这条例外),而Ket.Application
经 COM 激活时默认不显示窗口。现在三种应用一视同仁,创建或打开工作簿后桌面上就能看到 WPS 表格窗口。 - 状态查询会替你启动 WPS:
wps_status现在只报告已经存在的应用实例,不再为了取版本号而顺带把 Word / PPT
拉起来(此前可能凭空多出一个你根本没打算用的应用并常驻后台)。当前没有任何实例时,它会明确说明,而不是去启动一个。 wps_status能看出窗口是否可见:appInfo新增visible字段;实例在运行但主窗口不可见时会附一条 warning,
不必再靠用户自己盯着桌面判断。wps_common_get_app_info只回版本和构建号:桥返回的应用名、真实文件版本、是否有选区、窗口是否可见都被
丢掉了,还留着三行永远不会打印的字段;工具描述里还写着「返回当前打开的文档信息 / 返回运行平台信息」两句它根本
不返回的东西。现在按实际字段逐项回报,描述也照实重写(FIXES 105)。
工程与文档
- 整轮真机回归 1257 项 / 49 个文件全绿;静态门禁(lint、verify、参数契约、宿主产物漂移对账、文档数字对账)全过。
根因与真机 A/B 证据见 docs/FIXES.md 第 104、105 条。 - 测试/开发环境的 WPS 残留回收换了判据(FIXES 106):从「窗口标题为空」改为「PID 基线差集」,并连 WPS 自己的
云服务wpscloudsvr一起收 —— 它是「跑完总剩 1 个进程」的来源(实测它会在一秒内把被杀掉的 worker 重新拉起)。
新增scripts/reap-wps.ps1,单个测试文件或手工排障后可以一键收拾;整轮加-AllWps可把这台机器清回 0 个进程。 orphan-reclaim的「回收成功」判据修正(FIXES 106):它用wps/et/wpp的原始进程数当判据,而 WPS 自己的
云服务在实例退出后仍活着并保住 worker,这条断言在纯净 HEAD 上也一直是红的(worktree 对照确认)。现在按
「本次实例的进程」计数,并补一条更直接的断言:回收后Kwps.Application必须已从 ROT 消失。- 一键 e2e 在带毒环境下假红四条(FIXES 107):从装了插件的 DSH 会话里起终端时,子进程会继承指向已卸载副本的
WPS_OFFICE_MCP_ENTRY/WPS_OFFICE_HOST_SCRIPT,plugin.js的「显式设置优先」让这个坏值赢了,MCP 工具面整个为空;
现在e2e.mjs自己把这两个变量从子进程环境里剔掉。与 FIXES 87 对run-tests.ps1的处置同源。 - 契约管线整跑;顺带修掉一处既有漂移:
docs/tool-coverage.md里wps_word_insert_text的覆盖文件数与 HEAD
的测试输入已经对不上(在纯净 HEAD worktree 上重生成同样会变),本次一并重新生成。
v0.6.3
0.6.3(六个「假成功 / 存不住」的收口 · 参数名写错会响亮报错 · 测试证明力补强)
建议升级。 0.6.2 之后又抓到 6 个真缺陷,其中 3 个属于「回成功但其实没生效」或「设置存不住」——
这类问题在 0.6.2 里是重灾区,本版继续收口,并且把「参数名写错」这条系统性的静默失效一并堵上。
用户可见的修复
wps_excel_set_border什么都不做,却回「边框设置成功」(严重):工具自己的 schema 里写的是outline,
而桥只认outside—— 传outline时两边都不匹配、循环一次都不跑,然后照回成功。
实测设置前后单元格的Borders.LineStyle都是-4142(无边框)。现在两个名字都收,认不出的位置响亮拒绝。- 打印设置存不住:设了
zoom = 90%,工具回报也是 90%,但存盘后的文件里没有缩放,重新打开就是 100%。
两个独立成因:① 设zoom时没清FitToPages(互斥只实现了一半);②reset_page_breaks会连缩放一起重置。
两个都已修,并以「以磁盘文件为准」的断言钉住。 - 参数名写错会被静默忽略(系统性,跨全部 268 个工具):以前
wps_excel_text_to_columns { sep: "," }
不报错、按默认分隔符执行,回报还写着自己传的那个值。现在响亮拒绝,并列出该工具的全部参数名,
拼写接近时还会提示「是不是想传 delimiter?」。 - Word 与 Excel 的批注预览不一致:同一个
impact.preview字段,Word 的带结尾段落标记、Excel 的不带。已统一。 wps_ppt_insert_ppt_image不回形状名:桥本来就返回了名字,工具层却读了一个桥从不返回的字段,
于是「图片索引」那行从来没打印过,而名字被丢掉,replace_ppt_image(按名定位)也就链不起来。现在回传形状名称。- 会话退出可能挂起数小时(严重):宿主先宣告「我可用」、之后才做孤儿回收,而回收里全是对遗留 WPS 的
无超时 COM 调用;遗留实例一旦卡住,客户端在「可用」之后发的第一个请求就永远得不到响应。
已把「可用」改到回收之后。param-contract那次 2 小时挂起就是这条(详见 docs/FIXES.md 102)。 - Word 插入样式会污染上一段(严重):带
style插入文本时,样式被施加到了前一段上。已修。 - 图表导出找不到图表时的报错无法据以恢复:现在会列出已有的图表名,并且名字/序号都收。
- Word 段落格式:
range传{start,end}以前被静默忽略(改错位置却回成功);非法alignment被静默改成左对齐;
一个属性都不给也回「已设置」。三种都改为响亮拒绝。 - Excel 公式错误值(
#DIV/0!等)以前以 CVErr 负数返回且success: true,会被当成「计算结果」。现在翻成可读错误。
工程与文档
- 测试 1,076 → 1,253 项 / 49 个文件。新增共享核对面
test/lib/oracle.mjs:
断言改为以磁盘产物为准(openpyxl 读 xlsx、python-docx 读 docx、直读 OOXML part、裸 COM 读真值),
不再只验证工具自己的回读文案。本轮挖出的每个真缺陷都出自「只断言调用没报错」的那类断言。 - 第 3 批测试补强按「破坏力 × 调用频次」逐个复核 40 个测试文件:26 个补真值核对、14 个判定无缺口。
- 新增
docs/bug-hunt-orders.md(工单与陷阱清单)与docs/pending-bugs.md(证据记录)。
v0.6.2(假成功与数据破坏收口 · 广告面重排 84 · 文档数字进 CI 对账)
建议直接升到这一版。 0.6.1 里已知有两类问题:格式类工具谎报成功、以及 Word 替换越界会删数据。
数据与结果正确性(来自用户报告,FIXES 86)
wps_word_replace_range越界会静默删数据(严重):范围超出文档时以前按"文档能到哪就改到哪"处理,
于是"替换第 3 段的第 5-80 个字符"这种请求会把后面所有段落吞掉。现在越界直接报错,并告诉你文档有多长、
下一步该用什么坐标;删除超过 1 个段落标记需要显式confirm。- 格式类工具"报成功但没生效":按范围设字体、应用样式、设段落格式等改为写入后读回,对不上就出 warning;
失败信息统一带"动作 / 下一步",不再只说一句 COM 报错。 wps_word_insert_text:style现在作用在刚插入的那段上;new_paragraph生成的是真段落标记。
假成功清理(FIXES 88 / 89 / 90)
- 英文样式名可用:
Heading 1→标题 1、Normal→正文等 15 个别名,失败时会列出可用的样式名。 set_active_target校验失败不再回success: true。- 12 个"回 success 但结果不对"的缺陷(把 71 个只有最弱断言的工具补成真场景断言时挖出来的):
- Excel:
get_selection读错字段(行数显示 undefined)、text_to_columns必抛错; - Word:
generate_toc参数多传 2 个 → 目录从来建不出来却回成功; - PPT:
get_slide_master/get_table_cell字段名错位、set_slide_title在空白版式上静默不写、
set_slide_layout只认英文键、图表数据与动画顺序、set_font_color、beautify崩溃等。
- Excel:
- 封面/标题页的副标题与正文其实从来写不进去:
set_slide_subtitle判的是占位符类型 2(实为 4)、
set_slide_content判 7(实为 2);add_slide与set_slide_layout还各用一套版式键名。已修,并附实测的
"版式 × 占位符"对照表(写进 WPS 演示技能)。
工具面(默认档)
- 广告面按真实调用数据重平衡:69 → 84 个工具(schema 38,878 → 46,867 字节,上限 60,000)。
依据是本机 742 次真实工具调用:close_workbook36 次、get_open_documents19 次、export_chart_as_image17 次…
这些以前都要先wps_help查、再wps_call调,现在直接可见。没有移除任何工具。 wps_word_find_replace新增selectFound:查找后把选区定位到命中处,可以接着对"刚找到的那处"施加格式;
默认仍是不动你的光标。wps_word_apply_style的range与set_font统一:{start,end}或"all"。
工程与文档
- 测试从 918 项涨到 1,076 项 / 48 个文件;新增回归覆盖用户报告的全部问题。
- 文档里的数字改为机器生成 + CI 对账(
docs/current-numbers.md):README/HANDOFF 里的工具数、字节数
与测试数从此对不上就会让 CI 变红(历史上这组数字漂过 5 次)。 - 修掉测试环境的一个真隐患:从"已装本插件"的会话里跑测试时,测的其实是上一个发布版的副本。
破坏性变更:无(工具名、参数含义、技能文档调用方式均未变;新增的都是可选参数)。
数字:注册工具 268、广告面 84 / 46,867 字节、桥 action 263、测试 1,076 项 / 48 文件、
包内 296 文件 / 611.9 KB(解包 3.13 MB)。
v0.6.1(上架 npm:修掉 0.6.0 的模块边界缺陷)
0.6.1(修掉 0.6.0 的致命打包缺陷:mcp/package.json 漏发)
0.6.0 在 npm 上是坏的,请直接装 0.6.1。 症状是 MCP server 起不来、所有 WPS 工具全不可用。
-
根因:
mcp/dist是 CommonJS 编译产物,mcp/目录里那份package.json("type": "commonjs"的隐含来源)
是它的模块边界声明 —— 有了它,Node 才不把dist/*.js当成 ESM。0.6.0 把files从整个mcp目录改成
mcp/dist+mcp/scripts时,把这个文件漏在了包外,于是mcp/dist/index.js继承了根package.json的
"type": "module",一启动就抛:ReferenceError: exports is not defined in ES module scope This file is being treated as an ES module because it has a '.js' file extension and '.../node_modules/dsh-plugin-wps-office-next/package.json' contains "type": "module". -
修复:
files加回mcp/package.json(288 个文件)。验证方式也换了:不再只看文件在不在,而是
真的把 MCP server 拉起来做一次 JSON-RPC 握手并调用wps_status—— 握手成功、广告 69 个工具、
connected: true(真实 WPS 12.1.0.28488)才算过。这条已写进docs/release-checklist.md§3。 -
这一版还包含 0.6.0 的全部内容:npm 上架、载荷从 76.64 MB 瘦到 3.03 MB、
publishConfig.registry、
os/cpu挪到顶层。
破坏性变更:无(工具名、参数、行为、技能文档均未变)。
数字:注册工具 268、广告面 69 / 38,878 字节、桥 action 263、包内 288 文件 / 3.03 MB。
v0.5.4 — 能结束放映、能设圆角,长动作超时修正
0.5.4(能结束放映、能设圆角 · 长动作超时修正 · DSH 0.2.0 兼容核验)
补上的两个能力(FIXES 80)
- 新工具
wps_ppt_end_slide_show:以前能开始放映却没有工具能结束 —— 放映一旦开始就占满屏幕,只能让用户自己按 Esc。 wps_ppt_set_shape_style增加roundness:圆角半径;写入后会读回,结果里回报实际生效值(读不回或不一致会告警)。- 顺带删掉 4 个重复/死代码 action(
openFile/unfreezePanes/replaceInSheet/setShapeRoundness),
未工具化账本 7 → 2(剩下两个已被getOpenPresentations/getOpenWorkbooks的 active 标记覆盖)。
修掉一个静默降级(FIXES 81)
LONG_ACTIONS里有三个名字不是真实 action(beautify/recalculate/proofreadBasic):写错不报错,
只会让那个动作退回 60s 默认超时 ——calculateSheet这类慢操作会被杀成「状态未知」。已改成真实名字,
并加静态门禁:每个长动作名都必须是真实桥 action(写错 CI 直接红)。
DeepSeek Harness 0.2.0-rc.2 兼容性核验(FIXES 83)
- 逐面核验:包清单
dsh.bundle.patch、patch 操作insert、MCP 客户端九个配置键、toolCallTimeoutMs(无上限截断,
330s 有效)、技能注册 API、CLI 用法、DSH_PERMISSION_MODE/DSH_TOOLS_MODE、会话日志 v4;无需改接线。 - 真机验收:全新 profile 安装 14/14、一键 e2e 29/29(83 次工具调用 / 3 次技能加载)。
- README 注明与 DSH 自带离线 office 技能(LibreOffice)的共存关系:一个改你眼前的 WPS 窗口,一个是离线读写文件。
文档(FIXES 82)
- 33 份文档全量审计:修掉过期数字、已删除的死名字(模型面向的技能示例也在内)、失效链接与不存在的文件引用;
机器扫描剩余项全部是有标注的历史引用。
破坏性变更:4 个 action 被删除(均为重复品或死代码,仓库内无测试与脚本调用)。
数字:注册工具 268、广告面 69 / 38,878 字节、桥 action 263、测试 918 项 / 46 文件。
v0.5.3 — 桥键统一:一个概念一个键
0.5.3(桥键统一:一个概念一个键 + set_cell_format 的 numberFormat)
破坏性变更两处:① 参数键统一,旧拼写不再被接受(
filePath/dataRange/address/transition等);
②wps_common_save_as的路径键由path改为outputPath。
- 一个概念一个键(FIXES 79):输入文件
path、输出目标outputPath、图片imagePath、幻灯片切换
transition、链接url、区域range—— 三个应用一致,可以直接类推。桥侧每个 action 只认自己的规范键,
兼容别名按 D15-B 删除;旧写法会明确报错,不再静默忽略。 set_cell_format的扁平numberFormat一并声明(D10,FIXES 78 的收尾)。- 顺带修掉三个导出工具重复发
path造成的静默失效(由param-contract抓出)。 - 数字:测试 914 项 / 46 文件;注册工具 267、广告面 69 / 38,878 字节(内部上限 100 / 60,000)。
v0.5.2 — 模型能发现 set_cell_format 的扁平参数
0.5.2(模型能发现 set_cell_format 的扁平参数)
wps_excel_set_cell_format的扁平写法(bold/fontSize/fontColor/bgColor/horizontalAlignment…)
现在声明在 schema 里。处理器一直支持、测试也一直断言,但模型看不到就等于不存在 —— 这一版补上,与嵌套的
format.*等价,两种写法都可以(FIXES 78)。- 广告面字节 37,573 → 38,713(上限 60,000),工具数不变(69)。
- 顺带修好生成器
scripts/extract-spec.mjs里一处从未被触发的死引用(CONTAINER_PARAMS)—— 参数分类一旦
落到那一行就会让整个生成器崩掉;并清掉 P1-4 遗留的 9 条旧名映射表(名字已在 v0.5.1 对齐)。 - 两处测试矩阵把
filePath写成path(期望值宽松,所以写错也一直「通过」),已修正;现在它们报的是真正的原因。
v0.5.1 — 参数命名对齐:公开名 = 桥键,ALIAS_DEBT 归零
0.5.1(参数命名对齐:公开名 = 桥键,ALIAS_DEBT 归零)
破坏性变更一处:59 处工具参数改名(例如
filePath→path、app_type→appType)。桥侧仍然接受
旧拼写,所以按旧技能或旧习惯写的调用照旧可用。
- 公开参数名与桥键一一对应,别名表不再被任何工具依赖;
ALIAS_DEBT从 59 变成硬 0 —— 新增工具
必须照桥键命名,否则 CI 直接红。 - 41 组改名:最大一族是
filePath→path(8 处),其余是app_type/data_range/chart_type/
slide_index/find_text/font_name这类 snake_case → camelCase,以及url→address、
shapeIndices→names、effect→transition、chartType→type、order→zOrder等同义改名。 - 技能文档同步 5 处;已过时的反例换成仍然存在的真陷阱(Word 的
insert_image收imagePath,PPT 的
insert_ppt_image收path;set_slide_transition收effect,apply_transition_to_all收transition)。 - 顺手修掉上一版漏掉的 3 个真机测试文件:
merged-tools因require已删除的模块而直接崩,另两个文件
还在调 v0.5.0 已删除的旧工具名。 - 数字:测试 914 项 / 46 文件;注册工具 267、广告面 69 / 37,573 字节(内部上限 100 / 60,000)。