Skip to content

test: 收口 #676/#677——calloutFold 九段根因修复与热样式测量复测翻案 - #681

Merged
ONEGAYI merged 2 commits into
mainfrom
fix/callout-676-677
Nov 1, 2026
Merged

ONEGAYI merged 2 commits into
mainfrom
fix/callout-676-677

Conversation

@ONEGAYI

@ONEGAYI ONEGAYI commented Nov 1, 2026

Copy link
Copy Markdown
Owner

概述

Callout Live 收口批次(#668)两遗留票收口:#676 calloutFold 九段 re-init 失效根因修复(SKIP 恢复强制断言);#677 热更新测量复测翻案(生产装配自愈,无需工程接线)+ 双主题截图留档。

#676:两个根因钉死并修复

  • 根因一(IME 组合态泄漏):七段「组合中途点击箭头」的合成点击重置 Chromium IME 上下文,后续 CDP insertText 不走组合提交流程(compositionend 不发出),CM6 composing 卡死;九段 re-init 被 handleFullSync 挂起守卫记为 pendingFull 不落正文——诊断实测 composing:true / pendingFull.source:"init" / hasBufferedSync:true 全在场,与前序探针「复现不出」的差异即在此(探针无中途 click)。修复:click 后重申组合恢复上下文再定稿。
  • 根因二(定位时序颠倒):九段先在 Live 下 locate 再切 reading——滚动作用在 Live 侧、reading 构建后视口回顶,尾部块永不进虚拟化挂载窗口;issue 中「reading 容器 scrollTo 未触发挂载(滚动宿主待确认)」的疑点实为套件时序问题,生产 locateOffset 的 reading 分支(scrollToSrcStart + 锚点重申)无缺陷。修复:先切 reading 再 locate。
  • 九段 SKIP 恢复为强制断言(未挂载即红,不再打印降级)。

#677:热样式复测翻案 + 双主题截图

  • 翻案:T04/T05 生产装配(rootOwnedViewExtensions)下热样式自愈成立——rAF 落地后 coordsAtPos↔posAtCoords 一致(显式 requestMeasure 前后坐标无变差,自愈已先行发生)、20 次同坐标点击全准;探针 S1「不自愈、偏移 28px」属探针注入形态(手工 wrapper),生产不复发,工程接线不必要。
  • calloutWrap 热样式段从「只断言结构」升格为点击精度断言(钉住自愈,未来装配变化破坏即红)。
  • 双主题截图留档:嵌套 wrapper + 列表内行级边界形态明暗各一张(out/test/t677-callout-wrap-*.png,gitignored;视觉核验六项预期全部满足)。

评审轮(code-review 双轴)修复

  • Spec:公开契约 styleContract callout 条目 states/verification 残留已被翻案的旧边界(「热样式坐标映射不自动刷新」)——中英双语同步改为自愈表述,指南重生成,check:stylecontract 全项通过;探针报告母条目补装配限定、证据句诚实化(进库断言为持久面,工作树日志不含坐标原始数据如实标注)。
  • Standards:双主题截图段主题状态泄漏(light 态带入后续段落)——截图后复位默认态。

验证

  • calloutFold / calloutWrap 浏览器套件绿(九段强制断言与热样式点击精度断言均执行)
  • gen:styleguide 重生成 + check:stylecontract 全项通过(提交 7de28b9)
  • 基线鲜度:origin/main 未前移(48eadd67),分支两提交 b0a2b0c7 + 7de28b96

Close #676
Close #677

#676(calloutFold 九段长流程后 re-init 失效与 reading 挂载依赖):

- 根因一(IME 组合态泄漏):七段组合中途的合成点击重置 Chromium IME
  上下文,后续 CDP insertText 不再走组合提交流程(compositionend 不发
  出),CM6 composing 卡死;九段 re-init 被 handleFullSync 挂起守卫记为
  pendingFull 不落正文。修复:click 后重申组合恢复上下文再定稿
- 根因二(定位时序颠倒):九段先在 Live 下 locate 再切 reading,滚动
  作用在 Live 侧、reading 构建后视口回顶,尾部块永不进虚拟化挂载窗口。
  修复:先切 reading 再走生产 locate 链路(scrollToSrcStart + 锚点重
  申)滚入挂载窗口
- 九段 SKIP 恢复为强制断言(未挂载即红,不再打印降级)

#677(T05 收尾:双主题截图与热更新测量刷新评估):

- 热样式复测翻案:T04/T05 生产装配(rootOwnedViewExtensions)下热样
  式自愈成立——rAF 落地后 coordsAtPos↔posAtCoords 一致(显式
  requestMeasure 前后无变差)、20 次同坐标点击全准;探针 S1「不自愈、
  偏移 28px」属探针注入形态(手工 wrapper),生产不复发,工程接线不必
  要。calloutWrap 热样式段由「只断言结构」升格为点击精度断言钉住自愈
- 双主题截图留档:嵌套 wrapper + 列表内行级边界形态明暗各一张
  (out/test/t677-callout-wrap-*.png,gitignored 留证不进 VSIX)
- 探针报告 S1 热样式结论补 #677 复测翻案勘误

Close #676
Close #677
Spec 轴发现(公开契约残留已翻案的旧边界):

- styleContract.ts callout 条目 states 的「热更新边界」段仍宣称 CSS 片段
  运行中改 Live wrapper 的 padding/border 时坐标映射不自动刷新、建议切
  换文档或模式后复核——与 #677 复测翻案(生产装配下自愈,calloutWrap
  热样式点击精度断言全准)直接矛盾。改为自愈表述(布局落地约一帧后
  coordsAtPos↔posAtCoords 恢复一致,探针期「不自愈」属手工装配形态),
  中英双语同步(styleContractEn.ts);verification 行同步(热样式结构
  与点击精度,#677 复测自愈钉住)
- 指南产物随清单重生成(gen:styleguide),check:stylecontract 全项通过

Standards 轴发现(段间隐式耦合):

- calloutWrap 双主题截图段改写 body 主题 class 与编辑器前景/背景变量后
  未复位,light 态泄漏进后续段落(当前断言不依赖颜色,防御性修复)——
  截图后移除主题 class 与行内变量复位默认态

探针报告收尾:

- S1 母条目末句补「按本探针装配」限定,与 #677 翻案子条目不再字面冲突
- 翻案证据句诚实化:进库断言为持久面,工作树日志仅过程留证、不含坐标
  原始数据(已知边界)

@ONEGAYI ONEGAYI left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

首审 R1

已亲审 head 7de28b96c3aaa3b8576918ccabc3081f2d5990c5,base/merge-base 48eadd67dd0ad1c2712b13ce9ef2ebc8c4cf4438。2提交8文件;核对 #676/#677 正文、全部差异、相关夹具及仓库规范;发布前 reviews/原线程为空。

Spec

在本轮已核查范围未发现可证实新增产品缺陷。

  • #676:组合中途点击后的 CDP 组合上下文重建、reading 切换后再 locate 的时序已落入套件;第九段由条件 SKIP 改为强制挂载/内外层折叠/正文绘制及零写回断言。此处是测试流程修复,不把 CDP 序列当真实 Windows IME 验收。
  • #677:热 padding 更新后先等待两帧,再执行20次同坐标点击,未在此前插入显式 requestMeasure 或模式重建;实际装配夹具调用生产控制器。中英 states 与指南同步修订,旧手工探针结论保留并限定适用形态。当前持续断言覆盖指定 padding 变化和落点,不代表所有 border/任意片段/所有宿主的无条件保证。
  • 双主题截图代码保留,之后清理主题class/行内变量。截图文件gitignored且未包含在当前浏览器报告artifact;本方没有看到这两张图,不将作者六项观感判断写成本方视觉验收。A85等人工视觉边界不因此销账。

Standards

未确认独立新缺陷。原SKIP没有继续隐藏失败,替代断言及纠错依据明确;没有修改生产渲染/输入逻辑、历史兼容基线、检查器或CI门限。仅更新契约说明与派生指南。读了真实夹具的 elementFromPoint 可见性检查,未把仅DOM存在当绘制验收。

本方验证

  • 连接器按精确head取得并校验17个相关Git blob;增量8文件全部包含。部分源码快照,不是完整checkout。
  • Node24.22.1 实际执行原 genStyleGuide.mjs --check:234条目/v1.6.0,三份产物一致;两个变更浏览器脚本 node --check 通过。首次指南检查缺 chromeContract 源依赖失败,补齐同head后通过,原失败保留,不是产品失败。
  • 未本地重跑compile/全量单元/Chromium/VSCode/物理鼠标/Windows IME。现有本地Git树不是本head,没有借旧树宣称精确head测试通过。

精确 head CI:失败保留

CI 41276589951 本次13jobs终态:10成功、3失败。

  • 分片2/4 job124759924581:本片114项,唯一失败“rename引用改写:来源目标同批移出根改写为明确绝对路径(四审P2-3)”,等待“短名出链登记”超时;integration汇总124760925807随之失败。
  • browser job124759924574:contextMenu 120.015秒超时SIGKILL,已读取artifact13071930977;日志到“块id双形态淡化+自定义字体色适配+阅读隐藏”仍PASS,未取得进一步断言错误或根因。不擅自判flaky。
  • 同一job的 calloutFold 5.18s、calloutWrap 5.45s均PASS/EXIT0/TIMEOUTfalse,artifact中fold日志没有旧第九段SKIP。是远端CI证据,不冒充本方浏览器执行。unit构建/类型/单元、style-contract及其他成功jobs分别保留,不称整轮全绿。
    不重跑CI,不APPROVE/REQUEST_CHANGES,不因失败自动归因本PR产品逻辑。

@ONEGAYI ONEGAYI mentioned this pull request Nov 1, 2026
18 of 24 tasks
@ONEGAYI
ONEGAYI merged commit 4d70c1e into main Nov 1, 2026
23 of 26 checks passed
@ONEGAYI
ONEGAYI deleted the fix/callout-676-677 branch November 1, 2026 09:15
ONEGAYI added a commit that referenced this pull request Nov 1, 2026
版本内容(Unreleased 段转正为 1.6.1 - 2026-11-01,顶部重建空
Unreleased 段):

- 改进:Live Callout 容器形态收口(#672/#673)、引用内代码块与公式
  完整渲染(#674/#675)、标题按类型着色(#671)、连续删除防护、
  行内代码细边线与代码卡壳边线连续化
- 修复:表格格内输入选区竞态(#667)、代码卡头部间距点击偏移
- 补账:v1.6.0 以来随 PR #678/#681 落地但未登记 Unreleased 的用户
  可见变更全部入册;验收轮观感修复按约定并入所属主题组

版本与产物:

- package.json version 1.6.1;样式指南随版本段重生成(版本戳)
- API 嗅探:CHANGELOG-API Unreleased 为空、API 事实源 v1.6.0..HEAD
  零 diff——无 API 版本动作,只发本体(API 停留 1.4.0)
- checkStyleContract 基线复验:8 项零失败(候选 v1.6.1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant