Skip to content

Commit 33c98fb

Browse files
chaxusclaude
andcommitted
docs: ledger sections D/F and campaign changelog for the api-surface sweep and guards 6/7
Fills the interaction-entry rows (API enumeration done, action library partial), the integration-hazard table (stopSaving/continueSaving pair, frame-editor entries and autostart macros as long-action leaks now fixed by guard 6, select-all + series settings now fixed by guard 7, SetSilentMode cleared), and appends the sweep results plus the evaluate-realm harness pitfall to the day's campaign record. Drops SetSilentMode from the sweep SKIP list. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent b1e886e commit 33c98fb

3 files changed

Lines changed: 38 additions & 14 deletions

File tree

‎docs/changelogs/2026-08-15-v9-regression-campaign.md‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,3 +125,25 @@ gh workflow run nightly-corpus.yml -f limit=300 # 手动触发夜间
125125
- 新增 `buildXlsx`(手拼 OOXML,含冻结窗格 / 自动筛选)与 `xlsx-panes.spec`:
126126
文件自带冻结+筛选往返保留;`asc_freezePane` API 切换干净且保存保留
127127
(8-09 记录的 UI 冻结报错在 API 路径未复现)。
128+
- **API 交互面枚举落地(`api-surface.spec.ts`,`API_SWEEP=1` 夜间档)**:
129+
三编辑器全部零参 `asc_*`(word 218 / cell 218 / slide 161)逐个调用,
130+
每次查 L0、保存开关与状态向量(`isLongAction` / `isOpenedFrameEditor` /
131+
restriction…),异常路径也比对漂移;`SWEEP_ONLY` 二分、`SWEEP_PROBE_EVERY`
132+
真保存探针、`SWEEP-ORDER` 流式输出供崩溃取证。首轮结果:三格式全绿 45s
133+
(修复前 xlsx 15 分钟死于渲染进程崩溃)。抓出并修掉两个**UI 可达**缺陷:
134+
- **守卫 6(长操作计数器泄漏)**:`asc_editChartInFrameEditor` /
135+
`asc_editOleTableInFrameEditor` / `asc_runAutostartMacroses` 在
136+
`sync_StartAction(BlockInteraction)` 后抛错或返回,`isLongAction()`
137+
永真 → 之后每次 `asc_DownloadAs` 静默丢弃、**永远不能保存且无提示**。
138+
图表右键/双击可达。二分至单方法(pptx)后包裹入口在失败路径
139+
`sync_EndAction` 复位。
140+
- **守卫 7(全表序列设置)**:cell 上 `asc_EditSelectAll` →
141+
`asc_GetSeriesSettings`(插入图表对话框数据源)对 1048576×16384 建序列,
142+
主线程卡死至 "Array buffer allocation failed",渲染进程崩。Ctrl+A →
143+
插入图表可达。调用期把选区钳到已用区域(10ms),事后恢复选区。
144+
- 禁区表 F 补齐:`asc_stopSaving` 一次性开关(配对 `asc_continueSaving`);
145+
`asc_SetSilentMode` 洗清(空函数)。
146+
- 动作库 `test/e2e/actions/{editor,fixtures}.ts`:ready 门控 / 聚焦 /
147+
可信输入 / 保存捕获(同 realm 监听)/ 健康快照 / xlsx-pptx 最小构造。
148+
- 跑道坑(新增):`page.evaluate` 内 `new Function`/`eval` 重建的定位器
149+
捕获的是 utility 世界的 `window`——页面侧逻辑必须**内联**在 evaluate 里。

‎docs/test-matrix.md‎

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,14 @@ embed-save-default.spec、`HX` = html-as-xls.spec、`FN` = filename-matrix.spec
5858

5959
## D. 交互入口(策略第 9 节)
6060

61-
| 层 | 覆盖 |
62-
| ------------------------------------------- | ----------------------------------------- |
63-
| API 层 `asc_*` 枚举 | 进行中(并行会话,`api-surface.spec.ts`) |
64-
| UI 工具栏 / 菜单爬取 | ⬜ |
65-
| 高频旅程动作库 `test/e2e/actions/` | 进行中(并行会话) |
66-
| seeded monkey | ⬜ |
67-
| 快捷键 / 右键 | ⬜ |
68-
| vendor 契约哨兵(hook 函数存在、wasm 哈希) | ⬜ |
61+
| 层 | 覆盖 |
62+
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
63+
| API 层 `asc_*` 枚举 | ✅ `api-surface.spec.ts`(`API_SWEEP=1`,夜间档):三编辑器全部零参 `asc_*`(word 218 / cell 218 / slide 161)逐个调用,每次查 L0 + 保存开关 + 状态向量(longAction/frameEditor/…);`SWEEP_ONLY` 二分、`SWEEP_PROBE_EVERY` 真保存探针。首轮抓出禁区表 F 三条 + 守卫 6/7 |
64+
| UI 工具栏 / 菜单爬取 | ⬜ |
65+
| 高频旅程动作库 `test/e2e/actions/` | 部分:`actions/editor.ts`(waitForEditorReady / focusEditor / typeIntoDocument / saveAndCapture / editorHealth)+ `actions/fixtures.ts`(buildXlsx / buildPptx);旅程本体(插表/图/图表、查找替换、评论…)⬜ |
66+
| seeded monkey | ⬜ |
67+
| 快捷键 / 右键 | ⬜ |
68+
| vendor 契约哨兵(hook 函数存在、wasm 哈希) | ⬜ |
6969

7070
## E. escape 表(用户报出而矩阵未抓)
7171

@@ -77,8 +77,10 @@ embed-save-default.spec、`HX` = html-as-xls.spec、`FN` = filename-matrix.spec
7777

7878
## F. 集成禁区(API 枚举发现,任何集成路径都不得调用)
7979

80-
| API | 后果 | 来源 |
81-
| ---------------------------------------------- | ------------------------------------------ | ---------------------------------------- |
82-
| `asc_stopSaving()` | 本会话内永久禁用保存(word / cell 均确认) | api-surface 枚举(并行会话,2026-08-15) |
83-
| slide 某方法(疑 `asc_SetSilentMode`,二分中) | 枚举后 `isDocumentCanSave=false`、保存超时 | 同上 |
84-
| cell 某方法(二分中) | 渲染进程崩溃 "Target crashed" | 同上,P0 级稳定性发现 |
80+
| API | 后果 | 来源 |
81+
| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
82+
| `asc_stopSaving()` | 本会话内永久禁用保存(word / cell 均确认);配对信号是 `asc_continueSaving`(decrementCounterLongAction) | api-surface 枚举(2026-08-15);SKIP-with-note |
83+
| `asc_editChartInFrameEditor()` / `asc_editOleTableInFrameEditor()`(无图表选区 / 无 frame editor 时) | `sync_StartAction(BlockInteraction)` 后抛错,`isLongAction()` 永真 → 之后所有 `asc_DownloadAs` 静默丢弃、永远不能保存。**UI 可达**(图表右键 / 双击) | 二分至单方法(pptx);已修:`prepareEditorIframe` **守卫 6** 复位计数器 + ER 用例 "a failed chart-editor entry does not disable saving" |
84+
| `asc_runAutostartMacroses()` | 同类计数器泄漏(三编辑器均见 longAction 卡 true,碰巧被后续 undoAllChanges/startEditCrop 复位) | 守卫 6 一并覆盖(returnOnRelease) |
85+
| `asc_EditSelectAll()` → `asc_GetSeriesSettings()`(cell) | 全表 1048576×16384 选区建图表序列 → 主线程卡死 → "Array buffer allocation failed" → 渲染进程崩 / 再不能保存。**UI 可达**(Ctrl+A → 插入图表) | 二分至最小二元组合;已修:**守卫 7** 调用期把选区钳到已用区域(10ms 完成)+ ER 用例 "select-all then chart series settings…" |
86+
| `asc_SetSilentMode` | 洗清:slide/cell 上是空函数,不是保存杀手 | 已从 SKIP 移除 |

‎test/e2e/api-surface.spec.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const SKIP = new RegExp(
3636
// and asc_onCloseFrameEditor tears the frame bridge down. Both are
3737
// legitimate one-way switches, not defects, but the sweep must not pull
3838
// them or every method after them is judged in a broken editor.
39-
'^asc_(stopSaving|onCloseFrameEditor|SetSilentMode)$',
39+
'^asc_(stopSaving|onCloseFrameEditor)$',
4040
'Print',
4141
'Presentation|Demonstration|SlideShow',
4242
'startSaveDocument|forceSave|Force',

0 commit comments

Comments
 (0)